From 1e10ef8ac287b98dcaf7e4fc735628d84b9757e6 Mon Sep 17 00:00:00 2001 From: Allan Odgaard Date: Fri, 13 Nov 2015 15:24:52 +0700 Subject: [PATCH] Workaround for 10.11 regression --- Frameworks/Find/src/FindWindowController.mm | 10 ++++++++-- Frameworks/HTMLOutputWindow/src/HTMLOutputWindow.mm | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Frameworks/Find/src/FindWindowController.mm b/Frameworks/Find/src/FindWindowController.mm index 258e5b20..6bd3c9e1 100644 --- a/Frameworks/Find/src/FindWindowController.mm +++ b/Frameworks/Find/src/FindWindowController.mm @@ -312,12 +312,18 @@ static NSButton* OakCreateStopSearchButton () - (void)applicationDidActivate:(NSNotification*)notification { - self.window.collectionBehavior |= NSWindowCollectionBehaviorMoveToActiveSpace; + // Starting with 10.11 behavior must be changed after current event loop cycle + dispatch_async(dispatch_get_main_queue(), ^{ + self.window.collectionBehavior |= NSWindowCollectionBehaviorMoveToActiveSpace; + }); } - (void)applicationDidDeactivate:(NSNotification*)notification { - self.window.collectionBehavior &= ~NSWindowCollectionBehaviorMoveToActiveSpace; + // Starting with 10.11 behavior must be changed after current event loop cycle + dispatch_async(dispatch_get_main_queue(), ^{ + self.window.collectionBehavior &= ~NSWindowCollectionBehaviorMoveToActiveSpace; + }); } - (void)menuNeedsUpdate:(NSMenu*)aMenu diff --git a/Frameworks/HTMLOutputWindow/src/HTMLOutputWindow.mm b/Frameworks/HTMLOutputWindow/src/HTMLOutputWindow.mm index dc02bc00..d21f8a17 100644 --- a/Frameworks/HTMLOutputWindow/src/HTMLOutputWindow.mm +++ b/Frameworks/HTMLOutputWindow/src/HTMLOutputWindow.mm @@ -43,12 +43,18 @@ OAK_DEBUG_VAR(HTMLOutputWindow); - (void)applicationDidActivate:(NSNotification*)notification { - self.window.collectionBehavior |= NSWindowCollectionBehaviorMoveToActiveSpace; + // Starting with 10.11 behavior must be changed after current event loop cycle + dispatch_async(dispatch_get_main_queue(), ^{ + self.window.collectionBehavior |= NSWindowCollectionBehaviorMoveToActiveSpace; + }); } - (void)applicationDidDeactivate:(NSNotification*)notification { - self.window.collectionBehavior &= ~NSWindowCollectionBehaviorMoveToActiveSpace; + // Starting with 10.11 behavior must be changed after current event loop cycle + dispatch_async(dispatch_get_main_queue(), ^{ + self.window.collectionBehavior &= ~NSWindowCollectionBehaviorMoveToActiveSpace; + }); } + (HTMLOutputWindowController*)HTMLOutputWindowWithRunner:(command::runner_ptr const&)aRunner