+2009-01-15 Alejandro G. Castro <alex@igalia.com>
+
+ * src/hildon-pannable-area.c,
+ (hildon_pannable_area_initial_effect): Added controls before
+ launching the timeout and the idle functions.
+ (hildon_pannable_area_scroll_indicator_fade): Reviewed the logic
+ of the method, in some situations it can return with TRUE and 0 in
+ the timeout.
+ (hildon_pannable_area_button_press_cb): We do not need to set
+ DELAY for fading out here.
+
+ Fixes: NB#95709 (Invalid casts in HildonPannableArea(?))
+
2009-01-14 Claudio Saavedra <csaavedra@igalia.com>
* src/hildon-picker-dialog.c: (_clean_current_selection): Only perform
}
if (vscroll_visible || hscroll_visible) {
- priv->idle_id = gdk_threads_add_timeout ((gint) (1000.0 / (gdouble) priv->sps),
- (GSourceFunc)
- hildon_pannable_area_timeout, widget);
+ if (!priv->idle_id)
+ priv->idle_id = gdk_threads_add_timeout ((gint) (1000.0 / (gdouble) priv->sps),
+ (GSourceFunc)
+ hildon_pannable_area_timeout, widget);
}
}
if (priv->vscroll_visible || priv->hscroll_visible) {
priv->scroll_indicator_alpha = 1.0;
- priv->scroll_indicator_timeout =
- gdk_threads_add_timeout ((gint) (1000.0 / (gdouble) SCROLL_FADE_TIMEOUT),
- (GSourceFunc) hildon_pannable_area_scroll_indicator_fade,
- widget);
+ if (!priv->scroll_indicator_timeout)
+ priv->scroll_indicator_timeout =
+ gdk_threads_add_timeout ((gint) (1000.0 / (gdouble) SCROLL_FADE_TIMEOUT),
+ (GSourceFunc) hildon_pannable_area_scroll_indicator_fade,
+ widget);
}
}
}
static gboolean
hildon_pannable_area_scroll_indicator_fade(HildonPannableArea * area)
{
- gint retval = TRUE;
HildonPannableAreaPrivate *priv = area->priv;
/* if moving do not fade out */
if (priv->scroll_indicator_event_interrupt) {
/* Stop a fade out, and fade back in */
- if (priv->scroll_indicator_alpha >= 0.9) {
- priv->scroll_indicator_timeout = 0;
+ if (priv->scroll_indicator_alpha > 0.9) {
priv->scroll_indicator_alpha = 1.0;
- retval = FALSE;
+ priv->scroll_indicator_timeout = 0;
+
+ return FALSE;
} else {
priv->scroll_indicator_alpha += 0.2;
- }
+ hildon_pannable_area_redraw (area);
- hildon_pannable_area_redraw (area);
+ return TRUE;
+ }
}
if ((priv->scroll_indicator_alpha > 0.9) &&
if (!priv->scroll_indicator_event_interrupt) {
/* Continue fade out */
- if (priv->scroll_indicator_alpha <= 0.1) {
+ if (priv->scroll_indicator_alpha < 0.1) {
priv->scroll_indicator_timeout = 0;
- priv->scroll_delay_counter = SCROLLBAR_FADE_DELAY;
priv->scroll_indicator_alpha = 0.0;
- retval = FALSE;
+
+ return FALSE;
} else {
priv->scroll_indicator_alpha -= 0.2;
- }
+ hildon_pannable_area_redraw (area);
- hildon_pannable_area_redraw (area);
+ return TRUE;
+ }
}
- return retval;
+ return TRUE;
}
static gboolean
return TRUE;
priv->scroll_indicator_event_interrupt = 1;
- priv->scroll_delay_counter = SCROLLBAR_FADE_DELAY;
if (!priv->scroll_indicator_timeout){
priv->scroll_indicator_timeout = gdk_threads_add_timeout