Hello community,
here is the log from the commit of package gtk3 for openSUSE:Factory checked in at 2014-11-13 09:16:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gtk3 (Old)
and /work/SRC/openSUSE:Factory/.gtk3.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gtk3"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gtk3/gtk3.changes 2014-10-29 21:09:03.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gtk3.new/gtk3.changes 2014-11-13 09:17:16.000000000 +0100
@@ -1,0 +2,12 @@
+Sun Nov 09 04:21:00 UTC 2014 - Led
From d7bff60140225dff76befacf6eb2136c6723b794 Mon Sep 17 00:00:00 2001 From: Matthias Clasen
Date: Fri, 24 Oct 2014 13:30:19 -0400 Subject: Fix a problem with screen changes and csd
When a new screen is set on a window, we unrealize it, to recreate all the resources. But we don't reset the client_decorated flag, so realize() doesn't call create_decoration() - which makes sense, since the decoration already exists. But the side-effect of create_decoration() is to select the rgba visual, and visuals are per-screen. Fix this by looking for the rgba visual in set_screen(), and replacing it with the rgba visual for the new screen, if necessary. diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 367d88c..e846c41 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -10272,6 +10272,7 @@ gtk_window_set_screen (GtkWindow *window, GtkWindowPrivate *priv; GtkWidget *widget; GdkScreen *previous_screen; + gboolean was_rgba; gboolean was_mapped; g_return_if_fail (GTK_IS_WINDOW (window)); @@ -10285,6 +10286,12 @@ gtk_window_set_screen (GtkWindow *window, widget = GTK_WIDGET (window); previous_screen = priv->screen; + + if (gdk_screen_get_rgba_visual (previous_screen) == gtk_widget_get_visual (widget)) + was_rgba = TRUE; + else + was_rgba = FALSE; + was_mapped = gtk_widget_get_mapped (widget); if (was_mapped) @@ -10318,6 +10325,15 @@ gtk_window_set_screen (GtkWindow *window, } g_object_notify (G_OBJECT (window), "screen"); + if (was_rgba) + { + GdkVisual *visual; + + visual = gdk_screen_get_rgba_visual (screen); + if (visual) + gtk_widget_set_visual (widget, visual); + } + if (was_mapped) gtk_widget_map (widget); -- cgit v0.10.1 -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org