From 86eaf0f90577cec8f56f29eaca41d75468f56ffb Mon Sep 17 00:00:00 2001
From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>
Date: Thu, 12 Dec 2024 16:09:06 +0100
Subject: [PATCH] Fix: Window can be moved while menu is open - cont'd (#1166)

---
 src/Fl_win32.cxx | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx
index 509f76767..e7539737f 100644
--- a/src/Fl_win32.cxx
+++ b/src/Fl_win32.cxx
@@ -1398,11 +1398,6 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar
         break;
 
       case WM_SETFOCUS:
-        if (Fl::grab() && (Fl::grab() != window) && Fl::grab()->menu_window()) {
-          // simulate click at remote location (see issue #1166)
-          mouse_event(Fl::grab(), 0, 1, MK_LBUTTON, MAKELPARAM(100000, 0));
-          return 0;
-        }
         if ((Fl::modal_) && (Fl::modal_ != window)) {
           SetFocus(fl_xid(Fl::modal_));
           return 0;
@@ -1411,6 +1406,10 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar
         break;
 
       case WM_KILLFOCUS:
+        if (Fl::grab() && (Fl::grab() != window) && Fl::grab()->menu_window()) {
+          // simulate click at remote location (see issue #1166)
+          mouse_event(Fl::grab(), 0, 1, MK_LBUTTON, MAKELPARAM(100000, 0));
+        }
         Fl::handle(FL_UNFOCUS, window);
         Fl::flush(); // it never returns to main loop when deactivated...
         break;
-- 
GitLab