Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gtk4 for openSUSE:Factory checked in 
at 2022-04-03 21:30:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gtk4 (Old)
 and      /work/SRC/openSUSE:Factory/.gtk4.new.1900 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gtk4"

Sun Apr  3 21:30:43 2022 rev:40 rq:966461 version:4.6.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/gtk4/gtk4.changes        2022-03-23 
20:17:27.910431761 +0100
+++ /work/SRC/openSUSE:Factory/.gtk4.new.1900/gtk4.changes      2022-04-03 
21:30:50.307921334 +0200
@@ -1,0 +2,7 @@
+Thu Mar 31 23:15:26 UTC 2022 - Jeff Mahoney <je...@suse.com>
+
+- gtkimmulticontext: Handle switches between displays
+  (glgo#GNOME/gtk#4805). Added:
+  gtkimmulticontext-Handle-switches-between-displays.patch
+
+-------------------------------------------------------------------

New:
----
  gtkimmulticontext-Handle-switches-between-displays.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gtk4.spec ++++++
--- /var/tmp/diff_new_pack.zMzUkd/_old  2022-04-03 21:30:50.871915020 +0200
+++ /var/tmp/diff_new_pack.zMzUkd/_new  2022-04-03 21:30:50.871915020 +0200
@@ -34,6 +34,9 @@
 Source3:        macros.gtk4
 Source99:       gtk4-rpmlintrc
 
+# PATCH-FIX-UPSTREAM gtkimmulticontext-Handle-switches-between-displays.patch 
glgo#GNOME/gtk#4805 -- gtkimmulticontext: Handle switches between displays
+Patch1:         gtkimmulticontext-Handle-switches-between-displays.patch
+
 BuildRequires:  cups-devel >= 2.0
 # We do not support building against cups 2.3 betas
 BuildConflicts: (cups-devel > 2.3 with cups-devel < 2.3.0)

++++++ gtkimmulticontext-Handle-switches-between-displays.patch ++++++
From: Carlos Garnacho <carl...@gnome.org>
Date: Thu, 31 Mar 2022 16:29:34 +0200
Subject: gtkimmulticontext: Handle switches between displays
Git-repo: https://gitlab.gnome.org/GNOME/gtk
Git-commit: b67da38916b710ba6eedd65ffb569a29e47ddb4d
References: glgo#GNOME/gtk#4805
Upstream: merged

Currently the GtkIMMultiContext may stick to a delegate GtkIMContext
that no longer applies after the multicontext is dissociated from
any widget.

Handle set_client_widget() so that it can handle changes between
widgets from 2 different display, but also so the delegate is made
NULL whenever the context has a NULL widget.

Doing so, any new client widget results in a new delegate IM context
lookup from the right GdkDisplay and GtkSettings, which avoids any
mix up.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4805

Acked-by: Jeff Mahoney <je...@suse.com>
---
 gtk/gtkimmulticontext.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/gtk/gtkimmulticontext.c b/gtk/gtkimmulticontext.c
index 47347d299b..0a5ef9a5a6 100644
--- a/gtk/gtkimmulticontext.c
+++ b/gtk/gtkimmulticontext.c
@@ -314,6 +314,11 @@ gtk_im_multicontext_set_client_widget (GtkIMContext 
*context,
   GtkIMContext *delegate;
   GtkSettings *settings;
 
+  if (priv->client_widget == widget)
+    return;
+
+  gtk_im_multicontext_set_delegate (self, NULL, TRUE);
+
   if (priv->client_widget != NULL)
     {
       settings = gtk_widget_get_settings (priv->client_widget);
@@ -332,11 +337,11 @@ gtk_im_multicontext_set_client_widget (GtkIMContext 
*context,
       g_signal_connect (settings, "notify::gtk-im-module",
                         G_CALLBACK (im_module_setting_changed),
                         self);
-    }
 
-  delegate = gtk_im_multicontext_get_delegate (self);
-  if (delegate)
-    gtk_im_context_set_client_widget (delegate, widget);
+      delegate = gtk_im_multicontext_get_delegate (self);
+      if (delegate)
+        gtk_im_context_set_client_widget (delegate, widget);
+    }
 }
 
 static void

Reply via email to