[arch-commits] Commit in gtk2/trunk (2 files)

Ionut Biru ibiru at archlinux.org
Sun Jun 19 07:39:12 UTC 2011


    Date: Sunday, June 19, 2011 @ 03:39:12
  Author: ibiru
Revision: 127882

revert commit that causes 100% CPU usage and wxgtk apps not to resize. fixes FS#24760 FS#24784

Added:
  gtk2/trunk/gdk_Make_background_changes_queue_a_repaint.patch
Modified:
  gtk2/trunk/PKGBUILD

---------------------------------------------------+
 PKGBUILD                                          |    9 ++-
 gdk_Make_background_changes_queue_a_repaint.patch |   55 ++++++++++++++++++++
 2 files changed, 61 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2011-06-19 07:32:31 UTC (rev 127881)
+++ PKGBUILD	2011-06-19 07:39:12 UTC (rev 127882)
@@ -4,7 +4,7 @@
 pkgbase=gtk2
 pkgname=('gtk2' 'gtk-update-icon-cache')
 pkgver=2.24.5
-pkgrel=1
+pkgrel=2
 arch=('i686' 'x86_64')
 url="http://www.gtk.org/"
 makedepends=('atk' 'pango' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'krb5' 'gnutls'
@@ -12,13 +12,16 @@
 options=('!libtool' '!docs')
 license=('LGPL')
 source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-${pkgver}.tar.xz
-        xid-collision-debug.patch)
+        xid-collision-debug.patch
+        gdk_Make_background_changes_queue_a_repaint.patch)
 sha256sums=('d6b30889efbb9fab9aa598092d08887826a7b2a3069b3bd5155dede28d9866f3'
-            'd758bb93e59df15a4ea7732cf984d1c3c19dff67c94b957575efea132b8fe558')
+            'd758bb93e59df15a4ea7732cf984d1c3c19dff67c94b957575efea132b8fe558'
+            '3573af25e8db2fb490b264f80cb9e617ee1a36e767e36e7bb1d830c0b715db93')
 
 build() {
     cd "${srcdir}/gtk+-${pkgver}"
     patch -Np1 -i "${srcdir}/xid-collision-debug.patch"
+    patch -NRp1 -i "${srcdir}/gdk_Make_background_changes_queue_a_repaint.patch"
 
     CXX=/bin/false ./configure --prefix=/usr \
         --sysconfdir=/etc \

Added: gdk_Make_background_changes_queue_a_repaint.patch
===================================================================
--- gdk_Make_background_changes_queue_a_repaint.patch	                        (rev 0)
+++ gdk_Make_background_changes_queue_a_repaint.patch	2011-06-19 07:39:12 UTC (rev 127882)
@@ -0,0 +1,55 @@
+From 254b9a4c540e3dff1dcd17db2ceea6a9fa5df973 Mon Sep 17 00:00:00 2001
+From: Benjamin Otte <otte at redhat.com>
+Date: Thu, 09 Jun 2011 04:29:45 +0000
+Subject: gdk: Make background changes queue a repaint
+
+For client-side windows, we need to queue a repaint when the background
+changes. For native windows, the windowing system does take care of it,
+but client-side windows are our own, so we gotta do it manually.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=652102
+---
+diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
+index f058570..10d83ab 100644
+--- a/gdk/gdkwindow.c
++++ b/gdk/gdkwindow.c
+@@ -8004,11 +8004,15 @@ gdk_window_set_background (GdkWindow      *window,
+     }
+ 
+   if (!GDK_WINDOW_DESTROYED (window) &&
+-      gdk_window_has_impl (private) &&
+       !private->input_only)
+     {
+-      impl_iface = GDK_WINDOW_IMPL_GET_IFACE (private->impl);
+-      impl_iface->set_background (window, &private->bg_color);
++      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);
+     }
+ }
+ 
+@@ -8077,11 +8081,15 @@ 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)
+     {
+-      impl_iface = GDK_WINDOW_IMPL_GET_IFACE (private->impl);
+-      impl_iface->set_back_pixmap (window, private->bg_pixmap);
++      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);
+     }
+ }
+ 
+--
+cgit v0.9




More information about the arch-commits mailing list