diff options
-rw-r--r-- | gtk/src/callbacks.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c index bcf5c26fc..0fd92a9e6 100644 --- a/gtk/src/callbacks.c +++ b/gtk/src/callbacks.c @@ -971,6 +971,15 @@ do_source_dialog(GtkButton *button, gboolean single, signal_user_data_t *ud) gtk_widget_hide(widget); dialog = GHB_WIDGET(ud->builder, "source_dialog"); source_dialog_extra_widgets(ud, dialog); + + // Gtk has a really stupid bug. If the file chooser is showing + // hidden files AND there is no filter set, it will not select + // the filename when gtk_file_chooser_set_filename is called. + // So add a completely unnessary filter to prevent this behavior. + GtkFileFilter *filter; + filter = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filter, "*"); + gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(dialog), filter); gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), sourcename); response = gtk_dialog_run(GTK_DIALOG (dialog)); gtk_widget_hide(dialog); |