summaryrefslogtreecommitdiff
path: root/gtk/gtktrayicon-x11.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2010-08-28 20:24:28 +0200
committerBenjamin Otte <otte@redhat.com>2010-09-26 15:11:32 +0200
commitc64946c52d170b49c0a8ddb7500a8eb2dd3feb41 (patch)
treec186ae05f74b460db1cbeb2d5ef3c93abe30047f /gtk/gtktrayicon-x11.c
parentd7ede44daeb3d2c63668c2bfc395d919cb059ffe (diff)
downloadgtk+-c64946c52d170b49c0a8ddb7500a8eb2dd3feb41.tar.gz
trayicon: Use XClearArea
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.
Diffstat (limited to 'gtk/gtktrayicon-x11.c')
-rw-r--r--gtk/gtktrayicon-x11.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gtk/gtktrayicon-x11.c b/gtk/gtktrayicon-x11.c
index cc770fad6c..ecee4adba9 100644
--- a/gtk/gtktrayicon-x11.c
+++ b/gtk/gtktrayicon-x11.c
@@ -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)