@b4n commented on this pull request.
> gboolean ro = (response == GEANY_RESPONSE_VIEW); /* View
> clicked */
- filesel_state.open.more_options_visible =
gtk_expander_get_expanded(GTK_EXPANDER(expander));
- filesel_state.open.filter_idx =
file_chooser_get_filter_idx(GTK_FILE_CHOOSER(dialog));
- filesel_state.open.filetype_idx =
filetype_combo_box_get_active_filetype(GTK_COMBO_BOX(filetype_combo));
+ if (!GTK_IS_NATIVE_DIALOG(dialog))
+ {
+ GtkWidget *expander =
ui_lookup_widget(GTK_WIDGET(dialog), "more_options_expander");
+ GtkWidget *filetype_combo =
ui_lookup_widget(GTK_WIDGET(dialog), "filetype_combo");
+ GtkWidget *encoding_combo =
ui_lookup_widget(GTK_WIDGET(dialog), "encoding_combo");
+
+ filesel_state.open.more_options_visible =
gtk_expander_get_expanded(GTK_EXPANDER(expander));
+ filesel_state.open.filter_idx =
file_chooser_get_filter_idx(GTK_FILE_CHOOSER(dialog));
Can't we keep the active filter with the native dialogs? This seem to at least
work with GTK portal implementation:
```diff
diff --git a/src/dialogs.c b/src/dialogs.c
index 2919f325b..150e28846 100644
--- a/src/dialogs.c
+++ b/src/dialogs.c
@@ -140,10 +140,10 @@ static gboolean
open_file_dialog_handle_response(GtkFileChooser *dialog, gint re
GtkWidget *encoding_combo =
ui_lookup_widget(GTK_WIDGET(dialog), "encoding_combo");
filesel_state.open.more_options_visible =
gtk_expander_get_expanded(GTK_EXPANDER(expander));
- filesel_state.open.filter_idx =
file_chooser_get_filter_idx(GTK_FILE_CHOOSER(dialog));
filesel_state.open.filetype_idx =
filetype_combo_box_get_active_filetype(GTK_COMBO_BOX(filetype_combo));
filesel_state.open.encoding_idx =
ui_encodings_combo_box_get_active_encoding(GTK_COMBO_BOX(encoding_combo));
}
+ filesel_state.open.filter_idx =
file_chooser_get_filter_idx(dialog);
/* ignore detect from file item */
if (filesel_state.open.filetype_idx >= 0)
@@ -429,29 +429,34 @@ static GtkFileChooser *create_open_file_dialog(void)
}
-static void open_file_dialog_apply_settings(GtkWidget *dialog)
+static void open_file_dialog_apply_settings(GtkFileChooser *dialog)
{
static gboolean initialized = FALSE;
- GtkWidget *check_hidden = ui_lookup_widget(dialog, "check_hidden");
- GtkWidget *filetype_combo = ui_lookup_widget(dialog, "filetype_combo");
- GtkWidget *encoding_combo = ui_lookup_widget(dialog, "encoding_combo");
- GtkWidget *expander = ui_lookup_widget(dialog, "more_options_expander");
/* we can't know the initial position of combo boxes, so retrieve it
the first time */
if (! initialized)
{
- filesel_state.open.filter_idx =
file_chooser_get_filter_idx(GTK_FILE_CHOOSER(dialog));
+ filesel_state.open.filter_idx =
file_chooser_get_filter_idx(dialog);
initialized = TRUE;
}
else
{
- file_chooser_set_filter_idx(GTK_FILE_CHOOSER(dialog),
filesel_state.open.filter_idx);
+ file_chooser_set_filter_idx(dialog,
filesel_state.open.filter_idx);
+ }
+
+ if (!GTK_IS_NATIVE_DIALOG(dialog))
+ {
+ GtkWidget *check_hidden = ui_lookup_widget(GTK_WIDGET(dialog),
"check_hidden");
+ GtkWidget *filetype_combo =
ui_lookup_widget(GTK_WIDGET(dialog), "filetype_combo");
+ GtkWidget *encoding_combo =
ui_lookup_widget(GTK_WIDGET(dialog), "encoding_combo");
+ GtkWidget *expander = ui_lookup_widget(GTK_WIDGET(dialog),
"more_options_expander");
+
+ gtk_expander_set_expanded(GTK_EXPANDER(expander),
filesel_state.open.more_options_visible);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_hidden),
filesel_state.open.show_hidden);
+
ui_encodings_combo_box_set_active_encoding(GTK_COMBO_BOX(encoding_combo),
filesel_state.open.encoding_idx);
+
filetype_combo_box_set_active_filetype(GTK_COMBO_BOX(filetype_combo),
filesel_state.open.filetype_idx);
}
- gtk_expander_set_expanded(GTK_EXPANDER(expander),
filesel_state.open.more_options_visible);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_hidden),
filesel_state.open.show_hidden);
-
ui_encodings_combo_box_set_active_encoding(GTK_COMBO_BOX(encoding_combo),
filesel_state.open.encoding_idx);
- filetype_combo_box_set_active_filetype(GTK_COMBO_BOX(filetype_combo),
filesel_state.open.filetype_idx);
}
@@ -490,8 +495,7 @@ void dialogs_show_open_file(void)
SETPTR(initdir, utils_get_locale_from_utf8(initdir));
dialog = create_open_file_dialog();
- if (!GTK_IS_NATIVE_DIALOG(dialog))
- open_file_dialog_apply_settings(GTK_WIDGET(dialog));
+ open_file_dialog_apply_settings(dialog);
if (initdir != NULL && g_path_is_absolute(initdir))
gtk_file_chooser_set_current_folder(dialog, initdir);
```
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3861#pullrequestreview-2106361330
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/pull/3861/review/[email protected]>