On 2014-06-23, at 06:28 PM, Ben Medina <[email protected]> wrote:

> Hello all,
> I'm attempting a fix for this bug:
> https://bugreports.qt-project.org/browse/QTBUG-39403
> 
> Our app currently uses 5.2.1, so that's the context. As you can see from my 
> post, using the qt_mac_app_fullscreen Boolean seems to no longer work. So I 
> attempted to look at the QWindow's visibility property, like this:
> 
> QRect QScreen::availableGeometry() const
> {
>     Q_D(const QScreen);
> #ifdef Q_OS_MAC
>     foreach (QWindow* window, QGuiApplication::allWindows())
>     {
>         // If we're in fullscreen mode on the Mac, we don't have to account 
> for space
>         // taken up by the Dock and menu bar, so we can use the full screen 
> geometry.
>         if (window->visibility() == QWindow::FullScreen)
>             return d->geometry;
>     }
> #endif
>     return d->availableGeometry;
> }
> 
> But even when in full-screen mode, I never get QWindow::FullScreen. Does 
> anyone know how to detect if the application is in fullscreen mode on the Mac?
> 
> Thanks,
> Ben
> _______________________________________________
> Development mailing list
> [email protected]
> http://lists.qt-project.org/mailman/listinfo/development


That code is probably from the pre-Lion days when OS X didn't have a native 
fullscreen mode and I'm guessing we don't properly set the window's visibility 
to FullScreen on Lion+ when the window is actually fullscreen. The way to 
detect fullscreen mode for a given window on OS X is:

    (([nswindow styleMask] & NSFullScreenWindowMask) == NSFullScreenWindowMask)

You can also find additional documentation here: 
https://developer.apple.com/library/mac/documentation/General/Conceptual/MOSXAppProgrammingGuide/FullScreenApp/FullScreenApp.html
-- 
Jake Petroules - jake.petroules at petroules.com
Chief Technology Officer - Petroules Corporation
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to