diff options
| author | Po Lu | 2021-11-13 15:38:12 +0800 |
|---|---|---|
| committer | Po Lu | 2021-11-13 15:38:12 +0800 |
| commit | dafebe37ebe08d581506864e96058807d1aec56b (patch) | |
| tree | 4e40cd2d8f1089a9c88e8da0243af2ed00d1f19e /src | |
| parent | b4c6ab8cb67be4d5b3e0041981968c6cce4afe89 (diff) | |
| download | emacs-dafebe37ebe08d581506864e96058807d1aec56b.tar.gz emacs-dafebe37ebe08d581506864e96058807d1aec56b.zip | |
Use GTK native file choosers in xwidget callback
* src/xwidget.c (run_file_chooser_cb): Use GtkFileChooserNative
instead.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xwidget.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/xwidget.c b/src/xwidget.c index e5a5d9008d5..ca0392a44d6 100644 --- a/src/xwidget.c +++ b/src/xwidget.c | |||
| @@ -791,7 +791,7 @@ run_file_chooser_cb (WebKitWebView *webview, | |||
| 791 | gpointer user_data) | 791 | gpointer user_data) |
| 792 | { | 792 | { |
| 793 | struct frame *f = SELECTED_FRAME (); | 793 | struct frame *f = SELECTED_FRAME (); |
| 794 | GtkWidget *chooser; | 794 | GtkFileChooserNative *chooser; |
| 795 | GtkFileFilter *filter; | 795 | GtkFileFilter *filter; |
| 796 | bool select_multiple_p; | 796 | bool select_multiple_p; |
| 797 | guint response; | 797 | guint response; |
| @@ -806,25 +806,21 @@ run_file_chooser_cb (WebKitWebView *webview, | |||
| 806 | if (!FRAME_WINDOW_P (f)) | 806 | if (!FRAME_WINDOW_P (f)) |
| 807 | return TRUE; | 807 | return TRUE; |
| 808 | 808 | ||
| 809 | chooser = gtk_file_chooser_dialog_new ("Select file", | 809 | chooser = gtk_file_chooser_native_new ("Select file", |
| 810 | GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), | 810 | GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), |
| 811 | GTK_FILE_CHOOSER_ACTION_OPEN, | 811 | GTK_FILE_CHOOSER_ACTION_OPEN, "Select", |
| 812 | "Cancel", | 812 | "Cancel"); |
| 813 | GTK_RESPONSE_CANCEL, | ||
| 814 | "Select", | ||
| 815 | GTK_RESPONSE_ACCEPT, | ||
| 816 | NULL); | ||
| 817 | filter = webkit_file_chooser_request_get_mime_types_filter (request); | 813 | filter = webkit_file_chooser_request_get_mime_types_filter (request); |
| 818 | select_multiple_p = webkit_file_chooser_request_get_select_multiple (request); | 814 | select_multiple_p = webkit_file_chooser_request_get_select_multiple (request); |
| 819 | 815 | ||
| 820 | gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (chooser), | 816 | gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (chooser), |
| 821 | select_multiple_p); | 817 | select_multiple_p); |
| 822 | gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); | 818 | gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); |
| 823 | response = gtk_dialog_run (GTK_DIALOG (chooser)); | 819 | response = gtk_native_dialog_run (GTK_NATIVE_DIALOG (chooser)); |
| 824 | 820 | ||
| 825 | if (response == GTK_RESPONSE_CANCEL) | 821 | if (response != GTK_RESPONSE_ACCEPT) |
| 826 | { | 822 | { |
| 827 | gtk_widget_destroy (chooser); | 823 | gtk_native_dialog_destroy (GTK_NATIVE_DIALOG (chooser)); |
| 828 | webkit_file_chooser_request_cancel (request); | 824 | webkit_file_chooser_request_cancel (request); |
| 829 | 825 | ||
| 830 | return TRUE; | 826 | return TRUE; |
| @@ -844,7 +840,7 @@ run_file_chooser_cb (WebKitWebView *webview, | |||
| 844 | for (i = 0; i < len; ++i) | 840 | for (i = 0; i < len; ++i) |
| 845 | g_free (files[i]); | 841 | g_free (files[i]); |
| 846 | 842 | ||
| 847 | gtk_widget_destroy (chooser); | 843 | gtk_native_dialog_destroy (GTK_NATIVE_DIALOG (chooser)); |
| 848 | 844 | ||
| 849 | return TRUE; | 845 | return TRUE; |
| 850 | } | 846 | } |