Browse Source

Update the focus in case we changed focus to a child window and then away from the application

In this case we'll get WM_KILLFOCUS when the child window is focused, but we'll retain focus on the top level window, but when we Alt-Tab away, we won't get another WM_KILLFOCUS or WM_NCACTIVATE, we get WM_ACTIVATE instead, so we need to check for focus updates in response to that as well.
Sam Lantinga 3 years ago
parent
commit
2248a54937
1 changed files with 3 additions and 1 deletions
  1. 3 1
      src/video/windows/SDL_windowsevents.c

+ 3 - 1
src/video/windows/SDL_windowsevents.c

@@ -685,13 +685,15 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 
     case WM_ACTIVATE:
         {
+            /* Update the focus in case we changed focus to a child window and then away from the application */
+            WIN_UpdateFocus(data->window);
         }
         break;
 
     case WM_SETFOCUS:
     case WM_KILLFOCUS:
         {
-            /* Update the focus in case it's changing between windows in the same application */
+            /* Update the focus in case it's changing between top-level windows in the same application */
             WIN_UpdateFocus(data->window);
         }
         break;