From: Claudio Saavedra Date: Thu, 25 Jun 2009 14:49:43 +0000 (+0300) Subject: Cache the HildonPannableArea panning indicator color X-Git-Tag: 2.1.86-1~4 X-Git-Url: http://git.maemo.org/git/?p=hildon;a=commitdiff_plain;h=47de2971f36db26f249d75ccfe772d230248223d Cache the HildonPannableArea panning indicator color * hildon/hildon-pannable-area.c: (hildon_pannable_area_init): Cache the panning indicator color., (hildon_pannable_area_style_set): Query the color on style changes. (hildon_pannable_draw_vscroll), (hildon_pannable_draw_hscroll), (hildon_pannable_area_expose_event): Use the cached panning indicator color instead of looking it up on every expose and more. --- diff --git a/ChangeLog b/ChangeLog index 67e16e0..3a9b8ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2009-06-25 Claudio Saavedra + * hildon/hildon-pannable-area.c: (hildon_pannable_area_init): + Cache the panning indicator color., + (hildon_pannable_area_style_set): Query the color on style changes. + (hildon_pannable_draw_vscroll), + (hildon_pannable_draw_hscroll), + (hildon_pannable_area_expose_event): Use the cached panning indicator + color instead of looking it up on every expose and more. + +2009-06-25 Claudio Saavedra + * hildon/hildon-pannable-area.c: (hildon_pannable_draw_vscroll), (hildon_pannable_draw_hscroll), (hildon_pannable_area_expose_event): Fix the panning indicator color, diff --git a/hildon/hildon-pannable-area.c b/hildon/hildon-pannable-area.c index bc99106..21c1402 100644 --- a/hildon/hildon-pannable-area.c +++ b/hildon/hildon-pannable-area.c @@ -141,6 +141,7 @@ struct _HildonPannableAreaPrivate { GtkPolicyType hscrollbar_policy; GdkGC *scrollbars_gc; + GdkColor scroll_color; }; /*signals*/ @@ -718,6 +719,9 @@ hildon_pannable_area_init (HildonPannableArea * area) priv->x_offset = 0; priv->y_offset = 0; + gtk_style_lookup_color (GTK_WIDGET (area)->style, + "SecondaryTextColor", &priv->scroll_color); + priv->hadjust = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); priv->vadjust = @@ -1241,6 +1245,7 @@ hildon_pannable_area_style_set (GtkWidget * widget, GTK_WIDGET_CLASS (hildon_pannable_area_parent_class)-> style_set (widget, previous_style); + gtk_style_lookup_color (widget->style, "SecondaryTextColor", &priv->scroll_color); gtk_widget_style_get (widget, "indicator-width", &priv->indicator_width, NULL); } @@ -1486,7 +1491,7 @@ hildon_pannable_draw_vscroll (GtkWidget *widget, height); if (priv->scroll_indicator_alpha == 1.0) { - gtk_style_lookup_color (widget->style, "SecondaryTextColor", &transp_color); + transp_color = priv->scroll_color; } else if (priv->scroll_indicator_alpha < 1.0) { tranparency_color (&transp_color, *back_color, *scroll_color, priv->scroll_indicator_alpha); @@ -1532,7 +1537,7 @@ hildon_pannable_draw_hscroll (GtkWidget *widget, width); if (priv->scroll_indicator_alpha == 1.0) { - gtk_style_lookup_color (widget->style, "SecondaryTextColor", &transp_color); + transp_color = priv->scroll_color; } else if (priv->scroll_indicator_alpha < 1.0) { tranparency_color (&transp_color, *back_color, *scroll_color, priv->scroll_indicator_alpha); @@ -1693,8 +1698,7 @@ hildon_pannable_area_expose_event (GtkWidget * widget, GdkColor scroll_color = widget->style->base[GTK_STATE_SELECTED]; #else /* USE_CAIRO_SCROLLBARS */ GdkColor back_color = widget->style->bg[GTK_STATE_NORMAL]; - GdkColor scroll_color; - gtk_style_lookup_color (widget->style, "SecondaryTextColor", &scroll_color); + GdkColor scroll_color = priv->scroll_color; #endif if (G_UNLIKELY (priv->initial_effect)) {