[gtk+] GtkSwitch: Implement hover for GtkSwitch
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] GtkSwitch: Implement hover for GtkSwitch
- Date: Sun, 22 Jun 2014 01:37:07 +0000 (UTC)
commit 1c57abb02b7b1c235b0b8f3c241246447b7b196c
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Jun 21 21:34:50 2014 -0400
GtkSwitch: Implement hover for GtkSwitch
This makes switches more similar to other activatable widgets
like buttons or scales.
gtk/gtkswitch.c | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkswitch.c b/gtk/gtkswitch.c
index 0d04698..4e5c421 100644
--- a/gtk/gtkswitch.c
+++ b/gtk/gtkswitch.c
@@ -245,7 +245,10 @@ gtk_switch_enter (GtkWidget *widget,
GtkSwitchPrivate *priv = GTK_SWITCH (widget)->priv;
if (event->window == priv->event_window)
- priv->in_switch = TRUE;
+ {
+ priv->in_switch = TRUE;
+ gtk_widget_queue_draw (widget);
+ }
return FALSE;
}
@@ -257,7 +260,10 @@ gtk_switch_leave (GtkWidget *widget,
GtkSwitchPrivate *priv = GTK_SWITCH (widget)->priv;
if (event->window == priv->event_window)
- priv->in_switch = FALSE;
+ {
+ priv->in_switch = FALSE;
+ gtk_widget_queue_draw (widget);
+ }
return FALSE;
}
@@ -464,9 +470,14 @@ gtk_switch_paint_handle (GtkWidget *widget,
cairo_t *cr,
GdkRectangle *box)
{
+ GtkSwitchPrivate *priv = GTK_SWITCH (widget)->priv;
GtkStyleContext *context = gtk_widget_get_style_context (widget);
+ GtkStateFlags state = gtk_widget_get_state_flags (widget);
gtk_style_context_save (context);
+ if (priv->in_switch)
+ state |= GTK_STATE_FLAG_PRELIGHT;
+ gtk_style_context_set_state (context, state);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_SLIDER);
gtk_render_slider (context, cr,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]