[PATCH] winemac: Only call -[NSApplication unhide:] if the app is actually hidden.

Ken Thomases ken at codeweavers.com
Wed Jul 20 18:50:25 CDT 2016


This avoids a Cocoa bug where, if an app in the background which is not hidden
calls -unhide:, its main menu bar window is brought forward.  The active app
hasn't actually been changed.  Key events continue to go to the app in the
foreground.  But it's confusing to the user when they look at the menu bar and,
if they click in the menu bar, the background app really will be activated.

Signed-off-by: Ken Thomases <ken at codeweavers.com>
---
 dlls/winemac.drv/cocoa_window.m | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/dlls/winemac.drv/cocoa_window.m b/dlls/winemac.drv/cocoa_window.m
index 4f59121..808a7e7 100644
--- a/dlls/winemac.drv/cocoa_window.m
+++ b/dlls/winemac.drv/cocoa_window.m
@@ -1427,7 +1427,8 @@ - (void) orderBelow:(WineWindow*)prev orAbove:(WineWindow*)next activate:(BOOL)a
             BOOL wasVisible;
 
             [controller transformProcessToForeground];
-            [NSApp unhide:nil];
+            if ([NSApp isHidden])
+                [NSApp unhide:nil];
             wasVisible = [self isVisible];
 
             if (activate)
-- 
2.8.2




More information about the wine-patches mailing list