Adding debian version 48.2-3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
This commit is contained in:
parent
1fcdbd5df9
commit
1c8977628f
39 changed files with 5730 additions and 0 deletions
11
debian/.gitignore
vendored
Normal file
11
debian/.gitignore
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
!*.patch
|
||||
/*.debhelper
|
||||
/*.debhelper.log
|
||||
/*.substvars
|
||||
/.debhelper/
|
||||
/debhelper-build-stamp
|
||||
/files
|
||||
/gnome-shell-common/
|
||||
/gnome-shell/
|
||||
/home/
|
||||
/tmp/
|
4515
debian/changelog
vendored
Normal file
4515
debian/changelog
vendored
Normal file
File diff suppressed because it is too large
Load diff
1
debian/clean
vendored
Normal file
1
debian/clean
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
debian/home/
|
170
debian/control
vendored
Normal file
170
debian/control
vendored
Normal file
|
@ -0,0 +1,170 @@
|
|||
Source: gnome-shell
|
||||
Section: gnome
|
||||
Priority: optional
|
||||
Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
|
||||
Uploaders: Jeremy Bícha <jbicha@ubuntu.com>, Marco Trevisan (Treviño) <marco@ubuntu.com>
|
||||
Build-Depends: appstream,
|
||||
bash-completion,
|
||||
dbus-daemon <!nocheck>,
|
||||
debhelper-compat (= 13),
|
||||
dh-sequence-gir,
|
||||
dh-sequence-gnome,
|
||||
gjs (>= 1.73.1),
|
||||
gir1.2-accountsservice-1.0 <!nocheck>,
|
||||
gir1.2-gcr-4-dev,
|
||||
gir1.2-gdkpixbuf-2.0-dev,
|
||||
gir1.2-gdm-1.0 <!nocheck>,
|
||||
gir1.2-geoclue-2.0 <!nocheck>,
|
||||
gir1.2-gnomebg-4.0 <!nocheck>,
|
||||
gir1.2-gnomedesktop-4.0 <!nocheck>,
|
||||
gir1.2-gweather-4.0 (>= 4.1) <!nocheck>,
|
||||
gir1.2-nma4-1.0 (>= 1.10.4) [linux-any] <!nocheck>,
|
||||
gir1.2-polkitagent-1.0-dev,
|
||||
gir1.2-rsvg-2.0 <!nocheck>,
|
||||
gir1.2-upowerglib-1.0 <!nocheck>,
|
||||
gnome-control-center-dev,
|
||||
gnome-settings-daemon-common (>= 47~rc) <!nocheck>,
|
||||
gobject-introspection (>= 1.80),
|
||||
gsettings-desktop-schemas-dev (>= 48~beta),
|
||||
gtk-doc-tools,
|
||||
libasound2-dev,
|
||||
libatk-bridge2.0-dev,
|
||||
libecal2.0-dev (>= 3.45),
|
||||
libedataserver1.2-dev (>= 3.45),
|
||||
libgcr-4-dev (>= 3.90.0),
|
||||
libgjs-dev (>= 1.73.1),
|
||||
libgl1-mesa-dri <!nocheck>,
|
||||
libglib2.0-dev (>= 2.80),
|
||||
libgnome-autoar-0-dev,
|
||||
libgnome-bluetooth-3.0-dev (>= 3.9.0) [linux-any],
|
||||
libgnome-desktop-4-dev (>= 40),
|
||||
libgnome-menu-3-dev,
|
||||
libgstreamer1.0-dev,
|
||||
libgstreamer-plugins-base1.0-dev,
|
||||
libgtk-4-dev,
|
||||
libibus-1.0-dev,
|
||||
libjson-glib-dev,
|
||||
libmutter-16-dev (>= 48.0),
|
||||
mutter-16-tests (>= 48.0) <!nocheck>,
|
||||
libnm-dev [linux-any],
|
||||
libpipewire-0.3-dev (>= 0.3.49) [linux-any],
|
||||
libpolkit-agent-1-dev,
|
||||
libpulse-dev,
|
||||
libsecret-1-dev,
|
||||
libsystemd-dev [linux-any],
|
||||
libx11-dev,
|
||||
libxfixes-dev,
|
||||
libxml2-dev,
|
||||
mesa-common-dev,
|
||||
meson (>= 0.58.0),
|
||||
mutter (>= 48.0) <!nocheck>,
|
||||
pipewire <!nocheck>,
|
||||
pkgconf,
|
||||
python3-docutils,
|
||||
sassc,
|
||||
systemd-dev [linux-any],
|
||||
xauth <!nocheck>,
|
||||
xvfb <!nocheck>,
|
||||
xwayland <!nocheck>
|
||||
Rules-Requires-Root: no
|
||||
Standards-Version: 4.7.2
|
||||
Homepage: https://wiki.gnome.org/Projects/GnomeShell
|
||||
Vcs-Git: https://salsa.debian.org/gnome-team/gnome-shell.git
|
||||
Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-shell
|
||||
|
||||
Package: gnome-shell
|
||||
Architecture: linux-any
|
||||
Depends: gir1.2-accountsservice-1.0,
|
||||
gir1.2-adw-1,
|
||||
gir1.2-atk-1.0,
|
||||
gir1.2-atspi-2.0,
|
||||
gir1.2-gcr-4 (>= 3.90.0),
|
||||
gir1.2-gdesktopenums-3.0,
|
||||
gir1.2-gdkpixbuf-2.0,
|
||||
gir1.2-gdm-1.0 (>= 47.0-4~),
|
||||
gir1.2-geoclue-2.0,
|
||||
gir1.2-glib-2.0 (>= 2.80),
|
||||
gir1.2-gnomebg-4.0,
|
||||
gir1.2-gnomebluetooth-3.0 (>= 42.3) [linux-any],
|
||||
gir1.2-gnomedesktop-4.0 (>= 40),
|
||||
gir1.2-graphene-1.0,
|
||||
gir1.2-gstreamer-1.0,
|
||||
gir1.2-gtk-4.0,
|
||||
gir1.2-gweather-4.0 (>= 4.1),
|
||||
gir1.2-freedesktop,
|
||||
gir1.2-ibus-1.0,
|
||||
gir1.2-mutter-16 (>= 48.0),
|
||||
gir1.2-nm-1.0 [linux-any],
|
||||
gir1.2-nma4-1.0 (>= 1.10.4) [linux-any],
|
||||
gir1.2-pango-1.0,
|
||||
gir1.2-polkit-1.0,
|
||||
gir1.2-rsvg-2.0,
|
||||
gir1.2-soup-3.0,
|
||||
gir1.2-upowerglib-1.0,
|
||||
gjs (>= 1.73.1),
|
||||
gnome-control-center (>= 1:46),
|
||||
gnome-settings-daemon (>= 47~rc),
|
||||
gnome-shell-common (= ${source:Version}),
|
||||
gsettings-desktop-schemas (>= 48~beta),
|
||||
gstreamer1.0-pipewire (>= 0.3.49) [linux-any],
|
||||
libglib2.0-bin (>= 2.80),
|
||||
python3,
|
||||
tecla,
|
||||
${gir:Depends},
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Recommends: bolt,
|
||||
evolution-data-server (>= 3.45),
|
||||
gdm3,
|
||||
gnome-browser-connector,
|
||||
gnome-remote-desktop,
|
||||
gnome-menus,
|
||||
gnome-user-docs,
|
||||
ibus,
|
||||
iio-sensor-proxy,
|
||||
power-profiles-daemon,
|
||||
switcheroo-control,
|
||||
unzip
|
||||
Suggests: gir1.2-malcontent-0 [linux-any],
|
||||
gir1.2-telepathyglib-0.12,
|
||||
gir1.2-telepathylogger-0.2,
|
||||
gnome-shell-extension-prefs,
|
||||
Breaks: gnome-shell-extension-appindicator (<< 50),
|
||||
gnome-shell-extension-dash-to-panel (<< 55),
|
||||
gnome-shell-extension-dashtodock (<< 79),
|
||||
gnome-shell-extension-desktop-icons (<< 21.04),
|
||||
gnome-shell-extension-desktop-icons-ng (<< 46+really47.0.2-2),
|
||||
gnome-shell-extension-taskbar (<< 57.0-2.1~),
|
||||
gnome-shell-extension-top-icons-plus (<< 27-3~),
|
||||
gnome-shell-extension-workspaces-to-dock (<< 54~),
|
||||
gnome-shell-extensions (<< 40.0~),
|
||||
Provides: notification-daemon,
|
||||
polkit-1-auth-agent
|
||||
Description: graphical shell for the GNOME desktop
|
||||
The GNOME Shell provides core interface functions like switching
|
||||
windows, launching applications or see your notifications. It takes
|
||||
advantage of the capabilities of modern graphics hardware and
|
||||
introduces innovative user interface concepts to provide a
|
||||
delightful and easy to use experience. GNOME Shell is the defining
|
||||
technology of the GNOME 3 user experience.
|
||||
|
||||
Package: gnome-shell-common
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}
|
||||
Description: common files for the GNOME graphical shell
|
||||
This package contains translations and data files for the GNOME shell.
|
||||
|
||||
Package: gnome-shell-extension-prefs
|
||||
Architecture: linux-any
|
||||
Depends: gir1.2-adw-1,
|
||||
gir1.2-gtk-4.0,
|
||||
gjs (>= 1.73.1),
|
||||
gnome-shell (= ${binary:Version}),
|
||||
${gir:Depends},
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Provides: gnome-extensions-app
|
||||
Recommends: gnome-browser-connector
|
||||
Description: tool to enable / disable GNOME Shell extensions
|
||||
This package contains a tool which users who use Shell extensions can use to
|
||||
toggle them on and off, and access their preferences.
|
52
debian/copyright
vendored
Normal file
52
debian/copyright
vendored
Normal file
|
@ -0,0 +1,52 @@
|
|||
This package was debianized by Sebastien Bacher <seb128@ubuntu.com> on
|
||||
Wed, 01 Jul 2009 23:29:31 +0200.
|
||||
|
||||
It was downloaded from https://download.gnome.org/sources/gnome-shell/
|
||||
|
||||
Upstream Authors:
|
||||
|
||||
Colin Walters
|
||||
Dan Winship
|
||||
Marina Zhurakhinskaya
|
||||
Owen Taylor
|
||||
William Jon McCann
|
||||
|
||||
Files: src/*
|
||||
js/*
|
||||
Copyright: © 2000 Helix Code, Inc.
|
||||
© 2000,2001 Eazel, Inc.
|
||||
© 2001 George Lebl
|
||||
© 2002 Sun Microsystems Inc.
|
||||
© 2004-2005 James M. Cape <jcape@ignore-your.tv>
|
||||
© 2006-2008 Red Hat, Inc.
|
||||
© 2007 Ryan Lortie
|
||||
© 2008 Intel Corp.
|
||||
License: GPL-2+ (/usr/share/common-licenses/GPL-2)
|
||||
|
||||
Files: src/gdmuser/*
|
||||
Copyright: © 2007-2008 William Jon McCann <mccann@jhu.edu>
|
||||
© 2004-2005 James M. Cape <jcape@ignore-your.tv>
|
||||
License: LGPL-2+ (/usr/share/common-licenses/LGPL-2)
|
||||
|
||||
Files: src/tray/*
|
||||
Copyright: © 2002 Anders Carlsson <andersca@gnu.org>
|
||||
© 2003-2006 Vincent Untz
|
||||
© 2008 Red Hat, Inc.
|
||||
|
||||
Files: src/big/*
|
||||
Copyright: © 2005-2008 Red Hat, Inc.
|
||||
© 2008-2009 litl, LLC
|
||||
|
||||
Files: src/st/*
|
||||
Copyright: © 2008 OpenedHand
|
||||
© 2009 Intel Corporation.
|
||||
© 2003-2004 Dodji Seketeli
|
||||
License: LGPL-2.1 (/usr/share/common-licenses/LGPL-2.1)
|
||||
|
||||
The Debian packaging is:
|
||||
|
||||
Copyright © 2009 Sebastien Bacher <seb128@ubuntu.com>
|
||||
Copyright © 2009 Collabora Ltd.
|
||||
|
||||
and is licensed under the GPL version 3,
|
||||
see `/usr/share/common-licenses/GPL-3'.
|
17
debian/gbp.conf
vendored
Normal file
17
debian/gbp.conf
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
[DEFAULT]
|
||||
pristine-tar = True
|
||||
debian-branch = debian/latest
|
||||
upstream-branch = upstream/latest
|
||||
|
||||
[buildpackage]
|
||||
sign-tags = True
|
||||
|
||||
[dch]
|
||||
multimaint-merge = True
|
||||
|
||||
[import-orig]
|
||||
postimport = dch -v%(version)s New upstream release; git add debian/changelog; debcommit
|
||||
upstream-vcs-tag = %(version%~%.)s
|
||||
|
||||
[pq]
|
||||
patch-numbers = False
|
1
debian/gnome-shell-common.dirs
vendored
Normal file
1
debian/gnome-shell-common.dirs
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
usr/share/gnome-shell/modes
|
9
debian/gnome-shell-common.install
vendored
Normal file
9
debian/gnome-shell-common.install
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
debian/source_gnome-shell.py /usr/share/apport/package-hooks
|
||||
usr/lib/systemd/user
|
||||
usr/share/desktop-directories/X-GNOME-Shell-*.directory
|
||||
usr/share/dbus-1/interfaces
|
||||
usr/share/glib-2.0
|
||||
usr/share/gnome-control-center
|
||||
usr/share/gnome-shell
|
||||
usr/share/icons/hicolor/*/apps/*
|
||||
usr/share/locale
|
2
debian/gnome-shell-common.lintian-overrides
vendored
Normal file
2
debian/gnome-shell-common.lintian-overrides
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Intentional
|
||||
package-contains-empty-directory [usr/share/gnome-shell/modes/]
|
3
debian/gnome-shell-extension-prefs.install
vendored
Normal file
3
debian/gnome-shell-extension-prefs.install
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
usr/bin/gnome-extensions-app
|
||||
usr/share/applications/org.gnome.Extensions.desktop
|
||||
usr/share/metainfo/org.gnome.Extensions.metainfo.xml
|
2
debian/gnome-shell.bug-control
vendored
Normal file
2
debian/gnome-shell.bug-control
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
report-with: gnome-session gnome-settings-daemon libgjs0g libmutter-11-0
|
||||
package-status: libegl-vendor libglx-vendor libgl1-mesa-dri
|
2
debian/gnome-shell.docs
vendored
Normal file
2
debian/gnome-shell.docs
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
NEWS
|
||||
README.md
|
2
debian/gnome-shell.gsettings-override
vendored
Normal file
2
debian/gnome-shell.gsettings-override
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
[org.gnome.shell]
|
||||
favorite-apps=[ 'firefox-esr.desktop', 'org.gnome.Evolution.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.TextEditor.desktop', 'org.gnome.Calculator.desktop', 'yelp.desktop' ]
|
10
debian/gnome-shell.install
vendored
Normal file
10
debian/gnome-shell.install
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
usr/bin/gnome-extensions
|
||||
usr/bin/gnome-shell
|
||||
usr/bin/gnome-shell-extension-tool
|
||||
usr/bin/gnome-shell-test-tool
|
||||
usr/lib/gnome-shell
|
||||
usr/libexec
|
||||
usr/share/applications/org.gnome.Shell*.desktop
|
||||
usr/share/bash-completion/completions/gnome-extensions
|
||||
usr/share/dbus-1/services
|
||||
usr/share/man
|
9
debian/gnome-shell.lintian-overrides
vendored
Normal file
9
debian/gnome-shell.lintian-overrides
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
# These RUNPATHs are needed to find mutter's private clutter fork
|
||||
gnome-shell: custom-library-search-path RUNPATH /usr/lib/*/mutter-* [usr/bin/gnome-shell]
|
||||
gnome-shell: custom-library-search-path RUNPATH /usr/lib/*/mutter-* [usr/lib/gnome-shell/*.so]
|
||||
|
||||
# gnome-shell ships some desktop files only to provide metadata and icons to some apps
|
||||
gnome-shell: desktop-command-not-in-package false [usr/share/applications/org.gnome.Shell.Extensions.desktop]
|
||||
|
||||
# This is a NoDisplay=true desktop file, so there's no need for it
|
||||
gnome-shell: desktop-entry-lacks-main-category [usr/share/applications/org.gnome.Shell.desktop]
|
1
debian/gnome-shell.maintscript
vendored
Normal file
1
debian/gnome-shell.maintscript
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
rm_conffile /etc/xdg/autostart/gnome-shell-overrides-migration.desktop 44.3-5~
|
18
debian/gnome-shell.postinst
vendored
Normal file
18
debian/gnome-shell.postinst
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
# trigger an update notification that recommends a reboot
|
||||
# (used by unattended-upgrades etc.)
|
||||
touch /var/run/reboot-required || true
|
||||
|
||||
# same thing for the older update-notifier interface
|
||||
if [ -x /usr/share/update-notifier/notify-reboot-required ]; then
|
||||
/usr/share/update-notifier/notify-reboot-required || true
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
#DEBHELPER#
|
22
debian/patches/debian/Revert-tests-Fail-on-warnings-too.patch
vendored
Normal file
22
debian/patches/debian/Revert-tests-Fail-on-warnings-too.patch
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
From: Jeremy Bicha <jeremy.bicha@canonical.com>
|
||||
Date: Fri, 17 Feb 2023 15:35:20 -0500
|
||||
Subject: Revert "tests: Fail on warnings too"
|
||||
|
||||
This reverts commit 207b9bb3c0a582b830218fd1b6e8760684adbc48.
|
||||
---
|
||||
tests/meson.build | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/meson.build b/tests/meson.build
|
||||
index 7a09f3b..93cf49a 100644
|
||||
--- a/tests/meson.build
|
||||
+++ b/tests/meson.build
|
||||
@@ -79,7 +79,7 @@ libgvc_path = fs.parent(libgvc.get_variable('libgvc').full_path())
|
||||
background_file = join_paths(meson.current_source_dir(), 'data', 'background.png')
|
||||
|
||||
shell_testenv = environment()
|
||||
-shell_testenv.set('G_DEBUG', 'fatal-warnings')
|
||||
+shell_testenv.set('G_DEBUG', 'fatal-criticals')
|
||||
shell_testenv.set('G_MESSAGES_DEBUG', 'GNOME Shell')
|
||||
shell_testenv.set('GNOME_SHELL_DATADIR', data_builddir)
|
||||
shell_testenv.set('GNOME_SHELL_BUILDDIR', src_builddir)
|
29
debian/patches/debian/data-Add-im-config.desktop-to-System-folder.patch
vendored
Normal file
29
debian/patches/debian/data-Add-im-config.desktop-to-System-folder.patch
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
From: Simon McVittie <smcv@debian.org>
|
||||
Date: Tue, 10 Jun 2025 11:42:17 +0100
|
||||
Subject: data: Add im-config.desktop to System folder
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Debian installs this by default, but most users will only need to run
|
||||
it once, or perhaps not at all.
|
||||
|
||||
Thanks: Jeremy Bícha
|
||||
Helps: #1099579
|
||||
Forwarded: not-needed, Debian-specific
|
||||
---
|
||||
data/default-apps/system-folder.txt | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/data/default-apps/system-folder.txt b/data/default-apps/system-folder.txt
|
||||
index 2cda554..62cf6ba 100644
|
||||
--- a/data/default-apps/system-folder.txt
|
||||
+++ b/data/default-apps/system-folder.txt
|
||||
@@ -2,6 +2,7 @@ nm-connection-editor.desktop # Advanced Network Configuration
|
||||
org.gnome.DejaDup.desktop # Backups
|
||||
org.gnome.baobab.desktop # Disk Usage Analyzer
|
||||
org.gnome.DiskUtility.desktop # Disks
|
||||
+im-config.desktop # Input Method
|
||||
org.gnome.Logs.desktop # Logs
|
||||
org.freedesktop.MalcontentControl.desktop # Parental Controls
|
||||
org.freedesktop.GnomeAbrt.desktop # Problem Reporting
|
13
debian/patches/series
vendored
Normal file
13
debian/patches/series
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
debian/Revert-tests-Fail-on-warnings-too.patch
|
||||
tray-icons/build-Add-explicit-dependency-on-Xfixes.patch
|
||||
tray-icons/tray-na-xembed-Use-XShape-to-remove-input-on-socket-windo.patch
|
||||
tray-icons/shell-tray-icon-Use-available-space-when-that-s-defined.patch
|
||||
tray-icons/shell-tray-Ensure-that-only-a-child-can-be-added.patch
|
||||
tray-icons/shell-tray-icon-Trigger-a-relayout-when-the-underneath-xe.patch
|
||||
tray-icons/tray-Zero-initialize-the-event-structures-on-initializati.patch
|
||||
tray-icons/tray-na-xembed-Use-proper-indentation-style-header.patch
|
||||
tray-icons/tray-na-xembed-Destroy-socket-window-when-ending-the-embe.patch
|
||||
tray-icons/tray-na-tray-manager-Remove-outdated-comment-and-return-v.patch
|
||||
shell-app-Warn-instead-of-crashing-if-disposed-before-sta.patch
|
||||
st-theme-node-Forget-properties-cache-on-stylesheet-chang.patch
|
||||
debian/data-Add-im-config.desktop-to-System-folder.patch
|
60
debian/patches/shell-app-Warn-instead-of-crashing-if-disposed-before-sta.patch
vendored
Normal file
60
debian/patches/shell-app-Warn-instead-of-crashing-if-disposed-before-sta.patch
vendored
Normal file
|
@ -0,0 +1,60 @@
|
|||
From: Daniel van Vugt <daniel.van.vugt@canonical.com>
|
||||
Date: Thu, 29 Aug 2024 15:19:14 +0800
|
||||
Subject: shell/app: Warn instead of crashing if disposed before startup
|
||||
notification
|
||||
|
||||
This is currently easy to reproduce by launching and immediately closing
|
||||
Chrome, then closing the shell. But automated crash reports show it can
|
||||
also happen while using the shell, during a garbage collection run.
|
||||
|
||||
It's currently the top gnome-shell crasher in Ubuntu, and mostly with
|
||||
Chromium/Electron apps. But regardless of the offender, we shouldn't
|
||||
ever trust application behaviour to keep the shell alive.
|
||||
|
||||
Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7045
|
||||
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2037055
|
||||
Forwarded: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3457
|
||||
---
|
||||
src/shell-app.c | 24 +++++++++++++++++++++---
|
||||
1 file changed, 21 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/shell-app.c b/src/shell-app.c
|
||||
index 916783a..c7630d2 100644
|
||||
--- a/src/shell-app.c
|
||||
+++ b/src/shell-app.c
|
||||
@@ -1736,14 +1736,32 @@ shell_app_dispose (GObject *object)
|
||||
{
|
||||
ShellApp *app = SHELL_APP (object);
|
||||
|
||||
- g_clear_object (&app->info);
|
||||
g_clear_object (&app->fallback_icon);
|
||||
|
||||
while (app->running_state)
|
||||
_shell_app_remove_window (app, app->running_state->windows->data);
|
||||
|
||||
- /* We should have been transitioned when we removed all of our windows */
|
||||
- g_assert (app->state == SHELL_APP_STATE_STOPPED);
|
||||
+ if (app->state != SHELL_APP_STATE_STOPPED && app->info)
|
||||
+ {
|
||||
+ const char *name = g_desktop_app_info_get_generic_name (app->info);
|
||||
+ const char *file_name = g_desktop_app_info_get_filename (app->info);
|
||||
+
|
||||
+ if (!name)
|
||||
+ name = "(name unknown)";
|
||||
+
|
||||
+ if (!file_name)
|
||||
+ file_name = "(filename unknown)";
|
||||
+
|
||||
+ g_warning ("App \"%s\" (%s) claims to still be %s when being disposed. "
|
||||
+ "Please ask the app developer to check if StartupNotify=true "
|
||||
+ "in the .desktop file is properly implemented.",
|
||||
+ name,
|
||||
+ file_name,
|
||||
+ app->state == SHELL_APP_STATE_STARTING ? "starting" :
|
||||
+ "running");
|
||||
+ }
|
||||
+
|
||||
+ g_clear_object (&app->info);
|
||||
g_assert (app->running_state == NULL);
|
||||
|
||||
G_OBJECT_CLASS(shell_app_parent_class)->dispose (object);
|
89
debian/patches/st-theme-node-Forget-properties-cache-on-stylesheet-chang.patch
vendored
Normal file
89
debian/patches/st-theme-node-Forget-properties-cache-on-stylesheet-chang.patch
vendored
Normal file
|
@ -0,0 +1,89 @@
|
|||
From: Daniel van Vugt <daniel.van.vugt@canonical.com>
|
||||
Date: Thu, 28 Mar 2024 14:45:26 +0800
|
||||
Subject: st/theme-node: Forget properties cache on stylesheet change
|
||||
|
||||
To avoid `node->properties` pointing to freed memory after each
|
||||
`st_theme_unload_stylesheet`, flush the cache that is `node->properties`.
|
||||
They will be reloaded as soon as they are required by `ensure_properties`.
|
||||
|
||||
And yes `node->stylesheets_changed_id` already existed, but was unused.
|
||||
|
||||
Why not just fix Croco? Croco does not use proper reference counting
|
||||
everywhere it should, and retrofitting it would be difficult due to the
|
||||
recursive nature of `CRDeclaration`.
|
||||
|
||||
Includes commit:
|
||||
st/theme-node: Forget properties cache before unref'ing the theme
|
||||
Which the properties point into.
|
||||
|
||||
Forwarded: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3252
|
||||
Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7339
|
||||
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2069559
|
||||
Bug-Dash-to-Dock: https://github.com/micheleg/dash-to-dock/issues/2179
|
||||
---
|
||||
src/st/st-theme-node-private.h | 2 +-
|
||||
src/st/st-theme-node.c | 17 +++++++++++++++--
|
||||
2 files changed, 16 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/st/st-theme-node-private.h b/src/st/st-theme-node-private.h
|
||||
index d95284e..2d5065f 100644
|
||||
--- a/src/st/st-theme-node-private.h
|
||||
+++ b/src/st/st-theme-node-private.h
|
||||
@@ -104,7 +104,7 @@ struct _StThemeNode {
|
||||
int box_shadow_min_width;
|
||||
int box_shadow_min_height;
|
||||
|
||||
- guint stylesheets_changed_id;
|
||||
+ gulong stylesheets_changed_id;
|
||||
|
||||
CoglTexture *border_slices_texture;
|
||||
CoglPipeline *border_slices_pipeline;
|
||||
diff --git a/src/st/st-theme-node.c b/src/st/st-theme-node.c
|
||||
index 4e0111d..8d81693 100644
|
||||
--- a/src/st/st-theme-node.c
|
||||
+++ b/src/st/st-theme-node.c
|
||||
@@ -75,6 +75,10 @@ maybe_free_properties (StThemeNode *node)
|
||||
cr_declaration_destroy (node->inline_properties);
|
||||
node->inline_properties = NULL;
|
||||
}
|
||||
+
|
||||
+ g_clear_signal_handler (&node->stylesheets_changed_id, node->theme);
|
||||
+
|
||||
+ node->properties_computed = FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -102,6 +106,7 @@ st_theme_node_dispose (GObject *gobject)
|
||||
|
||||
st_theme_node_paint_state_free (&node->cached_state);
|
||||
|
||||
+ maybe_free_properties (node);
|
||||
g_clear_object (&node->theme);
|
||||
|
||||
G_OBJECT_CLASS (st_theme_node_parent_class)->dispose (gobject);
|
||||
@@ -117,8 +122,6 @@ st_theme_node_finalize (GObject *object)
|
||||
g_strfreev (node->pseudo_classes);
|
||||
g_free (node->inline_style);
|
||||
|
||||
- maybe_free_properties (node);
|
||||
-
|
||||
g_clear_pointer (&node->font_desc, pango_font_description_free);
|
||||
|
||||
g_clear_pointer (&node->box_shadow, st_shadow_unref);
|
||||
@@ -472,6 +475,16 @@ ensure_properties (StThemeNode *node)
|
||||
node->n_properties = properties->len;
|
||||
node->properties = (CRDeclaration **)g_ptr_array_free (properties, FALSE);
|
||||
}
|
||||
+
|
||||
+ if (!node->stylesheets_changed_id)
|
||||
+ {
|
||||
+ node->stylesheets_changed_id =
|
||||
+ g_signal_connect_object (node->theme,
|
||||
+ "custom-stylesheets-changed",
|
||||
+ G_CALLBACK (maybe_free_properties),
|
||||
+ G_OBJECT (node),
|
||||
+ G_CONNECT_SWAPPED);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
38
debian/patches/tray-icons/build-Add-explicit-dependency-on-Xfixes.patch
vendored
Normal file
38
debian/patches/tray-icons/build-Add-explicit-dependency-on-Xfixes.patch
vendored
Normal file
|
@ -0,0 +1,38 @@
|
|||
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
|
||||
Date: Wed, 1 May 2024 22:33:43 +0200
|
||||
Subject: build: Add explicit dependency on Xfixes
|
||||
|
||||
We use the xfixes extensions in tray icons but we rely on the dependency
|
||||
brought to us from other libraries as mutter but let's make it explicit
|
||||
|
||||
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
|
||||
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
|
||||
---
|
||||
meson.build | 1 +
|
||||
src/tray/meson.build | 2 +-
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 94d717f..03a3b2a 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -93,6 +93,7 @@ have_x11 = mutter_dep.get_variable('have_x11') == 'true'
|
||||
have_x11_client = mutter_dep.get_variable('have_x11_client') == 'true'
|
||||
if have_x11_client or have_x11
|
||||
x11_dep = dependency('x11')
|
||||
+ xfixes_dep = dependency('xfixes')
|
||||
endif
|
||||
|
||||
if not have_fonts
|
||||
diff --git a/src/tray/meson.build b/src/tray/meson.build
|
||||
index 1a86bcb..2fc73f3 100644
|
||||
--- a/src/tray/meson.build
|
||||
+++ b/src/tray/meson.build
|
||||
@@ -9,6 +9,6 @@ tray_sources = [
|
||||
|
||||
libtray = static_library('tray', tray_sources,
|
||||
c_args: ['-DG_LOG_DOMAIN="notification_area"'],
|
||||
- dependencies: [mutter_dep, mtk_dep],
|
||||
+ dependencies: [mutter_dep, mtk_dep, xfixes_dep],
|
||||
include_directories: conf_inc
|
||||
)
|
22
debian/patches/tray-icons/shell-tray-Ensure-that-only-a-child-can-be-added.patch
vendored
Normal file
22
debian/patches/tray-icons/shell-tray-Ensure-that-only-a-child-can-be-added.patch
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
|
||||
Date: Wed, 1 May 2024 04:19:34 +0200
|
||||
Subject: shell-tray: Ensure that only a child can be added
|
||||
|
||||
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
|
||||
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
|
||||
---
|
||||
src/shell-tray-icon.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/shell-tray-icon.c b/src/shell-tray-icon.c
|
||||
index 39204bf..9b79c2b 100644
|
||||
--- a/src/shell-tray-icon.c
|
||||
+++ b/src/shell-tray-icon.c
|
||||
@@ -239,6 +239,7 @@ shell_tray_icon_set_child (ShellTrayIcon *tray_icon,
|
||||
MetaDisplay *display = shell_global_get_display (shell_global_get ());
|
||||
|
||||
g_return_if_fail (tray_icon != NULL);
|
||||
+ g_return_if_fail (tray_icon->tray_child == NULL);
|
||||
g_return_if_fail (tray_child != NULL);
|
||||
|
||||
/* We do all this now rather than computing it on the fly later,
|
83
debian/patches/tray-icons/shell-tray-icon-Trigger-a-relayout-when-the-underneath-xe.patch
vendored
Normal file
83
debian/patches/tray-icons/shell-tray-icon-Trigger-a-relayout-when-the-underneath-xe.patch
vendored
Normal file
|
@ -0,0 +1,83 @@
|
|||
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
|
||||
Date: Wed, 1 May 2024 04:20:42 +0200
|
||||
Subject: shell-tray-icon: Trigger a relayout when the underneath xembeded
|
||||
size changes
|
||||
|
||||
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
|
||||
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
|
||||
---
|
||||
src/shell-tray-icon.c | 4 ++++
|
||||
src/tray/na-xembed.c | 18 ++++++++++++++++++
|
||||
src/tray/na-xembed.h | 1 +
|
||||
3 files changed, 23 insertions(+)
|
||||
|
||||
diff --git a/src/shell-tray-icon.c b/src/shell-tray-icon.c
|
||||
index 9b79c2b..c9be146 100644
|
||||
--- a/src/shell-tray-icon.c
|
||||
+++ b/src/shell-tray-icon.c
|
||||
@@ -260,6 +260,10 @@ shell_tray_icon_set_child (ShellTrayIcon *tray_icon,
|
||||
"window-created",
|
||||
G_CALLBACK (shell_tray_icon_window_created_cb),
|
||||
tray_icon);
|
||||
+
|
||||
+ g_signal_connect_object (tray_child, "reconfigured",
|
||||
+ G_CALLBACK (clutter_actor_queue_relayout),
|
||||
+ tray_icon, G_CONNECT_SWAPPED);
|
||||
}
|
||||
|
||||
/*
|
||||
diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
|
||||
index d4c389c..be08d6d 100644
|
||||
--- a/src/tray/na-xembed.c
|
||||
+++ b/src/tray/na-xembed.c
|
||||
@@ -91,6 +91,7 @@ G_DEFINE_TYPE_WITH_PRIVATE (NaXembed, na_xembed, G_TYPE_OBJECT)
|
||||
enum {
|
||||
PLUG_ADDED,
|
||||
PLUG_REMOVED,
|
||||
+ RECONFIGURED,
|
||||
LAST_SIGNAL
|
||||
};
|
||||
|
||||
@@ -548,6 +549,15 @@ xembed_filter_func (MetaX11Display *x11_display,
|
||||
}
|
||||
break;
|
||||
}
|
||||
+ case ConfigureNotify:
|
||||
+ {
|
||||
+ XConfigureEvent *xce = &xevent->xconfigure;
|
||||
+
|
||||
+ if (xce->window == priv->socket_window)
|
||||
+ g_signal_emit (xembed, signals[RECONFIGURED], 0);
|
||||
+
|
||||
+ break;
|
||||
+ }
|
||||
case DestroyNotify:
|
||||
{
|
||||
XDestroyWindowEvent *xdwe = &xevent->xdestroywindow;
|
||||
@@ -742,6 +752,14 @@ na_xembed_class_init (NaXembedClass *klass)
|
||||
NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 0);
|
||||
|
||||
+ signals[RECONFIGURED] =
|
||||
+ g_signal_new ("reconfigured",
|
||||
+ G_OBJECT_CLASS_TYPE (klass),
|
||||
+ G_SIGNAL_RUN_LAST,
|
||||
+ G_STRUCT_OFFSET (NaXembedClass, reconfigured),
|
||||
+ NULL, NULL, NULL,
|
||||
+ G_TYPE_NONE, 0);
|
||||
+
|
||||
props[PROP_X11_DISPLAY] =
|
||||
g_param_spec_object ("x11-display", NULL, NULL,
|
||||
META_TYPE_X11_DISPLAY,
|
||||
diff --git a/src/tray/na-xembed.h b/src/tray/na-xembed.h
|
||||
index 271060d..801c6a6 100644
|
||||
--- a/src/tray/na-xembed.h
|
||||
+++ b/src/tray/na-xembed.h
|
||||
@@ -35,6 +35,7 @@ struct _NaXembedClass
|
||||
|
||||
void (* plug_added) (NaXembed *xembed);
|
||||
void (* plug_removed) (NaXembed *xembed);
|
||||
+ void (* reconfigured) (NaXembed *xembed);
|
||||
};
|
||||
|
||||
MetaX11Display * na_xembed_get_x11_display (NaXembed *xembed);
|
111
debian/patches/tray-icons/shell-tray-icon-Use-available-space-when-that-s-defined.patch
vendored
Normal file
111
debian/patches/tray-icons/shell-tray-icon-Use-available-space-when-that-s-defined.patch
vendored
Normal file
|
@ -0,0 +1,111 @@
|
|||
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
|
||||
Date: Wed, 1 May 2024 04:18:50 +0200
|
||||
Subject: shell-tray-icon: Use available space when that's defined
|
||||
|
||||
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
|
||||
Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7613
|
||||
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
|
||||
---
|
||||
src/shell-tray-icon.c | 4 ++++
|
||||
src/tray/na-xembed.c | 29 +++++++++++++++++++++++++++++
|
||||
src/tray/na-xembed.h | 4 ++++
|
||||
3 files changed, 37 insertions(+)
|
||||
|
||||
diff --git a/src/shell-tray-icon.c b/src/shell-tray-icon.c
|
||||
index 462945e..39204bf 100644
|
||||
--- a/src/shell-tray-icon.c
|
||||
+++ b/src/shell-tray-icon.c
|
||||
@@ -185,6 +185,10 @@ shell_tray_icon_allocate (ClutterActor *actor,
|
||||
|
||||
CLUTTER_ACTOR_CLASS (shell_tray_icon_parent_class)->allocate (actor, box);
|
||||
|
||||
+ na_xembed_set_available_size (NA_XEMBED (tray_icon->tray_child),
|
||||
+ roundf (clutter_actor_box_get_width (box)),
|
||||
+ roundf (clutter_actor_box_get_height (box)));
|
||||
+
|
||||
/* Find the actor's new coordinates in terms of the stage.
|
||||
*/
|
||||
clutter_actor_get_transformed_position (actor, &wx, &wy);
|
||||
diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
|
||||
index 1be1e9d..d4c389c 100644
|
||||
--- a/src/tray/na-xembed.c
|
||||
+++ b/src/tray/na-xembed.c
|
||||
@@ -43,6 +43,8 @@ struct _NaXembedPrivate
|
||||
int request_height;
|
||||
int current_width;
|
||||
int current_height;
|
||||
+ int available_width;
|
||||
+ int available_height;
|
||||
int resize_count;
|
||||
int xembed_version;
|
||||
|
||||
@@ -141,6 +143,8 @@ na_xembed_end_embedding (NaXembed *xembed)
|
||||
priv->current_width = 0;
|
||||
priv->current_height = 0;
|
||||
priv->resize_count = 0;
|
||||
+ priv->available_width = -1;
|
||||
+ priv->available_height = -1;
|
||||
g_clear_handle_id (&priv->resize_id, g_source_remove);
|
||||
}
|
||||
|
||||
@@ -186,6 +190,11 @@ na_xembed_synchronize_size (NaXembed *xembed)
|
||||
width = priv->request_width;
|
||||
height = priv->request_height;
|
||||
|
||||
+ if (priv->available_width >= 0)
|
||||
+ width = priv->available_width;
|
||||
+ if (priv->available_height >= 0)
|
||||
+ height = priv->available_height;
|
||||
+
|
||||
XMoveResizeWindow (xdisplay,
|
||||
priv->socket_window,
|
||||
x, y,
|
||||
@@ -745,6 +754,10 @@ na_xembed_class_init (NaXembedClass *klass)
|
||||
static void
|
||||
na_xembed_init (NaXembed *xembed)
|
||||
{
|
||||
+ NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
|
||||
+
|
||||
+ priv->available_width = -1;
|
||||
+ priv->available_height = -1;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -809,6 +822,22 @@ na_xembed_get_size (NaXembed *xembed,
|
||||
*height = priv->request_height;
|
||||
}
|
||||
|
||||
+void
|
||||
+na_xembed_set_available_size (NaXembed *xembed,
|
||||
+ int width,
|
||||
+ int height)
|
||||
+{
|
||||
+ NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
|
||||
+
|
||||
+ if (priv->available_width == width && priv->available_height == height)
|
||||
+ return;
|
||||
+
|
||||
+ priv->available_width = width;
|
||||
+ priv->available_height = height;
|
||||
+
|
||||
+ na_xembed_resize (xembed);
|
||||
+}
|
||||
+
|
||||
void
|
||||
na_xembed_get_root_position (NaXembed *xembed,
|
||||
int *x,
|
||||
diff --git a/src/tray/na-xembed.h b/src/tray/na-xembed.h
|
||||
index 4466305..271060d 100644
|
||||
--- a/src/tray/na-xembed.h
|
||||
+++ b/src/tray/na-xembed.h
|
||||
@@ -58,6 +58,10 @@ void na_xembed_get_size (NaXembed *xembed,
|
||||
int *width,
|
||||
int *height);
|
||||
|
||||
+void na_xembed_set_available_size (NaXembed *xembed,
|
||||
+ int width,
|
||||
+ int height);
|
||||
+
|
||||
void na_xembed_set_background_color (NaXembed *xembed,
|
||||
const CoglColor *color);
|
||||
|
55
debian/patches/tray-icons/tray-Zero-initialize-the-event-structures-on-initializati.patch
vendored
Normal file
55
debian/patches/tray-icons/tray-Zero-initialize-the-event-structures-on-initializati.patch
vendored
Normal file
|
@ -0,0 +1,55 @@
|
|||
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
|
||||
Date: Wed, 1 May 2024 04:22:29 +0200
|
||||
Subject: tray: Zero-initialize the event structures on initialization
|
||||
|
||||
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
|
||||
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
|
||||
---
|
||||
src/tray/na-tray-child.c | 6 +++---
|
||||
src/tray/na-xembed.c | 6 ++----
|
||||
2 files changed, 5 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/tray/na-tray-child.c b/src/tray/na-tray-child.c
|
||||
index 0911995..9ec6670 100644
|
||||
--- a/src/tray/na-tray-child.c
|
||||
+++ b/src/tray/na-tray-child.c
|
||||
@@ -260,9 +260,9 @@ na_tray_child_emulate_event (NaTrayChild *tray_child,
|
||||
ClutterEvent *event)
|
||||
{
|
||||
MetaX11Display *x11_display;
|
||||
- XKeyEvent xkevent;
|
||||
- XButtonEvent xbevent;
|
||||
- XCrossingEvent xcevent;
|
||||
+ XKeyEvent xkevent = {0};
|
||||
+ XButtonEvent xbevent = {0};
|
||||
+ XCrossingEvent xcevent = {0};
|
||||
Display *xdisplay;
|
||||
Window xwindow, xrootwindow;
|
||||
ClutterEventType event_type = clutter_event_type (event);
|
||||
diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
|
||||
index be08d6d..398669c 100644
|
||||
--- a/src/tray/na-xembed.c
|
||||
+++ b/src/tray/na-xembed.c
|
||||
@@ -115,9 +115,8 @@ xembed_send_message (NaXembed *xembed,
|
||||
{
|
||||
NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
|
||||
Display *xdisplay = meta_x11_display_get_xdisplay (priv->x11_display);
|
||||
- XClientMessageEvent xclient;
|
||||
+ XClientMessageEvent xclient = {0};
|
||||
|
||||
- memset (&xclient, 0, sizeof (xclient));
|
||||
xclient.window = recipient;
|
||||
xclient.type = ClientMessage;
|
||||
xclient.message_type = priv->atom__XEMBED;
|
||||
@@ -153,10 +152,9 @@ static void
|
||||
na_xembed_send_configure_event (NaXembed *xembed)
|
||||
{
|
||||
NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
|
||||
- XConfigureEvent xconfigure;
|
||||
+ XConfigureEvent xconfigure = {0};
|
||||
Display *xdisplay = meta_x11_display_get_xdisplay (priv->x11_display);
|
||||
|
||||
- memset (&xconfigure, 0, sizeof (xconfigure));
|
||||
xconfigure.type = ConfigureNotify;
|
||||
|
||||
xconfigure.event = priv->plug_window;
|
33
debian/patches/tray-icons/tray-na-tray-manager-Remove-outdated-comment-and-return-v.patch
vendored
Normal file
33
debian/patches/tray-icons/tray-na-tray-manager-Remove-outdated-comment-and-return-v.patch
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
|
||||
Date: Wed, 1 May 2024 20:54:46 +0200
|
||||
Subject: tray/na-tray-manager: Remove outdated comment and return value
|
||||
|
||||
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
|
||||
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
|
||||
---
|
||||
src/tray/na-tray-manager.c | 5 +----
|
||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/tray/na-tray-manager.c b/src/tray/na-tray-manager.c
|
||||
index 2d95d6a..7c630bd 100644
|
||||
--- a/src/tray/na-tray-manager.c
|
||||
+++ b/src/tray/na-tray-manager.c
|
||||
@@ -244,7 +244,7 @@ na_tray_manager_new (MetaX11Display *x11_display)
|
||||
NULL);
|
||||
}
|
||||
|
||||
-static gboolean
|
||||
+static void
|
||||
na_tray_manager_plug_removed (NaTrayChild *tray_child,
|
||||
NaTrayManager *manager)
|
||||
{
|
||||
@@ -255,9 +255,6 @@ na_tray_manager_plug_removed (NaTrayChild *tray_child,
|
||||
g_hash_table_remove (manager->children,
|
||||
GINT_TO_POINTER (icon_window));
|
||||
g_signal_emit (manager, manager_signals[TRAY_ICON_REMOVED], 0, tray_child);
|
||||
-
|
||||
- /* This destroys the socket. */
|
||||
- return FALSE;
|
||||
}
|
||||
|
||||
static void
|
111
debian/patches/tray-icons/tray-na-xembed-Destroy-socket-window-when-ending-the-embe.patch
vendored
Normal file
111
debian/patches/tray-icons/tray-na-xembed-Destroy-socket-window-when-ending-the-embe.patch
vendored
Normal file
|
@ -0,0 +1,111 @@
|
|||
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
|
||||
Date: Wed, 1 May 2024 05:56:48 +0200
|
||||
Subject: tray/na-xembed: Destroy socket window when ending the embedding
|
||||
|
||||
Currently when embedding a tray icon is ended we are leaving the X11
|
||||
socket window around as we don't really destroy it, while we're just
|
||||
listening for its child destruction.
|
||||
|
||||
So, when embedding is ending we need to make sure that:
|
||||
- If the plug window is still alive, move it back to its old parent
|
||||
(normally that's the root window, but we query for it, to be sure)
|
||||
- If the plug window has been already destroyed or reparented (by us or
|
||||
by something else), we've to just destroy the socket window
|
||||
|
||||
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
|
||||
Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7614
|
||||
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
|
||||
---
|
||||
src/tray/na-xembed.c | 39 ++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 38 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
|
||||
index 4ef3666..588e034 100644
|
||||
--- a/src/tray/na-xembed.c
|
||||
+++ b/src/tray/na-xembed.c
|
||||
@@ -36,6 +36,7 @@ struct _NaXembedPrivate
|
||||
MetaX11Display *x11_display;
|
||||
Window socket_window;
|
||||
Window plug_window;
|
||||
+ Window old_parent;
|
||||
|
||||
int root_x;
|
||||
int root_y;
|
||||
@@ -139,7 +140,26 @@ na_xembed_end_embedding (NaXembed *xembed)
|
||||
{
|
||||
NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
|
||||
|
||||
+ if (priv->socket_window)
|
||||
+ {
|
||||
+ Display *xdisplay = meta_x11_display_get_xdisplay (priv->x11_display);
|
||||
+
|
||||
+ mtk_x11_error_trap_push (xdisplay);
|
||||
+
|
||||
+ if (priv->plug_window && priv->old_parent)
|
||||
+ XReparentWindow (xdisplay,
|
||||
+ priv->plug_window,
|
||||
+ priv->old_parent,
|
||||
+ 0, 0);
|
||||
+
|
||||
+ XDestroyWindow (xdisplay, priv->socket_window);
|
||||
+ priv->socket_window = None;
|
||||
+
|
||||
+ mtk_x11_error_trap_pop (xdisplay);
|
||||
+ }
|
||||
+
|
||||
priv->plug_window = None;
|
||||
+ priv->old_parent = None;
|
||||
priv->current_width = 0;
|
||||
priv->current_height = 0;
|
||||
priv->resize_count = 0;
|
||||
@@ -413,6 +433,18 @@ na_xembed_add_window (NaXembed *xembed,
|
||||
&socket_attrs);
|
||||
|
||||
XUnmapWindow (xdisplay, priv->plug_window); /* Shouldn't actually be necessary for XEMBED, but just in case */
|
||||
+
|
||||
+ if (!priv->old_parent)
|
||||
+ {
|
||||
+ g_autofree Window *children = NULL;
|
||||
+ unsigned int n_children;
|
||||
+ Window root;
|
||||
+
|
||||
+ if (!XQueryTree (xdisplay, priv->plug_window, &root, &priv->old_parent,
|
||||
+ &children, &n_children))
|
||||
+ priv->old_parent = meta_x11_display_get_xroot (priv->x11_display);
|
||||
+ }
|
||||
+
|
||||
XReparentWindow (xdisplay,
|
||||
priv->plug_window,
|
||||
priv->socket_window,
|
||||
@@ -563,10 +595,14 @@ xembed_filter_func (MetaX11Display *x11_display,
|
||||
/* Note that we get destroy notifies both from SubstructureNotify on
|
||||
* our window and StructureNotify on socket->plug_window
|
||||
*/
|
||||
+ if (priv->socket_window && xdwe->window == priv->socket_window)
|
||||
+ priv->socket_window = None;
|
||||
+
|
||||
if (priv->plug_window && (xdwe->window == priv->plug_window))
|
||||
{
|
||||
g_object_ref (xembed);
|
||||
g_signal_emit (xembed, signals[PLUG_REMOVED], 0);
|
||||
+ priv->plug_window = None;
|
||||
na_xembed_end_embedding (xembed);
|
||||
g_object_unref (xembed);
|
||||
}
|
||||
@@ -631,6 +667,7 @@ xembed_filter_func (MetaX11Display *x11_display,
|
||||
{
|
||||
g_object_ref (xembed);
|
||||
g_signal_emit (xembed, signals[PLUG_REMOVED], 0);
|
||||
+ priv->old_parent = None;
|
||||
na_xembed_end_embedding (xembed);
|
||||
g_object_unref (xembed);
|
||||
}
|
||||
@@ -696,7 +733,7 @@ na_xembed_finalize (GObject *object)
|
||||
if (priv->x11_display && priv->event_func_id)
|
||||
meta_x11_display_remove_event_func (priv->x11_display, priv->event_func_id);
|
||||
|
||||
- if (priv->plug_window)
|
||||
+ if (priv->plug_window || priv->socket_window)
|
||||
na_xembed_end_embedding (xembed);
|
||||
|
||||
G_OBJECT_CLASS (na_xembed_parent_class)->finalize (object);
|
90
debian/patches/tray-icons/tray-na-xembed-Use-XShape-to-remove-input-on-socket-windo.patch
vendored
Normal file
90
debian/patches/tray-icons/tray-na-xembed-Use-XShape-to-remove-input-on-socket-windo.patch
vendored
Normal file
|
@ -0,0 +1,90 @@
|
|||
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
|
||||
Date: Wed, 1 May 2024 22:34:58 +0200
|
||||
Subject: tray/na-xembed: Use XShape to remove input on socket window
|
||||
|
||||
We don't want this window to take any input as, a part from blocking the
|
||||
events on the shell representation itself, they may potentially make the
|
||||
plugged window to do anything with the event is processing (such as
|
||||
showing tooltips). And we don't want this since we only want to send to
|
||||
those windows only the synthetic events that we explicitly control.
|
||||
|
||||
This was already the case before of commit ab60902058 but a similar
|
||||
approach was not replicated, leading to input events being fully
|
||||
processed from tray icons plugs.
|
||||
|
||||
It requires adding an explicit build dependency on Xext, but this is
|
||||
something that mutter already depends on so not really a new dependency
|
||||
|
||||
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
|
||||
Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7613
|
||||
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
|
||||
---
|
||||
meson.build | 1 +
|
||||
src/tray/meson.build | 2 +-
|
||||
src/tray/na-xembed.c | 15 +++++++++++++++
|
||||
3 files changed, 17 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 03a3b2a..3d0f5e5 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -93,6 +93,7 @@ have_x11 = mutter_dep.get_variable('have_x11') == 'true'
|
||||
have_x11_client = mutter_dep.get_variable('have_x11_client') == 'true'
|
||||
if have_x11_client or have_x11
|
||||
x11_dep = dependency('x11')
|
||||
+ xext_dep = dependency('xext')
|
||||
xfixes_dep = dependency('xfixes')
|
||||
endif
|
||||
|
||||
diff --git a/src/tray/meson.build b/src/tray/meson.build
|
||||
index 2fc73f3..c91e940 100644
|
||||
--- a/src/tray/meson.build
|
||||
+++ b/src/tray/meson.build
|
||||
@@ -9,6 +9,6 @@ tray_sources = [
|
||||
|
||||
libtray = static_library('tray', tray_sources,
|
||||
c_args: ['-DG_LOG_DOMAIN="notification_area"'],
|
||||
- dependencies: [mutter_dep, mtk_dep, xfixes_dep],
|
||||
+ dependencies: [mutter_dep, mtk_dep, xfixes_dep, xext_dep],
|
||||
include_directories: conf_inc
|
||||
)
|
||||
diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
|
||||
index 75af21a..1be1e9d 100644
|
||||
--- a/src/tray/na-xembed.c
|
||||
+++ b/src/tray/na-xembed.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "na-xembed.h"
|
||||
|
||||
#include <mtk/mtk-x11.h>
|
||||
+#include <X11/extensions/shape.h>
|
||||
#include <X11/extensions/Xfixes.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
@@ -362,6 +363,7 @@ na_xembed_add_window (NaXembed *xembed,
|
||||
{
|
||||
XSetWindowAttributes socket_attrs;
|
||||
XWindowAttributes plug_attrs;
|
||||
+ int shape_major, shape_minor;
|
||||
int result;
|
||||
|
||||
result = XGetWindowAttributes (xdisplay, priv->plug_window, &plug_attrs);
|
||||
@@ -407,6 +409,19 @@ na_xembed_add_window (NaXembed *xembed,
|
||||
priv->plug_window,
|
||||
priv->socket_window,
|
||||
0, 0);
|
||||
+
|
||||
+ /* Set an empty input shape on the window so that the socket does not
|
||||
+ * get any input. Without this we the tray may still get events and for
|
||||
+ * example show tooltips on hover which we don't want.
|
||||
+ * This is the quickest way to achieve this, without having to deal these
|
||||
+ * windows with specific code in mutter.
|
||||
+ */
|
||||
+ if (XShapeQueryExtension (xdisplay, &shape_major, &shape_minor))
|
||||
+ {
|
||||
+ XShapeSelectInput (xdisplay, priv->socket_window, NoEventMask);
|
||||
+ XShapeCombineRectangles (xdisplay, priv->socket_window, ShapeInput,
|
||||
+ 0, 0, NULL, 0, ShapeSet, 0);
|
||||
+ }
|
||||
}
|
||||
|
||||
priv->have_size = FALSE;
|
20
debian/patches/tray-icons/tray-na-xembed-Use-proper-indentation-style-header.patch
vendored
Normal file
20
debian/patches/tray-icons/tray-na-xembed-Use-proper-indentation-style-header.patch
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
|
||||
Date: Wed, 1 May 2024 05:54:31 +0200
|
||||
Subject: tray/na-xembed: Use proper indentation style header
|
||||
|
||||
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
|
||||
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
|
||||
---
|
||||
src/tray/na-xembed.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
|
||||
index 398669c..4ef3666 100644
|
||||
--- a/src/tray/na-xembed.c
|
||||
+++ b/src/tray/na-xembed.c
|
||||
@@ -1,4 +1,4 @@
|
||||
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
/* Copyright (C) 2022 Red Hat Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
69
debian/rules
vendored
Executable file
69
debian/rules
vendored
Executable file
|
@ -0,0 +1,69 @@
|
|||
#!/usr/bin/make -f
|
||||
|
||||
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
export DEB_LDFLAGS_MAINT_APPEND = -Wl,-O1 -Wl,-z,defs
|
||||
|
||||
%:
|
||||
dh $@ --with bash_completion
|
||||
|
||||
CONFFLAGS =
|
||||
|
||||
ifeq ($(DEB_HOST_ARCH_OS),linux)
|
||||
CONFFLAGS += \
|
||||
-Dnetworkmanager=true \
|
||||
-Dsystemd=true
|
||||
endif
|
||||
|
||||
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
|
||||
CONFFLAGS += -Dtests=true
|
||||
else
|
||||
CONFFLAGS += -Dtests=false
|
||||
endif
|
||||
|
||||
ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
|
||||
CONFFLAGS += --cross-file=$(DEB_HOST_GNU_TYPE)-gobject-introspection.ini
|
||||
endif
|
||||
|
||||
override_dh_auto_configure:
|
||||
dh_auto_configure -- \
|
||||
--libdir=/usr/lib \
|
||||
-Dportal_helper=false \
|
||||
-Dextensions-tool:bash_completion=enabled \
|
||||
$(CONFFLAGS)
|
||||
|
||||
override_dh_makeshlibs:
|
||||
dh_makeshlibs -X/usr/lib/gnome-shell/
|
||||
|
||||
override_dh_shlibdeps:
|
||||
# gnome-shell uses mutters private mutter-clutter-1.0.so etc.
|
||||
dh_shlibdeps -l"usr/lib/$(DEB_HOST_MULTIARCH)/mutter"
|
||||
|
||||
# Upstream test timeouts assume an otherwise unloaded system, but that
|
||||
# isn't necessarily the case for a porterbox or multiple parallel builds.
|
||||
# Keep the timeout reasonably short for architectures where interactive
|
||||
# debugging is more likely, but extend it a lot on architectures that might
|
||||
# be very slow or using qemu for buildds.
|
||||
ifneq ($(filter amd64 i386,$(DEB_HOST_ARCH_CPU)),)
|
||||
test_timeout_multiplier = 3
|
||||
else
|
||||
test_timeout_multiplier = 20
|
||||
endif
|
||||
|
||||
meson_test_options = --timeout-multiplier $(test_timeout_multiplier)
|
||||
|
||||
ifneq ($(filter mips64el riscv64,$(DEB_HOST_ARCH_CPU)),)
|
||||
# gnome-shell on mips64el works on a real GPU (in practice usually an
|
||||
# AMD GPU), but crashes when using llvmpipe or softpipe, which is all that
|
||||
# is available on the buildds, so we only run the unit tests at build time
|
||||
# and skip the tests that would run the whole Shell. See discussion in
|
||||
# https://salsa.debian.org/gnome-team/gnome-shell/-/merge_requests/71
|
||||
meson_test_options += --no-suite shell
|
||||
endif
|
||||
|
||||
override_dh_auto_test:
|
||||
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
|
||||
env XDG_CACHE_HOME="$(shell mktemp -d -t cache-XXXXXXXX)" \
|
||||
dbus-run-session xvfb-run -a dh_auto_test -- $(meson_test_options)
|
||||
endif
|
||||
|
||||
override_dh_gnome_clean:
|
3
debian/salsa-ci.yml
vendored
Normal file
3
debian/salsa-ci.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
include:
|
||||
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml
|
1
debian/shlibs.local
vendored
Normal file
1
debian/shlibs.local
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
libgnome-bluetooth-applet 0 gnome-bluetooth (>= 3.0.0)
|
1
debian/source/format
vendored
Normal file
1
debian/source/format
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
3.0 (quilt)
|
0
debian/source/lintian-overrides
vendored
Normal file
0
debian/source/lintian-overrides
vendored
Normal file
45
debian/source_gnome-shell.py
vendored
Normal file
45
debian/source_gnome-shell.py
vendored
Normal file
|
@ -0,0 +1,45 @@
|
|||
from apport.hookutils import *
|
||||
import os
|
||||
|
||||
def is_process_running(proc):
|
||||
'''
|
||||
Determine if process has a registered process id
|
||||
'''
|
||||
log = command_output(['pidof', proc])
|
||||
if not log or log[:5] == "Error" or len(log)<1:
|
||||
return False
|
||||
return True
|
||||
|
||||
def add_info(report):
|
||||
attach_related_packages(report, ['mutter-common'])
|
||||
|
||||
attach_gsettings_package(report, 'gnome-shell-common')
|
||||
attach_gsettings_package(report, 'gsettings-desktop-schemas')
|
||||
attach_gsettings_package(report, 'mutter-common')
|
||||
attach_gsettings_schema(report, 'org.gnome.settings-daemon.plugins.color')
|
||||
attach_gsettings_schema(report, 'org.gnome.settings-daemon.peripherals.touchscreen')
|
||||
|
||||
try:
|
||||
monitors = os.path.join(os.environ['XDG_CONFIG_HOME'], 'monitors.xml')
|
||||
except KeyError:
|
||||
monitors = os.path.expanduser('~/.config/monitors.xml')
|
||||
|
||||
attach_file_if_exists(report, monitors, 'monitors.xml')
|
||||
|
||||
result = ''
|
||||
|
||||
dm_list = apport.hookutils.command_output(['sh', '-c',
|
||||
'apt-cache search \"display manager\" | cut -d \' \' -f1 | grep -E \"dm$|^gdm3?\\b\"'])
|
||||
|
||||
for line in dm_list.split('\n'):
|
||||
if (is_process_running(line)):
|
||||
result = line
|
||||
break
|
||||
|
||||
report['DisplayManager'] = result
|
||||
|
||||
if command_available('journalctl') and os.path.exists('/run/systemd/system'):
|
||||
report['ShellJournal'] = command_output(['journalctl',
|
||||
'/usr/bin/gnome-shell',
|
||||
'-b', '-o', 'short-monotonic',
|
||||
'--lines', '3000'])
|
6
debian/upstream/metadata
vendored
Normal file
6
debian/upstream/metadata
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
Name: GNOME Shell
|
||||
Bug-Database: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues
|
||||
Bug-Submit: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/new
|
||||
Repository: https://gitlab.gnome.org/GNOME/gnome-shell.git
|
||||
Repository-Browse: https://gitlab.gnome.org/GNOME/gnome-shell/
|
4
debian/watch
vendored
Normal file
4
debian/watch
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
version=4
|
||||
opts="searchmode=plain, uversionmangle=s/\.(alpha|beta|rc)/~$1/, downloadurlmangle=s|cache.json||" \
|
||||
https://download.gnome.org/sources/@PACKAGE@/cache.json \
|
||||
[\d.]+/@PACKAGE@-([\d.]+\.?(?:beta|rc)?[\d.]*)@ARCHIVE_EXT@
|
Loading…
Add table
Add a link
Reference in a new issue