+2008-08-26 Alejandro G. Castro <alex@igalia.com>
+
+ Added management for the grab-focus to a child widget, like a
+ range, we need to fade out the scrollbar when releasing.
+
+ * src/hildon-pannable-area.c,
+ (hildon_pannable_area_init): Connected the grab-focus signal to
+ the callback.
+ (hildon_pannable_area_grab_notify): Added this function in order
+ to manage the situation when the grab-focus ends. We have to
+ fade-out the scrollbar.
+
2008-08-25 Alberto Garcia <agarcia@igalia.com>
* src/hildon-app-menu.c: Minor documentation update.
GtkStyle * previous_style);
static void hildon_pannable_area_map (GtkWidget * widget);
static void hildon_pannable_area_unmap (GtkWidget * widget);
+static void hildon_pannable_area_grab_notify (GtkWidget *widget,
+ gboolean was_grabbed,
+ gpointer user_data);
static void rgb_from_gdkcolor (GdkColor *color, gdouble *r, gdouble *g, gdouble *b);
static void hildon_pannable_draw_vscroll (GtkWidget * widget,
GdkColor *back_color,
G_CALLBACK (hildon_pannable_area_redraw), area);
g_signal_connect_swapped (G_OBJECT (priv->vadjust), "value-changed",
G_CALLBACK (hildon_pannable_area_redraw), area);
+ g_signal_connect (G_OBJECT (area), "grab-notify",
+ G_CALLBACK (hildon_pannable_area_grab_notify), NULL);
}
static void
}
static void
+hildon_pannable_area_grab_notify (GtkWidget *widget,
+ gboolean was_grabbed,
+ gpointer user_data)
+{
+ /* an internal widget has grabbed the focus and now has returned it,
+ we have to do some release actions */
+ if (was_grabbed) {
+ HildonPannableAreaPrivate *priv = PANNABLE_AREA_PRIVATE (widget);
+
+ priv->scroll_indicator_event_interrupt = 0;
+ priv->scroll_delay_counter = SCROLLBAR_FADE_DELAY;
+
+ if (!priv->scroll_indicator_timeout) {
+ priv->scroll_indicator_timeout = g_timeout_add
+ ((gint) (1000.0 / (gdouble) priv->sps),
+ (GSourceFunc) hildon_pannable_area_scroll_indicator_fade, widget);
+ }
+
+ priv->last_type = 3;
+ priv->moved = FALSE;
+ }
+}
+
+static void
rgb_from_gdkcolor (GdkColor *color, gdouble *r, gdouble *g, gdouble *b)
{
*r = (color->red >> 8) / 255.0;