[gtk/win32.modal] GDK/Win32: Fix modal window handling
- From: Chun-wei Fan <fanchunwei src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/win32.modal] GDK/Win32: Fix modal window handling
- Date: Tue, 6 Oct 2020 07:39:58 +0000 (UTC)
commit 2c0c0257dbfe1a3854a1e6746bda28d703acb7c3
Author: Chun-wei Fan <fanchunwei src gnome org>
Date: Tue Oct 6 15:06:47 2020 +0800
GDK/Win32: Fix modal window handling
Make sure that we get the state of the modal window properly, and send out the
corresponding notification signals.
This will ensure that we do not try to activate windows that should have become
inactivated due to it opening modal windows and render the program unresponsive
because we are not activating the correct window that is due to receive user
input.
gdk/win32/gdksurface-win32.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
---
diff --git a/gdk/win32/gdksurface-win32.c b/gdk/win32/gdksurface-win32.c
index 69b71baf13..ade62481a0 100644
--- a/gdk/win32/gdksurface-win32.c
+++ b/gdk/win32/gdksurface-win32.c
@@ -4822,7 +4822,12 @@ gdk_win32_toplevel_set_property (GObject *object,
break;
case LAST_PROP + GDK_TOPLEVEL_PROP_MODAL:
- _gdk_push_modal_window (surface);
+ GDK_SURFACE (surface)->modal_hint = g_value_get_boolean (value);
+
+ if (GDK_SURFACE (surface)->modal_hint)
+ _gdk_push_modal_window (surface);
+
+ g_object_notify_by_pspec (G_OBJECT (surface), pspec);
break;
case LAST_PROP + GDK_TOPLEVEL_PROP_ICON_LIST:
@@ -4876,6 +4881,7 @@ gdk_win32_toplevel_get_property (GObject *object,
break;
case LAST_PROP + GDK_TOPLEVEL_PROP_MODAL:
+ g_value_set_boolean (value, GDK_SURFACE (surface)->modal_hint);
break;
case LAST_PROP + GDK_TOPLEVEL_PROP_ICON_LIST:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]