Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gtk3 for openSUSE:Factory checked in at 2025-01-31 16:02:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gtk3 (Old) and /work/SRC/openSUSE:Factory/.gtk3.new.2316 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gtk3" Fri Jan 31 16:02:02 2025 rev:199 rq:1241445 version:3.24.48 Changes: -------- --- /work/SRC/openSUSE:Factory/gtk3/gtk3.changes 2025-01-28 14:58:31.724438995 +0100 +++ /work/SRC/openSUSE:Factory/.gtk3.new.2316/gtk3.changes 2025-01-31 16:02:25.423106129 +0100 @@ -1,0 +2,7 @@ +Thu Jan 30 13:06:18 UTC 2025 - Dominique Leuenberger <dims...@opensuse.org> + +- Add + 0001-Revert-wayland-Add-support-for-v2-of-xdg_foreign-pro.patch: + Fix crash in e.g waybar (boo#1236631). + +------------------------------------------------------------------- New: ---- 0001-Revert-wayland-Add-support-for-v2-of-xdg_foreign-pro.patch BETA DEBUG BEGIN: New:- Add 0001-Revert-wayland-Add-support-for-v2-of-xdg_foreign-pro.patch: Fix crash in e.g waybar (boo#1236631). BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gtk3.spec ++++++ --- /var/tmp/diff_new_pack.KV9WDi/_old 2025-01-31 16:02:26.619154111 +0100 +++ /var/tmp/diff_new_pack.KV9WDi/_new 2025-01-31 16:02:26.623154272 +0100 @@ -45,6 +45,8 @@ Patch0: gtk3-GTK_PATH64.patch # PATCH-FIX-OPENSUSE gtk3-revert-forced-xftdpi.patch fv...@opensuse.org -- Revert very controversal commit on GTK3, forcing DPI to 96 Patch1: gtk3-revert-forced-xftdpi.patch +# PATCH-FIX-UPSTREAM +Patch2: 0001-Revert-wayland-Add-support-for-v2-of-xdg_foreign-pro.patch BuildRequires: cups-devel >= 1.7 BuildRequires: docbook-xsl-stylesheets @@ -393,6 +395,7 @@ %autopatch -p1 -m 1 -M 999 %else %patch -P 1 -p1 +%patch -P 2 -p1 %endif %build ++++++ 0001-Revert-wayland-Add-support-for-v2-of-xdg_foreign-pro.patch ++++++ >From cb096c3fb901c10754c6a4ebc8fcb8e2c2661279 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger <dims...@opensuse.org> Date: Thu, 30 Jan 2025 14:01:46 +0100 Subject: [PATCH] Revert "wayland: Add support for v2 of xdg_foreign protocol" This reverts commit b8435aab3933d6173fbeb62e0c079d5680e25d53. --- gdk/wayland/gdkdisplay-wayland.c | 17 +--- gdk/wayland/gdkdisplay-wayland.h | 7 +- gdk/wayland/gdkwindow-wayland.c | 166 ++++++++----------------------- gdk/wayland/meson.build | 1 - 4 files changed, 46 insertions(+), 145 deletions(-) diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c index 8b4c3496b..c5e92c0f3 100644 --- a/gdk/wayland/gdkdisplay-wayland.c +++ b/gdk/wayland/gdkdisplay-wayland.c @@ -47,7 +47,6 @@ #include "tablet-unstable-v2-client-protocol.h" #include "xdg-shell-unstable-v6-client-protocol.h" #include "xdg-foreign-unstable-v1-client-protocol.h" -#include "xdg-foreign-unstable-v2-client-protocol.h" #include "server-decoration-client-protocol.h" #ifdef HAVE_TOPLEVEL_STATE_SUSPENDED @@ -494,28 +493,16 @@ gdk_registry_handle_global (void *data, } else if (strcmp (interface, "zxdg_exporter_v1") == 0) { - display_wayland->xdg_exporter_v1 = + display_wayland->xdg_exporter = wl_registry_bind (display_wayland->wl_registry, id, &zxdg_exporter_v1_interface, 1); } else if (strcmp (interface, "zxdg_importer_v1") == 0) { - display_wayland->xdg_importer_v1 = + display_wayland->xdg_importer = wl_registry_bind (display_wayland->wl_registry, id, &zxdg_importer_v1_interface, 1); } - else if (strcmp (interface, "zxdg_exporter_v2") == 0) - { - display_wayland->xdg_exporter_v2 = - wl_registry_bind (display_wayland->wl_registry, id, - &zxdg_exporter_v2_interface, 1); - } - else if (strcmp (interface, "zxdg_importer_v2") == 0) - { - display_wayland->xdg_importer_v2 = - wl_registry_bind (display_wayland->wl_registry, id, - &zxdg_importer_v2_interface, 1); - } else if (strcmp (interface, "zwp_keyboard_shortcuts_inhibit_manager_v1") == 0) { display_wayland->keyboard_shortcuts_inhibit = diff --git a/gdk/wayland/gdkdisplay-wayland.h b/gdk/wayland/gdkdisplay-wayland.h index eb5e4b3b3..b91df7668 100644 --- a/gdk/wayland/gdkdisplay-wayland.h +++ b/gdk/wayland/gdkdisplay-wayland.h @@ -32,7 +32,6 @@ #include <gdk/wayland/xdg-shell-client-protocol.h> #include <gdk/wayland/xdg-shell-unstable-v6-client-protocol.h> #include <gdk/wayland/xdg-foreign-unstable-v1-client-protocol.h> -#include <gdk/wayland/xdg-foreign-unstable-v2-client-protocol.h> #include <gdk/wayland/keyboard-shortcuts-inhibit-unstable-v1-client-protocol.h> #include <gdk/wayland/server-decoration-client-protocol.h> #include <gdk/wayland/xdg-output-unstable-v1-client-protocol.h> @@ -97,10 +96,8 @@ struct _GdkWaylandDisplay struct gtk_primary_selection_device_manager *gtk_primary_selection_manager; struct zwp_primary_selection_device_manager_v1 *zwp_primary_selection_manager_v1; struct zwp_tablet_manager_v2 *tablet_manager; - struct zxdg_exporter_v1 *xdg_exporter_v1; - struct zxdg_importer_v1 *xdg_importer_v1; - struct zxdg_exporter_v2 *xdg_exporter_v2; - struct zxdg_importer_v2 *xdg_importer_v2; + struct zxdg_exporter_v1 *xdg_exporter; + struct zxdg_importer_v1 *xdg_importer; struct zwp_keyboard_shortcuts_inhibit_manager_v1 *keyboard_shortcuts_inhibit; struct org_kde_kwin_server_decoration_manager *server_decoration_manager; struct zxdg_output_manager_v1 *xdg_output_manager; diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c index 07af2efa8..f520a3768 100644 --- a/gdk/wayland/gdkwindow-wayland.c +++ b/gdk/wayland/gdkwindow-wayland.c @@ -133,8 +133,7 @@ struct _GdkWindowImplWayland struct wl_subsurface *wl_subsurface; struct wl_egl_window *egl_window; struct wl_egl_window *dummy_egl_window; - struct zxdg_exported_v1 *xdg_exported_v1; - struct zxdg_exported_v2 *xdg_exported_v2; + struct zxdg_exported_v1 *xdg_exported; struct org_kde_kwin_server_decoration *server_decoration; } display_server; @@ -237,8 +236,7 @@ struct _GdkWindowImplWayland guint idle_source_id; } exported; - struct zxdg_imported_v1 *imported_v1_transient_for; - struct zxdg_imported_v2 *imported_v2_transient_for; + struct zxdg_imported_v1 *imported_transient_for; GHashTable *shortcuts_inhibitors; struct wl_callback *surface_callback; @@ -1326,19 +1324,14 @@ gdk_wayland_window_sync_parent_of_imported (GdkWindow *window) if (!impl->display_server.wl_surface) return; + if (!impl->imported_transient_for) + return; + if (!is_realized_toplevel (window)) return; - if (impl->imported_v2_transient_for) - { - zxdg_imported_v2_set_parent_of (impl->imported_v2_transient_for, - impl->display_server.wl_surface); - } - else if (impl->imported_v1_transient_for) - { - zxdg_imported_v1_set_parent_of (impl->imported_v1_transient_for, - impl->display_server.wl_surface); - } + zxdg_imported_v1_set_parent_of (impl->imported_transient_for, + impl->display_server.wl_surface); } static void @@ -5426,9 +5419,9 @@ invoke_exported_closures (GdkWindow *window) } static void -xdg_exported_v1_handle (void *data, - struct zxdg_exported_v1 *zxdg_exported_v1, - const char *handle) +xdg_exported_handle (void *data, + struct zxdg_exported_v1 *zxdg_exported_v1, + const char *handle) { GdkWindow *window = data; GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); @@ -5438,20 +5431,8 @@ xdg_exported_v1_handle (void *data, invoke_exported_closures (window); } -static const struct zxdg_exported_v1_listener xdg_exported_v1_listener = { - xdg_exported_v1_handle -}; - -static void -xdg_exported_v2_handle (void *data, - struct zxdg_exported_v2 *zxdg_exported_v2, - const char *handle) -{ - xdg_exported_v1_handle(data, NULL, handle); -} - -static const struct zxdg_exported_v2_listener xdg_exported_v2_listener = { - xdg_exported_v2_handle +static const struct zxdg_exported_v1_listener xdg_exported_listener = { + xdg_exported_handle }; /** @@ -5473,7 +5454,7 @@ gdk_wayland_window_is_exported (GdkWindow *window) { GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); - return impl->display_server.xdg_exported_v2 || impl->display_server.xdg_exported_v1; + return !!impl->display_server.xdg_exported; } static gboolean @@ -5540,45 +5521,25 @@ gdk_wayland_window_export_handle (GdkWindow *window, impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); display_wayland = GDK_WAYLAND_DISPLAY (display); - if (display_wayland->xdg_exporter_v2) + if (!display_wayland->xdg_exporter) { - if (!impl->display_server.xdg_exported_v2) - { - struct zxdg_exported_v2 *xdg_exported_v2; - - xdg_exported_v2 = - zxdg_exporter_v2_export_toplevel (display_wayland->xdg_exporter_v2, - impl->display_server.wl_surface); - zxdg_exported_v2_add_listener (xdg_exported_v2, - &xdg_exported_v2_listener, - window); - - impl->display_server.xdg_exported_v2 = xdg_exported_v2; - } + g_warning ("Server is missing xdg_foreign support"); + return FALSE; } - else if (display_wayland->xdg_exporter_v1) + + if (!impl->display_server.xdg_exported) { - if (!impl->display_server.xdg_exported_v1) - { - struct zxdg_exported_v1 *xdg_exported_v1; + struct zxdg_exported_v1 *xdg_exported; - xdg_exported_v1 = - zxdg_exporter_v1_export (display_wayland->xdg_exporter_v1, - impl->display_server.wl_surface); - zxdg_exported_v1_add_listener (xdg_exported_v1, - &xdg_exported_v1_listener, - window); + xdg_exported = zxdg_exporter_v1_export (display_wayland->xdg_exporter, + impl->display_server.wl_surface); + zxdg_exported_v1_add_listener (xdg_exported, + &xdg_exported_listener, + window); - impl->display_server.xdg_exported_v1 = xdg_exported_v1; - } - } - else - { - g_warning ("Server is missing xdg_foreign support"); - return FALSE; + impl->display_server.xdg_exported = xdg_exported; } - closure = g_new0 (ExportedClosure, 1); closure->callback = callback; closure->user_data = user_data; @@ -5599,16 +5560,8 @@ gdk_wayland_window_unexport (GdkWindow *window) GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); GList *l; - if (impl->display_server.xdg_exported_v2) - { - g_clear_pointer (&impl->display_server.xdg_exported_v2, - zxdg_exported_v2_destroy); - } - else if (impl->display_server.xdg_exported_v1) - { - g_clear_pointer (&impl->display_server.xdg_exported_v1, - zxdg_exported_v1_destroy); - } + g_clear_pointer (&impl->display_server.xdg_exported, + zxdg_exported_v1_destroy); for (l = impl->exported.closures; l; l = l->next) { @@ -5653,8 +5606,7 @@ gdk_wayland_window_unexport_handle (GdkWindow *window) impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); - g_return_if_fail (impl->display_server.xdg_exported_v2 || - impl->display_server.xdg_exported_v1); + g_return_if_fail (impl->display_server.xdg_exported); impl->exported.export_count--; if (impl->exported.export_count == 0) @@ -5666,40 +5618,20 @@ unset_transient_for_exported (GdkWindow *window) { GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); - if (impl->imported_v2_transient_for) - { - g_clear_pointer (&impl->imported_v2_transient_for, - zxdg_imported_v2_destroy); - } - else if (impl->imported_v1_transient_for) - { - g_clear_pointer (&impl->imported_v1_transient_for, - zxdg_imported_v1_destroy); - } + g_clear_pointer (&impl->imported_transient_for, zxdg_imported_v1_destroy); } static void -xdg_imported_v1_destroyed (void *data, - struct zxdg_imported_v1 *zxdg_imported_v1) +xdg_imported_destroyed (void *data, + struct zxdg_imported_v1 *zxdg_imported_v1) { GdkWindow *window = data; unset_transient_for_exported (window); } -static const struct zxdg_imported_v1_listener xdg_imported_v1_listener = { - xdg_imported_v1_destroyed, -}; - -static void -xdg_imported_v2_destroyed (void *data, - struct zxdg_imported_v2 *zxdg_imported_v2) -{ - xdg_imported_v1_destroyed (data, NULL); -} - -static const struct zxdg_imported_v2_listener xdg_imported_v2_listener = { - xdg_imported_v2_destroyed, +static const struct zxdg_imported_v1_listener xdg_imported_listener = { + xdg_imported_destroyed, }; /** @@ -5735,34 +5667,20 @@ gdk_wayland_window_set_transient_for_exported (GdkWindow *window, impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); display_wayland = GDK_WAYLAND_DISPLAY (display); - if (display_wayland->xdg_importer_v2) - { - gdk_window_set_transient_for (window, NULL); - - impl->imported_v2_transient_for = - zxdg_importer_v2_import_toplevel (display_wayland->xdg_importer_v2, - parent_handle_str); - zxdg_imported_v2_add_listener (impl->imported_v2_transient_for, - &xdg_imported_v2_listener, - window); - } - else if (display_wayland->xdg_importer_v1) - { - gdk_window_set_transient_for (window, NULL); - - impl->imported_v1_transient_for = - zxdg_importer_v1_import (display_wayland->xdg_importer_v1, - parent_handle_str); - zxdg_imported_v1_add_listener (impl->imported_v1_transient_for, - &xdg_imported_v1_listener, - window); - } - else + if (!display_wayland->xdg_importer) { g_warning ("Server is missing xdg_foreign support"); return FALSE; } + gdk_window_set_transient_for (window, NULL); + + impl->imported_transient_for = + zxdg_importer_v1_import (display_wayland->xdg_importer, parent_handle_str); + zxdg_imported_v1_add_listener (impl->imported_transient_for, + &xdg_imported_listener, + window); + gdk_wayland_window_sync_parent_of_imported (window); return TRUE; diff --git a/gdk/wayland/meson.build b/gdk/wayland/meson.build index af7ea1f69..ad5dfe559 100644 --- a/gdk/wayland/meson.build +++ b/gdk/wayland/meson.build @@ -53,7 +53,6 @@ proto_sources = [ ['xdg-shell', 'unstable', 'v6', ], ['xdg-shell', 'stable', ], ['xdg-foreign', 'unstable', 'v1', ], - ['xdg-foreign', 'unstable', 'v2', ], ['tablet', 'unstable', 'v2', ], ['keyboard-shortcuts-inhibit', 'unstable', 'v1', ], ['server-decoration', 'private' ], -- 2.48.1