xserver-multidpi/hw/xquartz
Ken Thomases 4513f924a7 XQuartz: Fix how we calculate the height of the OSX menu bar
+[NSScreen mainScreen] does not mean the primary display.  It used to mean the
one with the key window.  When "Displays have separate spaces" is enabled, it
means the active screen, the one whose menu bar is mostly opaque.  As such, it
may not be the screen whose lower-left corner is located at (0, 0).  That's
why its max-Y is not necessarily comparable to its height.  That only works
for the primary display.

This code could use [[NSScreen screens] firstObject].  This is always the
primary display, the one whose lower-left corner is at (0, 0).

Once that's done, the above change should be reverted.  The height of the
visible frame would be the full height of the screen minus the menu bar _and
the Dock_ if the Dock is along the bottom of the screen.

Actually, there's a theoretically-simpler approach: use
-[NSMenu menuBarHeight].  That replaces a long-deprecated method
+[NSMenuView menuBarHeight].  However, there was a bug in Tiger that led to
the former not working while the latter still worked. I haven't actually
checked recently.

CrossOver's still-kicking X server code uses this code, which tries all of
the above:

       NSScreen* primaryScreen = [[NSScreen screens] objectAtIndex:0];
       aquaMenuBarHeight = [[NSApp mainMenu] menuBarHeight];
       if (!aquaMenuBarHeight) aquaMenuBarHeight = [NSMenuView menuBarHeight];
       if (!aquaMenuBarHeight) aquaMenuBarHeight =
           NSHeight([primaryScreen frame]) - NSMaxY([primaryScreen visibleFrame]);

Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Signed-off-by: Ken Thomases <ken@codeweavers.com>
2015-10-13 14:19:05 -07:00
..
bundle XQuartz: Remove InfoPlist.strings 2015-10-13 14:19:05 -07:00
GL XQuartz: GLX: Use __glXEnableExtension to build extensions list 2015-06-09 23:05:22 -07:00
mach-startup XQuartz: Silence a clang static analysis warning about a possible memory leak on exit 2014-01-12 23:12:48 -08:00
man XQuartz: Add a scroll_in_device_direction preference 2011-07-19 20:00:27 -07:00
pbproxy XQuartz: pbproxy: Fix build with -DDEBUG 2013-09-16 07:06:57 -07:00
xpr cursor: drop ARGB_CURSOR 2015-06-30 12:17:51 +10:00
applewm.c XQuartz: Avoid passing uninitialized pointers to X11ApplicationSetWindowMenu in AppleWMSetWindowMenu 2014-01-12 23:12:49 -08:00
applewmExt.h XQuartz: Source formatting cleanup 2012-03-24 01:07:06 -07:00
console_redirect.c XQuartz: console_redirect: Properly zero-out the tail of the array on realloc() 2012-08-16 19:44:00 -07:00
console_redirect.h XQuartz: Source formatting cleanup 2012-03-24 01:07:06 -07:00
darwin.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
darwin.h XQuartz: Source formatting cleanup 2012-03-24 01:07:06 -07:00
darwinEvents.c Drop valuator mask argument from GetKeyboardEvents 2015-03-13 12:31:21 +10:00
darwinEvents.h XQuartz: darwinPointer now sends both absolute and relative motion 2012-04-23 20:20:42 -07:00
darwinfb.h XQuartz: Fix darwinfb.h header guard 2014-01-12 23:12:48 -08:00
darwinXinput.c XQuartz: Source formatting cleanup 2012-03-24 01:07:06 -07:00
keysym2ucs.c XQuartz: Source formatting cleanup 2012-03-24 01:07:06 -07:00
keysym2ucs.h XQuartz: Source formatting cleanup 2012-03-24 01:07:06 -07:00
Makefile.am Build fbcmap_mi.c once, rather than once for each DDX 2014-03-27 14:34:06 +00:00
quartz.c dix: Restore PaintWindow screen hook 2015-07-08 16:41:28 -04:00
quartz.h XQuartz: Source formatting cleanup 2012-03-24 01:07:06 -07:00
quartzCocoa.m XQuartz: pointer -> void * 2014-02-14 00:33:38 -08:00
quartzCommon.h Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
quartzKeyboard.c XQuartz: Silence -Wunused-function 2015-06-09 23:42:03 -07:00
quartzKeyboard.h XQuartz: Source formatting cleanup 2012-03-24 01:07:06 -07:00
quartzRandR.c XQuartz: Source formatting cleanup 2012-03-24 01:07:06 -07:00
quartzRandR.h XQuartz: Source formatting cleanup 2012-03-24 01:07:06 -07:00
quartzStartup.c XQuartz: Source formatting cleanup 2012-03-24 01:07:06 -07:00
sanitizedCarbon.h XQuartz: Source formatting cleanup 2012-03-24 01:07:06 -07:00
sanitizedCocoa.h XQuartz: Source formatting cleanup 2012-03-24 01:07:06 -07:00
X11Application.h XQuartz: Source formatting cleanup 2012-03-24 01:07:06 -07:00
X11Application.m XQuartz: Fix how we calculate the height of the OSX menu bar 2015-10-13 14:19:05 -07:00
X11Controller.h XQuartz: Source formatting cleanup 2012-03-24 01:07:06 -07:00
X11Controller.m XQuartz: Silence -Wformat-security for NSRunAlertPanel 2015-06-09 23:42:03 -07:00