[Xfce4-commits] <xfwm4:master> Change tabwin focused buttons state from GTK_STATE_NORMAL to GTK_STATE_SELECTED
Nick Schermer
noreply at xfce.org
Sun Feb 23 21:10:28 CET 2014
Updating branch refs/heads/master
to 8f9411380894cd7ccd4025ff528d8a8e19161bd5 (commit)
from 4053aaeee1c1dd7a4c15aec966beb32e06394c7d (commit)
commit 8f9411380894cd7ccd4025ff528d8a8e19161bd5
Author: Cédric Leporcq <cedl38 at gmail.com>
Date: Thu Dec 5 00:42:03 2013 +0100
Change tabwin focused buttons state from GTK_STATE_NORMAL to GTK_STATE_SELECTED
Signed-off-by: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
src/tabwin.c | 33 +++++++++++++++++++++++++++++----
1 file changed, 29 insertions(+), 4 deletions(-)
diff --git a/src/tabwin.c b/src/tabwin.c
index 08d2f05..4572f06 100644
--- a/src/tabwin.c
+++ b/src/tabwin.c
@@ -175,11 +175,22 @@ tabwin_expose (GtkWidget *tbw, GdkEventExpose *event, gpointer data)
}
static gboolean
-paint_selected (GtkWidget *w, GdkEventExpose *event, gpointer data)
+paint_selected (GtkWidget *w, GdkEventExpose *event, gpointer user_data)
{
+ TabwinWidget *tbw = user_data;
+
g_return_val_if_fail (GTK_IS_WIDGET(w), FALSE);
TRACE ("entering paint_selected");
+ if (w == tbw->tabwin->hovered)
+ {
+ gtk_widget_set_state (w, GTK_STATE_ACTIVE);
+ }
+ else
+ {
+ gtk_widget_set_state (w, GTK_STATE_SELECTED);
+ }
+
gtk_button_set_relief (GTK_BUTTON (w), GTK_RELIEF_NORMAL);
return FALSE;
@@ -254,7 +265,7 @@ tabwinSetSelected (TabwinWidget *tbw, GtkWidget *w, GtkWidget *l)
tbw->selected_callback = g_signal_connect (G_OBJECT (tbw->selected),
"expose-event",
G_CALLBACK (paint_selected),
- NULL);
+ tbw);
c = g_object_get_data (G_OBJECT (tbw->selected), "client-ptr-val");
@@ -358,6 +369,11 @@ cb_window_button_enter (GtkWidget *widget, GdkEvent *event, gpointer user_data)
* select it */
if (c != NULL)
{
+ if (gtk_widget_is_focus (widget))
+ {
+ gtk_widget_set_state (widget, GTK_STATE_ACTIVE);
+ }
+
/* we don't update the labels on mouse over for this mode */
if (c->screen_info->params->cycle_tabwin_mode == OVERFLOW_COLUMN_GRID)
{
@@ -385,14 +401,15 @@ cb_window_button_leave (GtkWidget *widget, GdkEvent *event, gpointer user_data)
g_return_val_if_fail (tbw != NULL, FALSE);
+ tbw->tabwin->hovered = NULL;
+
/* don't do anything if we have the focus */
if (gtk_widget_is_focus (widget))
{
+ gtk_widget_set_state (widget, GTK_STATE_SELECTED);
return FALSE;
}
- tbw->tabwin->hovered = NULL;
-
c = g_object_get_data (G_OBJECT (widget), "client-ptr-val");
/* when hovering over a window icon, display it's label but don't
@@ -708,6 +725,14 @@ tabwinChange2Selected (Tabwin *t, GList *selected)
tabwinSetSelected (tbw, window_button, buttonlabel);
gtk_widget_queue_draw (GTK_WIDGET(tbw));
}
+ else if (window_button == t->hovered)
+ {
+ gtk_widget_set_state (window_button, GTK_STATE_PRELIGHT);
+ }
+ else
+ {
+ gtk_widget_set_state (window_button, GTK_STATE_NORMAL);
+ }
}
}
}
More information about the Xfce4-commits
mailing list