summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--divelist.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/divelist.c b/divelist.c
index c00da0bcc..97a5674bf 100644
--- a/divelist.c
+++ b/divelist.c
@@ -451,6 +451,15 @@ static GtkTreeViewColumn *divelist_column(struct DiveList *dl, int index, const
return col;
}
+/*
+ * This is some crazy crap. The only way to get default focus seems
+ * to be to grab focus as the widget is being shown the first time.
+ */
+static void realize_cb(GtkWidget *tree_view, gpointer userdata)
+{
+ gtk_widget_grab_focus(tree_view);
+}
+
GtkWidget *dive_list_create(void)
{
GtkTreeSelection *selection;
@@ -490,6 +499,7 @@ GtkWidget *dive_list_create(void)
"rules-hint", TRUE,
NULL);
+ g_signal_connect_after(dive_list.tree_view, "realize", G_CALLBACK(realize_cb), NULL);
g_signal_connect(selection, "changed", G_CALLBACK(selection_cb), dive_list.model);
dive_list.container_widget = gtk_scrolled_window_new(NULL, NULL);