[Xfce4-commits] <xfce4-panel:master> Don't double expose the panel's child widget (bug #6872).

Nick Schermer noreply at xfce.org
Sun Jan 23 22:30:01 CET 2011


Updating branch refs/heads/master
         to 23fa1aee1651f36c435c4867f09a718948d5c8fe (commit)
       from f3063104180157e7dd029faeccb513ba34c737a4 (commit)

commit 23fa1aee1651f36c435c4867f09a718948d5c8fe
Author: Nick Schermer <nick at xfce.org>
Date:   Sun Jan 23 22:26:29 2011 +0100

    Don't double expose the panel's child widget (bug #6872).
    
    We chain the expose event to GtkWindow wich on his turn exposes
    the container child in GtkContainer. Because we draw (alpha background
    and background color) on the window, the child needs to be exposed after
    this, so drop the first expose event and only expose the child
    in PanelWindow.

 panel/panel-base-window.c |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/panel/panel-base-window.c b/panel/panel-base-window.c
index 1da04a2..6c7434f 100644
--- a/panel/panel-base-window.c
+++ b/panel/panel-base-window.c
@@ -446,19 +446,16 @@ panel_base_window_expose_event (GtkWidget      *widget,
   gdouble                 height = widget->allocation.height;
   const gdouble           dashes[] = { 4.00, 4.00 };
   GTimeVal                timeval;
-  gboolean                result;
   GdkPixbuf              *pixbuf;
   GError                 *error = NULL;
   cairo_matrix_t          matrix = { 1, 0, 0, 1, 0, 0 }; /* identity matrix */
 
-  result = (*GTK_WIDGET_CLASS (panel_base_window_parent_class)->expose_event) (widget, event);
-
   if (!GTK_WIDGET_DRAWABLE (widget))
-    return result;
+    return FALSE;
 
   /* create cairo context and set some default properties */
   cr = gdk_cairo_create (widget->window);
-  panel_return_val_if_fail (cr != NULL, result);
+  panel_return_val_if_fail (cr != NULL, FALSE);
   cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
   cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
   cairo_set_line_width (cr, 1.00);
@@ -599,7 +596,7 @@ panel_base_window_expose_event (GtkWidget      *widget,
 
   cairo_destroy (cr);
 
-  return result;
+  return FALSE;
 }
 
 



More information about the Xfce4-commits mailing list