[Xfce4-commits] <xfce4-panel:master> Fix crash with panels without background color.

Nick Schermer noreply at xfce.org
Sun Jun 13 21:26:05 CEST 2010


Updating branch refs/heads/master
         to 339a1e30c038c06cadd457b142622878c9a2ce3f (commit)
       from 0ea9a2db5bf11a50b08db6f1857272e52caf973a (commit)

commit 339a1e30c038c06cadd457b142622878c9a2ce3f
Author: Nick Schermer <nick at xfce.org>
Date:   Sun Jun 13 21:10:29 2010 +0200

    Fix crash with panels without background color.

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

diff --git a/panel/panel-base-window.c b/panel/panel-base-window.c
index 5087415..7c42872 100644
--- a/panel/panel-base-window.c
+++ b/panel/panel-base-window.c
@@ -227,6 +227,7 @@ panel_base_window_get_property (GObject    *object,
 {
   PanelBaseWindow        *window = PANEL_BASE_WINDOW (object);
   PanelBaseWindowPrivate *priv = window->priv;
+  GdkColor               *color;
 
   switch (prop_id)
     {
@@ -247,7 +248,11 @@ panel_base_window_get_property (GObject    *object,
       break;
 
     case PROP_BACKGROUND_COLOR:
-      g_value_set_boxed (value, window->background_color);
+      if (window->background_color != NULL)
+        color = window->background_color;
+      else
+        color = &(GTK_WIDGET (window)->style->bg[GTK_STATE_NORMAL]);
+      g_value_set_boxed (value, color);
       break;
 
     case PROP_BACKGROUND_IMAGE:
@@ -512,7 +517,8 @@ panel_base_window_expose_event (GtkWidget      *widget,
   else
     {
       /* get the background color */
-      if (window->background_style == PANEL_BG_STYLE_COLOR)
+      if (window->background_style == PANEL_BG_STYLE_COLOR
+          && window->background_color != NULL)
         color = window->background_color;
       else
         color = &(widget->style->bg[GTK_STATE_NORMAL]);
@@ -880,6 +886,7 @@ panel_util_set_source_rgba (cairo_t        *cr,
                             gdouble         alpha)
 {
   panel_return_if_fail (alpha >= 0.00 && alpha <= 1.00);
+  panel_return_if_fail (color != NULL);
 
   if (G_LIKELY (alpha == 1.00))
     cairo_set_source_rgb (cr, color->red / 65535.00,



More information about the Xfce4-commits mailing list