From 47de2971f36db26f249d75ccfe772d230248223d Mon Sep 17 00:00:00 2001 From: Claudio Saavedra Date: Thu, 25 Jun 2009 17:49:43 +0300 Subject: [PATCH] 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. --- ChangeLog | 10 ++++++++++ hildon/hildon-pannable-area.c | 12 ++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) 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)) { -- 1.7.9.5