event-controller: Improve rendering/themeability of the UI notification for the long-press controller

Signed-off-by: Carlos Garnacho <carlos@lanedo.com>
Acked-by: Simon Schampijer <simon@laptop.org>
This commit is contained in:
Carlos Garnacho 2012-09-13 14:27:20 +02:00 committed by Simon Schampijer
parent 73c0688689
commit 64a759e2dc

View File

@ -189,20 +189,27 @@ _sugar_long_press_anim_draw (GtkWidget *widget,
SugarLongPressController *controller) SugarLongPressController *controller)
{ {
SugarLongPressControllerPriv *priv = controller->_priv; SugarLongPressControllerPriv *priv = controller->_priv;
GtkStyleContext *context;
gdouble progress; gdouble progress;
gint64 diff_msec; gint64 diff_msec;
GdkRGBA color;
diff_msec = (g_get_monotonic_time () - priv->start_time) / 1000; diff_msec = (g_get_monotonic_time () - priv->start_time) / 1000;
progress = (gdouble) diff_msec / priv->timeout; progress = (gdouble) diff_msec / priv->delay;
context = gtk_widget_get_style_context (widget);
gtk_style_context_save (context);
cairo_save (cr); cairo_save (cr);
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
cairo_set_source_rgba (cr, 0, 0, 0, 0);
cairo_paint (cr);
cairo_restore (cr);
gtk_style_context_add_class (context, "long-press-notification");
gtk_style_context_get_color (context, GTK_STATE_FLAG_NORMAL, &color);
gdk_cairo_set_source_rgba (cr, &color);
_stroke_progress_notification (cr, progress); _stroke_progress_notification (cr, progress);
gtk_style_context_restore (context);
cairo_restore (cr);
return TRUE; return TRUE;
} }
@ -277,6 +284,7 @@ _sugar_long_press_anim_timeout (gpointer user_data)
else else
_sugar_long_press_controller_update_shape (priv->anim_window, _sugar_long_press_controller_update_shape (priv->anim_window,
controller); controller);
g_signal_connect (priv->anim_window, "draw", g_signal_connect (priv->anim_window, "draw",
G_CALLBACK (_sugar_long_press_anim_draw), G_CALLBACK (_sugar_long_press_anim_draw),
controller); controller);