Cocoa: correct QDesktopWidget::availableGeometry()
Since 10.9, System Preferences->Mission Control->Displays have separate Spaces settings needs to be followed. Task-number: QTBUG-47030 Change-Id: I1c1cf326246bd5609090ce5ac3212d963d562593 Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
This commit is contained in:
parent
6413ceeccf
commit
1a5cc2a868
@ -86,9 +86,17 @@ void QCocoaScreen::updateGeometry()
|
||||
|
||||
NSRect frameRect = [nsScreen frame];
|
||||
|
||||
if (m_screenIndex == 0) {
|
||||
// Since Mavericks, there is a setting, System Preferences->Mission Control->
|
||||
// Displays have separate Spaces.
|
||||
BOOL spansDisplays = NO;
|
||||
#if QT_OSX_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_9)
|
||||
if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_9)
|
||||
spansDisplays = [NSScreen screensHaveSeparateSpaces];
|
||||
#endif
|
||||
if (spansDisplays || m_screenIndex == 0) {
|
||||
m_geometry = QRect(frameRect.origin.x, frameRect.origin.y, frameRect.size.width, frameRect.size.height);
|
||||
// This is the primary screen, the one that contains the menubar. Its origin should be
|
||||
// Displays have separate Spaces setting is on or this is the primary screen,
|
||||
// the one that contains the menubar. Its origin should be
|
||||
// (0, 0), and it's the only one whose available geometry differs from its full geometry.
|
||||
NSRect visibleRect = [nsScreen visibleFrame];
|
||||
m_availableGeometry = QRect(visibleRect.origin.x,
|
||||
|
Loading…
Reference in New Issue
Block a user