diff options
| author | Luca Bacci <luca.bacci982@gmail.com> | 2022-01-04 13:59:08 +0000 |
|---|---|---|
| committer | Luca Bacci <luca.bacci982@gmail.com> | 2022-01-04 13:59:08 +0000 |
| commit | 063e6baa0a255d8eb0548405199de592a9a566d8 (patch) | |
| tree | 630f47d7031daa02fe1b97d19ddab613264eff8c | |
| parent | fa9b634d8f932e4677096425868bd295d1d0b54d (diff) | |
| parent | c138aaabf376d8a995a8275e2219f22b9580c48c (diff) | |
| download | gtk+-063e6baa0a255d8eb0548405199de592a9a566d8.tar.gz | |
Merge branch 'gtk-grab-file-chooser-native-win32' into 'main'
GTK grab for GtkFileChooserNativeWin32
Closes #4582
See merge request GNOME/gtk!4329
| -rw-r--r-- | gtk/gtkfilechoosernativewin32.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gtk/gtkfilechoosernativewin32.c b/gtk/gtkfilechoosernativewin32.c index 505e0b07f0..bd08939e86 100644 --- a/gtk/gtkfilechoosernativewin32.c +++ b/gtk/gtkfilechoosernativewin32.c @@ -41,6 +41,7 @@ #include "gtktogglebutton.h" #include "gtkheaderbar.h" #include "gtklabel.h" +#include "gtkmain.h" #include "gtkfilefilterprivate.h" #include "gtknative.h" @@ -50,6 +51,9 @@ typedef struct { GtkFileChooserNative *self; + + GtkWidget *grab_widget; + IFileDialogEvents *events; HWND parent; @@ -318,6 +322,12 @@ filechooser_win32_thread_data_free (FilechooserWin32ThreadData *data) if (data->events) IFileDialogEvents_Release (data->events); + if (data->grab_widget) + { + gtk_grab_remove (data->grab_widget); + g_object_unref (data->grab_widget); + } + g_clear_object (&data->current_folder); g_clear_object (&data->current_file); g_free (data->current_name); @@ -969,6 +979,12 @@ gtk_file_chooser_native_win32_show (GtkFileChooserNative *self) return FALSE; } + if (data->modal) + { + data->grab_widget = g_object_ref_sink (gtk_label_new ("")); + gtk_grab_add (GTK_WIDGET (data->grab_widget)); + } + return TRUE; } |
