mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-15 23:00:08 +00:00
gdk/Win32: Fix mouse pointer capture
Call SetCapture() explcitly for the (new) modal window so that we make the modal window respond to mouse input, and also call SetCapture() to the parent of the transient window that we are destroying so that mouse input capture is returned to the parent window. This attempts to fix the following: * Upon creating a new modal window, the new modal window does not receive pointer input unless one switches to another program and back * Upon closing a transient window, the parent window that activated the transient window does not receive pointer input unless one switches to another and back
This commit is contained in:
parent
6a0c181886
commit
2cc650ced2
@ -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))
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user