diff options
author | Chun-wei Fan <fanchunwei@src.gnome.org> | 2020-09-08 16:09:46 +0800 |
---|---|---|
committer | Chun-wei Fan <fanchunwei@src.gnome.org> | 2020-09-15 15:53:34 +0800 |
commit | 02aec7f5f40810401b7dc0ddb069585b7d707d9d (patch) | |
tree | da70a6659790e7dfa462c0db79927a2602edc42f /gdk/win32 | |
parent | c766e31e8f680723837d6a500fdf6e82bc969a2b (diff) | |
download | gtk+-02aec7f5f40810401b7dc0ddb069585b7d707d9d.tar.gz |
gdkevents-win32.c: Clean up WM_ACTIVATE handling a bit
We can group some things together, to make things a little bit more clear
Diffstat (limited to 'gdk/win32')
-rw-r--r-- | gdk/win32/gdkevents-win32.c | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 244b0adde6..39546390a2 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -3276,34 +3276,38 @@ gdk_event_translate (MSG *msg, break; } - if (LOWORD (msg->wParam) == WA_INACTIVE && msg->lParam != 0) + if (LOWORD (msg->wParam) == WA_INACTIVE) { - GdkSurface *other_surface = gdk_win32_handle_table_lookup ((HWND) msg->lParam); - if (other_surface != NULL && - (GDK_IS_POPUP (other_surface) || GDK_IS_DRAG_SURFACE (other_surface))) + if (msg->lParam != 0) { - /* We're being deactivated in favour of some popup or temp window. - * Since only toplevels can have visual focus, pretend that - * nothing happened. - */ - *ret_valp = 0; - return_val = TRUE; - break; + GdkSurface *other_surface = gdk_win32_handle_table_lookup ((HWND) msg->lParam); + if (other_surface != NULL && + (GDK_IS_POPUP (other_surface) || GDK_IS_DRAG_SURFACE (other_surface))) + { + /* We're being deactivated in favour of some popup or temp window. + * Since only toplevels can have visual focus, pretend that + * nothing happened. + */ + *ret_valp = 0; + return_val = TRUE; + break; + } } - } - if (LOWORD (msg->wParam) == WA_INACTIVE) - gdk_synthesize_surface_state (window, GDK_TOPLEVEL_STATE_FOCUSED, 0); + gdk_synthesize_surface_state (window, GDK_TOPLEVEL_STATE_FOCUSED, 0); + } else - gdk_synthesize_surface_state (window, 0, GDK_TOPLEVEL_STATE_FOCUSED); + { + gdk_synthesize_surface_state (window, 0, GDK_TOPLEVEL_STATE_FOCUSED); + + /* Bring any tablet contexts to the top of the overlap order when + * one of our windows is activated. + * NOTE: It doesn't seem to work well if it is done in WM_ACTIVATEAPP + * instead + */ + _gdk_input_set_tablet_active (); + } - /* Bring any tablet contexts to the top of the overlap order when - * one of our windows is activated. - * NOTE: It doesn't seem to work well if it is done in WM_ACTIVATEAPP - * instead - */ - if (LOWORD(msg->wParam) != WA_INACTIVE) - _gdk_input_set_tablet_active (); break; case WM_ACTIVATEAPP: |