From 18c9c511fd49468ace9ef0551efb9d6b3e808be0 Mon Sep 17 00:00:00 2001 From: ajacoutot Date: Mon, 27 Jun 2011 07:04:40 +0000 Subject: [PATCH] Revert upstream commit 254b9a4c540e3dff1dcd17db2ceea6a9fa5df973 to fix an infinite loop as experienced by Alexander Polakov. See https://bugzilla.gnome.org/show_bug.cgi?id=652872. --- x11/gtk+2/Makefile | 4 ++- x11/gtk+2/patches/patch-gdk_gdkwindow_c | 48 +++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 x11/gtk+2/patches/patch-gdk_gdkwindow_c diff --git a/x11/gtk+2/Makefile b/x11/gtk+2/Makefile index 43f58004528..ecd579862f2 100644 --- a/x11/gtk+2/Makefile +++ b/x11/gtk+2/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.133 2011/06/16 08:38:41 ajacoutot Exp $ +# $OpenBSD: Makefile,v 1.134 2011/06/27 07:04:40 ajacoutot Exp $ SHARED_ONLY= Yes @@ -13,6 +13,8 @@ PKGNAME-main= gtk+2-${V} PKGNAME-docs= gtk+2-docs-${V} PKGNAME-cups= gtk+2-cups-${V} +REVISION-main= 0 + CATEGORIES= x11 devel SHARED_LIBS += gdk-x11-2.0 2400.0 # 2400.0 diff --git a/x11/gtk+2/patches/patch-gdk_gdkwindow_c b/x11/gtk+2/patches/patch-gdk_gdkwindow_c new file mode 100644 index 00000000000..214f7f5d7c2 --- /dev/null +++ b/x11/gtk+2/patches/patch-gdk_gdkwindow_c @@ -0,0 +1,48 @@ +$OpenBSD: patch-gdk_gdkwindow_c,v 1.1 2011/06/27 07:04:40 ajacoutot Exp $ + +Revert (https://bugzilla.gnome.org/show_bug.cgi?id=652872): +From 254b9a4c540e3dff1dcd17db2ceea6a9fa5df973 Mon Sep 17 00:00:00 2001 +From: Benjamin Otte +Date: Thu, 09 Jun 2011 04:29:45 +0000 +Subject: gdk: Make background changes queue a repaint + +--- gdk/gdkwindow.c.orig Thu Jun 16 00:37:19 2011 ++++ gdk/gdkwindow.c Mon Jun 27 08:39:46 2011 +@@ -8004,15 +8004,11 @@ gdk_window_set_background (GdkWindow *window, + } + + if (!GDK_WINDOW_DESTROYED (window) && ++ gdk_window_has_impl (private) && + !private->input_only) + { +- if (gdk_window_has_impl (private)) +- { +- impl_iface = GDK_WINDOW_IMPL_GET_IFACE (private->impl); +- impl_iface->set_background (window, &private->bg_color); +- } +- else +- gdk_window_invalidate_rect_full (window, NULL, TRUE, CLEAR_BG_ALL); ++ impl_iface = GDK_WINDOW_IMPL_GET_IFACE (private->impl); ++ impl_iface->set_background (window, &private->bg_color); + } + } + +@@ -8081,15 +8077,11 @@ gdk_window_set_back_pixmap (GdkWindow *window, + private->bg_pixmap = GDK_NO_BG; + + if (!GDK_WINDOW_DESTROYED (window) && ++ gdk_window_has_impl (private) && + !private->input_only) + { +- if (gdk_window_has_impl (private)) +- { +- impl_iface = GDK_WINDOW_IMPL_GET_IFACE (private->impl); +- impl_iface->set_back_pixmap (window, private->bg_pixmap); +- } +- else +- gdk_window_invalidate_rect_full (window, NULL, TRUE, CLEAR_BG_ALL); ++ impl_iface = GDK_WINDOW_IMPL_GET_IFACE (private->impl); ++ impl_iface->set_back_pixmap (window, private->bg_pixmap); + } + } +