From 7565b2a1ec81541806e81bda4ea25748bf21de1b Mon Sep 17 00:00:00 2001 From: Claudio Saavedra Date: Thu, 3 Sep 2009 23:08:20 +0300 Subject: [PATCH] Use G_PRIORITY_IDLE_HIGH + 20 for all the pannable area timeouts * hildon/hildon-pannable-area.c: (hildon_pannable_area_launch_fade_timeout), (hildon_pannable_area_motion_event_scroll), (hildon_pannable_area_check_move), (hildon_pannable_area_button_release_cb), (hildon_pannable_area_scroll_to): Use a priority of G_PRIORITY_IDLE_HIGH + 20 for all the pannable area drawing operations, since this is the recommended for drawing operations. Fixes: NB#110894 (In event view containing very large description field, application menu is displayed blank while panning) Fixes: NB#131942 (HildonPickerDialog is seen empty when popping up for the first time) --- ChangeLog | 18 ++++++++++++++++++ hildon/hildon-pannable-area.c | 38 ++++++++++++++++++++++---------------- 2 files changed, 40 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index b3b347e..2baf555 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2009-09-03 Claudio Saavedra + + * hildon/hildon-pannable-area.c: + (hildon_pannable_area_launch_fade_timeout), + (hildon_pannable_area_motion_event_scroll), + (hildon_pannable_area_check_move), + (hildon_pannable_area_button_release_cb), + (hildon_pannable_area_scroll_to): + + Use a priority of G_PRIORITY_IDLE_HIGH + 20 for all the pannable + area drawing operations, since this is the recommended for drawing + operations. + + Fixes: NB#110894 (In event view containing very large description + field, application menu is displayed blank while panning) + Fixes: NB#131942 (HildonPickerDialog is seen empty when popping up + for the first time) + 2009-09-03 Alberto Garcia * doc/hildon-sections.txt diff --git a/hildon/hildon-pannable-area.c b/hildon/hildon-pannable-area.c index 4e277b1..48135aa 100644 --- a/hildon/hildon-pannable-area.c +++ b/hildon/hildon-pannable-area.c @@ -1616,9 +1616,11 @@ hildon_pannable_area_launch_fade_timeout (HildonPannableArea * area, if (!priv->scroll_indicator_timeout) priv->scroll_indicator_timeout = - gdk_threads_add_timeout (SCROLL_FADE_TIMEOUT, - (GSourceFunc) hildon_pannable_area_scroll_indicator_fade, - area); + gdk_threads_add_timeout_full (G_PRIORITY_HIGH_IDLE + 20, + SCROLL_FADE_TIMEOUT, + (GSourceFunc) hildon_pannable_area_scroll_indicator_fade, + area, + NULL); } static void @@ -2406,9 +2408,10 @@ hildon_pannable_area_motion_event_scroll (HildonPannableArea *area, priv->motion_x = 0; priv->motion_y = 0; - priv->motion_event_scroll_timeout = gdk_threads_add_timeout - ((gint) (1000.0 / (gdouble) MOTION_EVENTS_PER_SECOND), - (GSourceFunc) hildon_pannable_area_motion_event_scroll_timeout, area); + priv->motion_event_scroll_timeout = gdk_threads_add_timeout_full + (G_PRIORITY_HIGH_IDLE + 20, + (gint) (1000.0 / (gdouble) MOTION_EVENTS_PER_SECOND), + (GSourceFunc) hildon_pannable_area_motion_event_scroll_timeout, area, NULL); } } @@ -2513,10 +2516,11 @@ hildon_pannable_area_check_move (HildonPannableArea *area, (priv->mode != HILDON_PANNABLE_AREA_MODE_AUTO)) { if (!priv->idle_id) - priv->idle_id = gdk_threads_add_timeout ((gint) - (1000.0 / (gdouble) priv->sps), - (GSourceFunc) - hildon_pannable_area_timeout, area); + priv->idle_id = gdk_threads_add_timeout_full + (G_PRIORITY_HIGH_IDLE + 20, + (gint)(1000.0 / (gdouble) priv->sps), + (GSourceFunc) + hildon_pannable_area_timeout, area, NULL); } } } @@ -2764,9 +2768,10 @@ hildon_pannable_area_button_release_cb (GtkWidget * widget, priv->vel_y = (priv->vel_y > 0) ? priv->vmax : -priv->vmax; if (!priv->idle_id) - priv->idle_id = gdk_threads_add_timeout ((gint) (1000.0 / (gdouble) priv->sps), - (GSourceFunc) - hildon_pannable_area_timeout, widget); + priv->idle_id = gdk_threads_add_timeout_full (G_PRIORITY_HIGH_IDLE + 20, + (gint) (1000.0 / (gdouble) priv->sps), + (GSourceFunc) hildon_pannable_area_timeout, + widget, NULL); } else { if (priv->center_on_child_focus_pending) { hildon_pannable_area_center_on_child_focus (area); @@ -3217,9 +3222,10 @@ hildon_pannable_area_scroll_to (HildonPannableArea *area, hildon_pannable_area_launch_fade_timeout (area, 1.0); if (!priv->idle_id) - priv->idle_id = gdk_threads_add_timeout ((gint) (1000.0 / (gdouble) priv->sps), - (GSourceFunc) - hildon_pannable_area_timeout, area); + priv->idle_id = gdk_threads_add_timeout_full (G_PRIORITY_HIGH_IDLE + 20, + (gint) (1000.0 / (gdouble) priv->sps), + (GSourceFunc) hildon_pannable_area_timeout, + area, NULL); } /** -- 1.7.9.5