[Xfce4-commits] <xfwm4:ochosi/tabwin> Change tabwin focused buttons state from GTK_STATE_NORMAL to GTK_STATE_SELECTED
Simon Steinbeiss
noreply at xfce.org
Tue Dec 10 01:00:01 CET 2013
Updating branch refs/heads/ochosi/tabwin
to 69af4410a6a07f5237ef7af8b1f6fb5d144a8a51 (commit)
from 847306de342e94866670663795722760124aad26 (commit)
commit 69af4410a6a07f5237ef7af8b1f6fb5d144a8a51
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