From b2ac124b58228370a6fc167f01de7270fae0fbbc8a0f31518641f0169ed48d9a Mon Sep 17 00:00:00 2001 From: Vincent Untz Date: Wed, 30 Sep 2009 08:56:34 +0000 Subject: [PATCH] Accepting request 21393 from home:vuntz:branches:GNOME:Factory Copy from home:vuntz:branches:GNOME:Factory/gtk2 via accept of submit request 21393 revision 28. OBS-URL: https://build.opensuse.org/request/show/21393 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gtk2?expand=0&rev=73 --- gtk2-expose-foreign.patch | 46 +++++++++++++++++++++++++++++++++++++++ gtk2.changes | 6 +++++ gtk2.spec | 3 +++ 3 files changed, 55 insertions(+) create mode 100644 gtk2-expose-foreign.patch diff --git a/gtk2-expose-foreign.patch b/gtk2-expose-foreign.patch new file mode 100644 index 0000000..c2e845d --- /dev/null +++ b/gtk2-expose-foreign.patch @@ -0,0 +1,46 @@ +commit afc19eb4a7e4ec4420dc202e0da0fe2c4d1ca7c2 +Author: Alexander Larsson +Date: Thu Sep 24 16:42:52 2009 +0200 + + Send expose events on foreign windows + + F-Spot needs this as it draws on a foreign (screensaver) window, which + used to work. + + I believe this is safe, because in all typical cases the expose + mask will not be set, so we won't do anything, and its what we used to + do. + +diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c +index 500bf65..3231dea 100644 +--- a/gdk/gdkwindow.c ++++ b/gdk/gdkwindow.c +@@ -5023,12 +5023,17 @@ _gdk_window_process_updates_recurse (GdkWindow *window, + + g_object_unref (window); + } +- else if (private->bg_pixmap != GDK_NO_BG) ++ else if (private->bg_pixmap != GDK_NO_BG && ++ private->window_type != GDK_WINDOW_FOREIGN) + { + /* No exposure mask set, so nothing will be drawn, the + * app relies on the background being what it specified + * for the window. So, we need to clear this manually. + * ++ * For foreign windows if expose is not set that generally ++ * means some other client paints them, so don't clear ++ * there. ++ * + * We use begin/end_paint around the clear so that we can + * piggyback on the implicit paint */ + +@@ -5066,8 +5071,7 @@ gdk_window_process_updates_internal (GdkWindow *window) + GdkRegion *update_area = private->update_area; + private->update_area = NULL; + +- if (_gdk_event_func && gdk_window_is_viewable (window) && +- private->window_type != GDK_WINDOW_FOREIGN) ++ if (_gdk_event_func && gdk_window_is_viewable (window)) + { + GdkRegion *expose_region; + gboolean end_implicit; diff --git a/gtk2.changes b/gtk2.changes index 7b28a67..43a7d45 100644 --- a/gtk2.changes +++ b/gtk2.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Sep 30 10:27:09 CEST 2009 - vuntz@opensuse.org + +- Add gtk2-expose-foreign.patch: patch from upstream to fix an + issue with f-spot. + ------------------------------------------------------------------- Thu Sep 24 15:27:24 CEST 2009 - dimstar@opensuse.org diff --git a/gtk2.spec b/gtk2.spec index d3abc4f..638cc5f 100644 --- a/gtk2.spec +++ b/gtk2.spec @@ -57,6 +57,8 @@ Patch22: bugzilla-129753-gtk+-2.8.9-localize-font-style-name.diff Patch23: bugzilla-131498-allow-xim-for-all-languages.patch # PATCH-FIX-UPSTREAM gtk2-bnc130159-bgo319483-async-selection-in-gtk-font-selection.diff bnc130159 bgo319483 federico@novell.com - Load fonts asynchronously in GtkFontSelection to make it appear faster for CJK languages Patch24: gtk2-bnc130159-bgo319483-async-selection-in-gtk-font-selection.diff +# PATCH-FIX-UPSTREAM gtk2-expose-foreign.patch vuntz@novell.com -- Taken from git, Send expose events on foreign windows +Patch25: gtk2-expose-foreign.patch # Patches taken from upstream or slated to go upstream. We can expect these to become obsolete # in future releases. # Please don't delete this comment even if this section is empty -- "# empty" should @@ -160,6 +162,7 @@ cp -a %{S:2} . %patch22 -p1 %patch23 -p1 %patch24 -p1 +%patch25 -p1 %patch53 # gnome-patch-translation-update