diff --git a/gtk+-3.22.1.tar.xz b/gtk+-3.22.1.tar.xz deleted file mode 100644 index 3ecf4c6..0000000 --- a/gtk+-3.22.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:127c8c5cfc32681f9ab3cb542eb0d5c16c1c02faba68bf8fcac9a3cf278ef471 -size 20779708 diff --git a/gtk+-3.22.2.tar.xz b/gtk+-3.22.2.tar.xz new file mode 100644 index 0000000..57ef342 --- /dev/null +++ b/gtk+-3.22.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2343dcaed2fc237ef718136ff4110fef7eb1ebfe178a9b064aa21cd74ecb6946 +size 18257964 diff --git a/gtk3-startupfix-wayland.patch b/gtk3-startupfix-wayland.patch new file mode 100644 index 0000000..da27fd2 --- /dev/null +++ b/gtk3-startupfix-wayland.patch @@ -0,0 +1,124 @@ +From c51b463dae1ebcee4e9394e068079fb6639bb71e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Mon, 10 Oct 2016 12:33:54 +0200 +Subject: [PATCH] gdkdisplay-wayland: Add API to set startup notification ID + +For wayland clients, the startup notification ID is currently only set +from the DESKTOP_STARTUP_ID environment variable. As that variable is +only set for clients launched via exec(), startup completion is not +indicated correctly for DBus-activated applications unless an explicit +ID is specified - usually that is not the case, as the default handling +uses gdk_notify_startup_complete(). +To address this, we need API to set the startup notification ID from GTK +as we have on X11. + +https://bugzilla.gnome.org/show_bug.cgi?id=768531 +--- + gdk/wayland/gdkdisplay-wayland.c | 27 +++++++++++++++++++++++++++ + gdk/wayland/gdkwaylanddisplay.h | 3 +++ + 2 files changed, 30 insertions(+) + +diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c +index cddb2de..784cfbe 100644 +--- a/gdk/wayland/gdkdisplay-wayland.c ++++ b/gdk/wayland/gdkdisplay-wayland.c +@@ -796,6 +796,33 @@ gdk_wayland_display_get_next_serial (GdkDisplay *display) + return ++serial; + } + ++/** ++ * gdk_wayland_display_set_startup_notification_id: ++ * @display: (type GdkWaylandDisplay): a #GdkDisplay ++ * @startup_id: the startup notification ID (must be valid utf8) ++ * ++ * Sets the startup notification ID for a display. ++ * ++ * This is usually taken from the value of the DESKTOP_STARTUP_ID ++ * environment variable, but in some cases (such as the application not ++ * being launched using exec()) it can come from other sources. ++ * ++ * The startup ID is also what is used to signal that the startup is ++ * complete (for example, when opening a window or when calling ++ * gdk_notify_startup_complete()). ++ * ++ * Since: 3.22 ++ **/ ++void ++gdk_wayland_display_set_startup_notification_id (GdkDisplay *display, ++ const char *startup_id) ++{ ++ GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (display); ++ ++ g_free (display_wayland->startup_notification_id); ++ display_wayland->startup_notification_id = g_strdup (startup_id); ++} ++ + static void + gdk_wayland_display_notify_startup_complete (GdkDisplay *display, + const gchar *startup_id) +diff --git a/gdk/wayland/gdkwaylanddisplay.h b/gdk/wayland/gdkwaylanddisplay.h +index a5587ca..f4b51c8 100644 +--- a/gdk/wayland/gdkwaylanddisplay.h ++++ b/gdk/wayland/gdkwaylanddisplay.h +@@ -53,6 +53,9 @@ GDK_AVAILABLE_IN_3_10 + void gdk_wayland_display_set_cursor_theme (GdkDisplay *display, + const gchar *theme, + gint size); ++GDK_AVAILABLE_IN_3_22 ++void gdk_wayland_display_set_startup_notification_id (GdkDisplay *display, ++ const char *startup_id); + + G_END_DECLS + +-- +2.9.3 + +From b29fbaa1d5a615aed7204de7b99c430e52e362b9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Mon, 10 Oct 2016 12:33:54 +0200 +Subject: [PATCH] wayland: Set startup ID from GApplication platform data + +The GApplication platform data may contain a startup ID that on X11 +is used to set the startup notification ID when activated. Do the +same on the wayland backend to make startup notifications work for +DBus-activated applications where the DESKTOP_STARTUP_ID environment +variable is not set. + +https://bugzilla.gnome.org/show_bug.cgi?id=768531 +--- + gtk/gtkapplication-wayland.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/gtk/gtkapplication-wayland.c b/gtk/gtkapplication-wayland.c +index 84df82c..221a1ad 100644 +--- a/gtk/gtkapplication-wayland.c ++++ b/gtk/gtkapplication-wayland.c +@@ -61,6 +61,17 @@ gtk_application_impl_wayland_handle_window_realize (GtkApplicationImpl *impl, + } + + static void ++gtk_application_impl_wayland_before_emit (GtkApplicationImpl *impl, ++ GVariant *platform_data) ++{ ++ const char *startup_notification_id = NULL; ++ ++ g_variant_lookup (platform_data, "desktop-startup-id", "&s", &startup_notification_id); ++ ++ gdk_wayland_display_set_startup_notification_id (gdk_display_get_default (), startup_notification_id); ++} ++ ++static void + gtk_application_impl_wayland_init (GtkApplicationImplWayland *wayland) + { + } +@@ -72,4 +83,6 @@ gtk_application_impl_wayland_class_init (GtkApplicationImplWaylandClass *class) + + impl_class->handle_window_realize = + gtk_application_impl_wayland_handle_window_realize; ++ impl_class->before_emit = ++ gtk_application_impl_wayland_before_emit; + } +-- +2.9.3 + + diff --git a/gtk3.changes b/gtk3.changes index edde6f6..d845b09 100644 --- a/gtk3.changes +++ b/gtk3.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Tue Nov 1 10:07:53 UTC 2016 - zaitor@opensuse.org + +- Add gtk3-startupfix-wayland.patch: Fix slow startup notification + for some gtk3 apps when running on wayland (bgo#768531). + +------------------------------------------------------------------- +Mon Oct 24 10:45:05 UTC 2016 - zaitor@opensuse.org + +- Update to version 3.22.2: + + Several improvements to the win32 theme. + + Deprecations have been added for APIs that will be removed in + GTK+ 4. + + Bugs fixed: bgo#767713, bgo#771320, bgo#772345, bgo#772389, + bgo#772415, bgo#772552, bgo#772683, bgo#772695, bgo#772775, + bgo#772859, bgo#772922, bgo#772926, bgo#773029, bgo#773082, + bgo#773113, bgo#773180, bgo#773246. + + Updated translations. + ------------------------------------------------------------------- Sat Oct 1 09:13:25 UTC 2016 - zaitor@opensuse.org diff --git a/gtk3.spec b/gtk3.spec index 3498c0f..a9dd98a 100644 --- a/gtk3.spec +++ b/gtk3.spec @@ -29,7 +29,7 @@ Name: gtk3 %define _name gtk+ -Version: 3.22.1 +Version: 3.22.2 Release: 0 Summary: The GTK+ toolkit library (version 3) License: LGPL-2.1+ @@ -44,6 +44,8 @@ Source99: baselibs.conf Patch0: gtk3-GTK_PATH64.patch # PATCH-NEEDS-REBASE gtk3-path-local.patch Search in /usr/local/%{_lib} by default. bnc369696 bgo534474 -- Was PATCH-FIX-OPENSUSE Patch1: gtk3-path-local.patch +# PATCH-FIX-UPSTREAM gtk3-startupfix-wayland.patch bgo#768531 zaitor@opensuse.org -- Fix slow startup notification on wayland +Patch2: gtk3-startupfix-wayland.patch BuildRequires: cups-devel >= 1.2 BuildRequires: docbook-xsl-stylesheets BuildRequires: fdupes @@ -339,6 +341,7 @@ cp -a %{S:1} . %endif # Patch disabled, needs rebase. #patch1 -p0 +%patch2 -p1 %build # Disabled since patch 1 is in need of rebase