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

Reply via email to