macOS: Don't use full screen geometry for popups
The fullscren geometry when an application is in full screen includes the area above the menu bar. Unfortunately, when clicking on areas of a Qt popup that overlays the menu bare area we get a callback for NSMenuDidBeginTrackingNotification, and as a result we close all popups. As macOS for some reason treats the menu bar area as special and tracks clicks there even if another window is on top, we should not put our popups there. This also matches the geometry of windows shown full screen, which does not overlap the menu bar area either when using the native APIs to make a window fullscreen (which we do). This change does not affect the original issue (QTBUG-39403), as the QScreen::availableGeometry() nowadays does not exclude the area of the Dock when in fullscreen mode. Pick-to: 6.7 6.5 Task-number: QTBUG-39403 Fixes: QTBUG-123298 Change-Id: I5890d7fc7a9b95a98b8fd2b9ce58ed9789e7f36e Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 7f63b0fabb3f2ae67596cc061f202ddd77ddf56b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
44a94e03dd
commit
a9d3a0b47c
@ -453,7 +453,7 @@ QVariant QCocoaTheme::themeHint(ThemeHint hint) const
|
|||||||
case QPlatformTheme::SpellCheckUnderlineStyle:
|
case QPlatformTheme::SpellCheckUnderlineStyle:
|
||||||
return QVariant(int(QTextCharFormat::DotLine));
|
return QVariant(int(QTextCharFormat::DotLine));
|
||||||
case QPlatformTheme::UseFullScreenForPopupMenu:
|
case QPlatformTheme::UseFullScreenForPopupMenu:
|
||||||
return QVariant(bool([[NSApplication sharedApplication] presentationOptions] & NSApplicationPresentationFullScreen));
|
return false;
|
||||||
case QPlatformTheme::InteractiveResizeAcrossScreens:
|
case QPlatformTheme::InteractiveResizeAcrossScreens:
|
||||||
return !NSScreen.screensHaveSeparateSpaces;
|
return !NSScreen.screensHaveSeparateSpaces;
|
||||||
case QPlatformTheme::ShowDirectoriesFirst:
|
case QPlatformTheme::ShowDirectoriesFirst:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user