Updating branch refs/heads/ochosi/tabwin to 69af4410a6a07f5237ef7af8b1f6fb5d144a8a51 (commit) from 847306de342e94866670663795722760124aad26 (commit)
commit 69af4410a6a07f5237ef7af8b1f6fb5d144a8a51 Author: Cédric Leporcq <ced...@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.steinbe...@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); + } } } } _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits