From b17d1e7a0effe980dc84d60e97d71ad192911d16 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Wed, 2 Mar 2022 08:38:14 -0800 Subject: [PATCH] Backport MR#4366 to fix launching control-center panes from overview --- ...vation-Don-t-assume-there-s-a-focus-.patch | 40 +++++++++++++++++++ gtk4.spec | 10 ++++- 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 0001-wayland-xdg-activation-Don-t-assume-there-s-a-focus-.patch diff --git a/0001-wayland-xdg-activation-Don-t-assume-there-s-a-focus-.patch b/0001-wayland-xdg-activation-Don-t-assume-there-s-a-focus-.patch new file mode 100644 index 0000000..28fb6ab --- /dev/null +++ b/0001-wayland-xdg-activation-Don-t-assume-there-s-a-focus-.patch @@ -0,0 +1,40 @@ +From 4d741bac98f906796d61eebfb4f74f5b1cecb2b6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Guido=20G=C3=BCnther?= +Date: Tue, 11 Jan 2022 20:21:55 +0100 +Subject: [PATCH] wayland: xdg-activation: Don't assume there's a focus surface +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Tools like gtk4-launch can't set surface on the activation token so +don't require it. If the compositor requires it we can't do anything +about it anyway. This avoids a critical: + + (gtk4-launch:23497): Gdk-CRITICAL **: 17:07:24.704: gdk_wayland_surface_get_wl_surface: assertion 'GDK_IS_WAYLAND_SURFACE (surface)' failed + +Fixes: be4216e051 ("gdk/wayland: Support the xdg-activation wayland protocol") + +Signed-off-by: Guido Günther +--- + gdk/wayland/gdkapplaunchcontext-wayland.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/gdk/wayland/gdkapplaunchcontext-wayland.c b/gdk/wayland/gdkapplaunchcontext-wayland.c +index c9498e507c..c8bf5afd25 100644 +--- a/gdk/wayland/gdkapplaunchcontext-wayland.c ++++ b/gdk/wayland/gdkapplaunchcontext-wayland.c +@@ -73,8 +73,9 @@ gdk_wayland_app_launch_context_get_startup_notify_id (GAppLaunchContext *context + xdg_activation_token_v1_set_serial (token, + _gdk_wayland_seat_get_last_implicit_grab_serial (seat, NULL), + gdk_wayland_seat_get_wl_seat (GDK_SEAT (seat))); +- xdg_activation_token_v1_set_surface (token, +- gdk_wayland_surface_get_wl_surface (focus_surface)); ++ if (focus_surface) ++ xdg_activation_token_v1_set_surface (token, ++ gdk_wayland_surface_get_wl_surface (focus_surface)); + xdg_activation_token_v1_commit (token); + + while (app_launch_data.token == NULL) +-- +2.35.1 + diff --git a/gtk4.spec b/gtk4.spec index f76f774..0d57e76 100644 --- a/gtk4.spec +++ b/gtk4.spec @@ -17,13 +17,18 @@ Name: gtk4 Version: 4.6.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK graphical user interface library License: LGPLv2+ URL: https://www.gtk.org Source0: https://download.gnome.org/sources/gtk/4.6/gtk-%{version}.tar.xz +# Fix control-center pane launching from overview: +# https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1675 +# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4366 +Patch0: 0001-wayland-xdg-activation-Don-t-assume-there-s-a-focus-.patch + BuildRequires: cups-devel BuildRequires: desktop-file-utils BuildRequires: docbook-style-xsl @@ -227,6 +232,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %{_mandir}/man1/gtk4-widget-factory.1* %changelog +* Wed Mar 02 2022 Adam Williamson - 4.6.1-2 +- Backport MR#4366 to fix launching control-center panes from overview + * Mon Feb 14 2022 David King - 4.6.1-1 - Update to 4.6.1