On Oct 28, 2013, at 7:32 PM, Caylan Larson wrote: > When my app is active its windows are set to NSPopUpMenuWindowLevel. This is > to capture main menu screen real estate inside of its frame (it’s a > “scope”-type utility: www.labelscope.com). When I receive > applicationDidResignActive, I set all windows as NSNormalWindowLevel. > Problem is, the newly active app (whatever it may be) is still underneath my > window(s) for one more click. The newly active application has key/main - > but my app window is on top. Then, I click once more within the newly active > app and my window goes behind. My window is not a ghost - because clicking > anywhere on it will activate my app once again. > > I tried to stash the window’s level before changing it to > NSPopUpMenuWindowLevel and set it back - that didn’t work. > > I tried to get all screen windowNumbers, remove my own app’s window numbers, > and then -orderWindow:NSWindowBelow relativeTo:topForeignWindow, but that > didn’t work, either. > > I can orderBack and my window goes way back, but this probably isn’t what the > user expects. > > How do I hover my window above the main menu without getting this strange > side-effect?
-[NSWindow setLevel:] is documented to order the window to the front of the new level. (So, this would happen even if you were raising a window from a lower level.) "When a window enters a new level, it’s ordered in front of all its peers in that level." Have you tried changing your window's level during -applicationWillResignActive: instead? I believe that ordering your window behind the other window would work (after you've reduced its level), but you're not correctly identifying the target window. The window number list includes the menu bar and perhaps some other system windows. You can try to use the CGWindow API to identify the real window you want to order relative to, but you'll be making a lot of unsupported assumptions in any such heuristic. Regards, Ken _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com