mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-19 06:15:26 +00:00
Put the default focus on the dive list at startup
This is some crazy stuff. Apparently the only sane way to do this is by hooking into the "realize" callback for the dive list widget. Whatever. Dirk did the googling to figure this all out. Suggested-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
68b666f50a
commit
4c113ee016
1 changed files with 10 additions and 0 deletions
10
divelist.c
10
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);
|
||||
|
|
Loading…
Add table
Reference in a new issue