From f8685e667b2e9457e747aba69a120f0ed4b23e38 Mon Sep 17 00:00:00 2001 From: Perberos Date: Thu, 1 Dec 2011 05:56:50 -0300 Subject: [PATCH] fix for murrine draw event flood This also fix https://bugs.launchpad.net/ubuntu/+source/gtk+2.0/+bug/889019 --- gdk/gdkwindow.c | 28 ++++++++++------------------ 1 files changed, 10 insertions(+), 18 deletions(-) diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 866b077..b820765 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -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); } } @@ -8138,7 +8130,7 @@ gdk_window_get_background_pattern (GdkWindow *window) cairo_pattern_create_rgb (private->bg_color.red / 65535., private->bg_color.green / 65535., private->bg_color.blue / 65535.); - } + } return private->background; } @@ -8341,7 +8333,7 @@ gdk_window_get_origin (GdkWindow *window, *y = 0; return 0; } - + private = (GdkWindowObject *) window; impl_iface = GDK_WINDOW_IMPL_GET_IFACE (private->impl); @@ -8390,7 +8382,7 @@ gdk_window_get_root_coords (GdkWindow *window, *root_y = y; return; } - + impl_iface = GDK_WINDOW_IMPL_GET_IFACE (private->impl); impl_iface->get_root_coords (window, x + private->abs_x, @@ -11226,7 +11218,7 @@ gdk_window_create_similar_surface (GdkWindow * window, cairo_surface_t *window_surface, *surface; g_return_val_if_fail (GDK_IS_WINDOW (window), NULL); - + window_surface = _gdk_drawable_ref_cairo_surface (window); surface = cairo_surface_create_similar (window_surface, -- 1.7.7.4