From: Viktor Odintsev Date: Sat, 17 Jun 2017 02:18:59 +0300 Subject: [PATCH] Display tooltip for indicators --- a/panel-plugin/indicator-button.c 2017-06-17 01:48:51.610975000 +0300 +++ b/panel-plugin/indicator-button.c 2017-06-17 02:17:43.354262459 +0300 @@ -51,6 +51,12 @@ GdkEventScroll *event); static void xfce_indicator_button_menu_deactivate (XfceIndicatorButton *button, GtkMenu *menu); +static gboolean xfce_indicator_button_query_tooltip (GtkWidget *widget, + gint x, + gint y, + gboolean keyboard_mode, + GtkTooltip *tooltip, + gpointer user_data); struct _XfceIndicatorButton @@ -276,6 +282,10 @@ gtk_container_add (GTK_CONTAINER (button->align_box), button->box); gtk_widget_show (button->box); + g_object_set (G_OBJECT (button), "has-tooltip", TRUE, NULL); + g_signal_connect (button, "query-tooltip", + G_CALLBACK (xfce_indicator_button_query_tooltip), NULL); + return GTK_WIDGET (button); } @@ -362,3 +372,24 @@ } gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), FALSE); } + + +static gboolean +xfce_indicator_button_query_tooltip (GtkWidget *widget, + gint x, + gint y, + gboolean keyboard_mode, + GtkTooltip *tooltip, + gpointer user_data) +{ + XfceIndicatorButton *button = XFCE_INDICATOR_BUTTON (widget); + + if (button->entry && button->entry->accessible_desc) + { + gtk_tooltip_set_text (tooltip, button->entry->accessible_desc); + + return TRUE; + } + + return FALSE; +}