Accepting request 261008 from GNOME:Factory

1

OBS-URL: https://build.opensuse.org/request/show/261008
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gtk3?expand=0&rev=70
This commit is contained in:
Dominique Leuenberger 2014-11-13 08:16:58 +00:00 committed by Git OBS Bridge
commit d1d5f41052
3 changed files with 76 additions and 2 deletions

View File

@ -0,0 +1,58 @@
From d7bff60140225dff76befacf6eb2136c6723b794 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
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

View File

@ -1,8 +1,21 @@
-------------------------------------------------------------------
Sun Nov 09 04:21:00 UTC 2014 - Led <ledest@gmail.com>
- fix bashism in post script
-------------------------------------------------------------------
Mon Nov 3 16:50:56 UTC 2014 - badshah400@gmail.com
- Add gtk3-fix-screen-changes-csd.patch: fixes a problem with
screen changes and csd that caused some applications to launch
with ugly black borders (bgo#739812).
-------------------------------------------------------------------
Tue Oct 21 22:19:47 UTC 2014 - dimstar@opensuse.org
- Update to version 3.14.4:
+ Bugs fixed: bgo#730893, bgo#737986, bgo#738636, bgo#738873.
+ Bugs fixed: bgo#730893, bgo#737986, bgo#738636, bgo#738873,
boo#900854.
+ Updated translations.
-------------------------------------------------------------------

View File

@ -44,6 +44,8 @@ Patch1: gtk3-path-local.patch
Patch3: gtk3-bnc130159-bgo319483-async-font-selection.patch
# PATCH-FIX-UPSTREAM gtk3-find-wayland-includedir.patch bgo#696507 zaitor@opensuse.org -- Make configure find wayland include files.
Patch4: gtk3-find-wayland-includedir.patch
# PATCH-FIX-UPSTREAM gtk3-fix-screen-changes-csd.patch bgo#739812 badshah400@gmail.com -- Fix a problem with screen changes and csd that caused some applications to launch with ugly black borders
Patch5: gtk3-fix-screen-changes-csd.patch
BuildRequires: cups-devel >= 1.2
BuildRequires: docbook-xsl-stylesheets
BuildRequires: fdupes
@ -332,6 +334,7 @@ cp -a %{S:1} .
%if %{build_wayland_backend}
%patch4 -p1
%endif
%patch5 -p1
%build
# Needed for patch1 and patch4
@ -436,7 +439,7 @@ fi
# %{_libdir}/gtk-3.0/%{gtk_binary_version} already exists) which means
# gtk-query-immodules-3.0 couldn't run there.
%endif
if [ $1 == 1 ]; then
if [ $1 = 1 ]; then
test -d %{_libdir}/gtk-3.0/%{gtk_binary_version}
if test $? -eq 0; then
%{_gtk_query_immodules_update_cache}