[gtk+] Fix clearing of window background for some transparent notification icons
- From: Alexander Larsson <alexl src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtk+] Fix clearing of window background for some transparent notification icons
- Date: Tue, 11 Aug 2009 13:49:38 +0000 (UTC)
commit fa214590662ae57ec0011e25ec0c6fafb65b165d
Author: Alexander Larsson <alexl redhat com>
Date: Tue Aug 11 15:41:23 2009 +0200
Fix clearing of window background for some transparent notification icons
This extends the usage of the native clear region call such that its
called also for windows that have parent relative background all the
way up to a native window. That way we get true background relative
background clearing even to a foreign parent, which means that some
transparent notification icons look right again.
gdk/gdkwindow.c | 20 +++++++++++++++++++-
1 files changed, 19 insertions(+), 1 deletions(-)
---
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 2b773c2..0b8b84b 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -4126,6 +4126,24 @@ gdk_window_clear (GdkWindow *window)
width, height);
}
+static gboolean
+clears_on_native (GdkWindowObject *private)
+{
+ GdkWindowObject *next;
+
+ next = private;
+ do
+ {
+ private = next;
+ if (gdk_window_has_impl (private))
+ return TRUE;
+ next = private->parent;
+ }
+ while (private->bg_pixmap == GDK_PARENT_RELATIVE_BG &&
+ next && next->window_type != GDK_WINDOW_ROOT);
+ return FALSE;
+}
+
static void
gdk_window_clear_region_internal (GdkWindow *window,
GdkRegion *region,
@@ -4141,7 +4159,7 @@ gdk_window_clear_region_internal (GdkWindow *window,
gdk_window_clear_backing_region_redirect (window, region);
if (GDK_WINDOW_IMPL_GET_IFACE (private->impl)->clear_region &&
- gdk_window_has_impl (private))
+ clears_on_native (private))
{
GdkRegion *copy;
copy = gdk_region_copy (region);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]