Ken Thomases : winemac: When a window becomes ineligible to be a parent, make the relationship latent in its children, too.

Alexandre Julliard julliard at winehq.org
Fri Aug 30 11:00:37 CDT 2013


Module: wine
Branch: master
Commit: a68d0a24ef4dc08a251efea55c6cac1d7a52d177
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a68d0a24ef4dc08a251efea55c6cac1d7a52d177

Author: Ken Thomases <ken at codeweavers.com>
Date:   Fri Aug 30 00:00:53 2013 -0500

winemac: When a window becomes ineligible to be a parent, make the relationship latent in its children, too.

---

 dlls/winemac.drv/cocoa_window.m |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/dlls/winemac.drv/cocoa_window.m b/dlls/winemac.drv/cocoa_window.m
index fdc33de..1977ca0 100644
--- a/dlls/winemac.drv/cocoa_window.m
+++ b/dlls/winemac.drv/cocoa_window.m
@@ -712,11 +712,23 @@ static inline void fix_generic_modifiers_by_device(NSUInteger* modifiers)
     - (void) becameIneligibleParentOrChild
     {
         WineWindow* parent = (WineWindow*)[self parentWindow];
+        NSArray* childWindows = [self childWindows];
+
         if (parent)
         {
             self.latentParentWindow = parent;
             [parent removeChildWindow:self];
         }
+
+        if ([childWindows count])
+        {
+            WineWindow* child;
+            for (child in [[childWindows copy] autorelease])
+            {
+                child.latentParentWindow = self;
+                [self removeChildWindow:child];
+            }
+        }
     }
 
     // Determine if, among Wine windows, this window is directly above or below




More information about the wine-cvs mailing list