mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Prevent the preferences dialog from getting focus with file selector open
The idea is based on Lubomir's code but the implementation is radically different. Instead of having the preferences dialog be referenced by a global variable we simply look up the appropriate ancestor of the current widget. Inspired-by: "Lubomir I. Ivanov" <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
c74f58786d
commit
3d4be85f35
1 changed files with 5 additions and 1 deletions
|
@ -493,7 +493,7 @@ static void event_toggle(GtkWidget *w, gpointer _data)
|
|||
|
||||
static void pick_default_file(GtkWidget *w, GtkButton *button)
|
||||
{
|
||||
GtkWidget *fs_dialog;
|
||||
GtkWidget *fs_dialog, *preferences;
|
||||
const char *current_default;
|
||||
char *current_def_file, *current_def_dir;
|
||||
GtkFileFilter *filter;
|
||||
|
@ -505,6 +505,9 @@ static void pick_default_file(GtkWidget *w, GtkButton *button)
|
|||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
|
||||
NULL);
|
||||
preferences = gtk_widget_get_ancestor(w, GTK_TYPE_DIALOG);
|
||||
gtk_window_set_accept_focus(GTK_WINDOW(preferences), FALSE);
|
||||
|
||||
current_default = subsurface_default_filename();
|
||||
current_def_dir = path_and_file(current_default, ¤t_def_file);
|
||||
|
||||
|
@ -537,6 +540,7 @@ static void pick_default_file(GtkWidget *w, GtkButton *button)
|
|||
free(current_def_dir);
|
||||
free(current_def_file);
|
||||
gtk_widget_destroy(fs_dialog);
|
||||
gtk_window_set_accept_focus(GTK_WINDOW(preferences), TRUE);
|
||||
}
|
||||
|
||||
static void preferences_dialog(GtkWidget *w, gpointer data)
|
||||
|
|
Loading…
Add table
Reference in a new issue