summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdk/win32/gdkevents-win32.c5
-rw-r--r--gdk/win32/gdksurface-win32.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c
index 24c300f932..8652f8c5f3 100644
--- a/gdk/win32/gdkevents-win32.c
+++ b/gdk/win32/gdkevents-win32.c
@@ -2901,7 +2901,10 @@ gdk_event_translate (MSG *msg,
if (impl->transient_owner &&
GetForegroundWindow () == GDK_SURFACE_HWND (window))
- SetForegroundWindow (GDK_SURFACE_HWND (impl->transient_owner));
+ {
+ SetForegroundWindow (GDK_SURFACE_HWND (impl->transient_owner));
+ SetCapture (GDK_SURFACE_HWND (impl->transient_owner));
+ }
}
if (!(windowpos->flags & SWP_NOCLIENTSIZE))
diff --git a/gdk/win32/gdksurface-win32.c b/gdk/win32/gdksurface-win32.c
index 9ecbb6dbad..076e18aac1 100644
--- a/gdk/win32/gdksurface-win32.c
+++ b/gdk/win32/gdksurface-win32.c
@@ -4828,7 +4828,10 @@ gdk_win32_toplevel_set_property (GObject *object,
GDK_SURFACE (surface)->modal_hint = g_value_get_boolean (value);
if (GDK_SURFACE (surface)->modal_hint)
- _gdk_push_modal_window (surface);
+ {
+ SetCapture (GDK_SURFACE_HWND (surface));
+ _gdk_push_modal_window (surface);
+ }
g_object_notify_by_pspec (G_OBJECT (surface), pspec);
break;