]> Pileus Git - ~andy/gtk/commitdiff
trayicon: Use XClearArea
authorBenjamin Otte <otte@redhat.com>
Sat, 28 Aug 2010 18:24:28 +0000 (20:24 +0200)
committerBenjamin Otte <otte@redhat.com>
Sun, 26 Sep 2010 13:11:32 +0000 (15:11 +0200)
gdk_window_clear_area() isn't smart enough to clear to a parent pixmap
that is part of a window that GDK doesn't manage.

gtk/gtktrayicon-x11.c

index cc770fad6c34cf99fea53e4e74ac2112ffffe777..ecee4adba96d12f9a423a9df1b544d6ed1b05b06 100644 (file)
@@ -331,9 +331,14 @@ gtk_tray_icon_expose (GtkWidget      *widget,
     }
   else
     {
-      /* Clear to parent-relative pixmap */
-      gdk_window_clear_area (window, event->area.x, event->area.y,
-                            event->area.width, event->area.height);
+      /* Clear to parent-relative pixmap
+       * We need to use direct X access here because GDK doesn't know about
+       * the parent realtive pixmap. */
+      XClearArea (GDK_WINDOW_XDISPLAY (window),
+                  GDK_WINDOW_XID (window),
+                  event->area.x, event->area.y,
+                 event->area.width, event->area.height,
+                  False);
     }
 
   if (GTK_WIDGET_CLASS (gtk_tray_icon_parent_class)->expose_event)