changeset 2808:1d43d9582f36

Tooltip for path entry The current path entry can be partially obscured if the vertical divider is pushed too far to the left. This commit shows the current path as the tooltip.
author Colin Clark <colin.clark@cclark.uk>
date Thu, 02 Aug 2018 20:15:36 +0100
parents 7fa597d9c65b
children 7ec04fb5211c
files src/layout.c
diffstat 1 files changed, 20 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/layout.c	Thu Aug 02 14:28:17 2018 +0100
+++ b/src/layout.c	Thu Aug 02 20:15:36 2018 +0100
@@ -287,6 +287,24 @@
 	gtk_widget_set_sensitive(lw->back_button, (n > 1));
 }
 
+static gboolean path_entry_tooltip_cb(GtkWidget *widget, gpointer data)
+{
+	LayoutWindow *lw = data;
+	GList *box_child_list;
+	GtkComboBox *path_entry;
+	gchar *current_path;
+
+	box_child_list = gtk_container_get_children(GTK_CONTAINER(widget));
+	path_entry = box_child_list->data;
+	current_path = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(path_entry));
+	gtk_widget_set_tooltip_text(GTK_WIDGET(widget), current_path);
+
+	g_free(current_path);
+	g_list_free(box_child_list);
+
+	return FALSE;
+}
+
 static GtkWidget *layout_tool_setup(LayoutWindow *lw)
 {
 	GtkWidget *box;
@@ -311,6 +329,8 @@
 	tab_completion_add_append_func(lw->path_entry, layout_path_entry_tab_append_cb, lw);
 	gtk_box_pack_start(GTK_BOX(box), tabcomp, FALSE, FALSE, 0);
 	gtk_widget_show(tabcomp);
+	gtk_widget_set_has_tooltip(GTK_WIDGET(tabcomp), TRUE);
+	g_signal_connect(G_OBJECT(tabcomp), "query_tooltip", G_CALLBACK(path_entry_tooltip_cb), lw);
 
 #if GTK_CHECK_VERSION(3,20,0)
 	g_signal_connect(G_OBJECT(gtk_widget_get_parent(gtk_widget_get_parent(lw->path_entry))), "changed",