summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@theqtcompany.com>2015-12-15 08:17:11 +0100
committerAndy Shaw <andy.shaw@theqtcompany.com>2015-12-16 09:22:44 +0000
commitf74e59d3196fe0d9a5b006bf55bc880a471cfa3e (patch)
tree075166925f1257e0852ce5fea644892261f163a7
parent91ca24d0484ba1166fbd31e7f444346f65e5637b (diff)
downloadqtdoc-f74e59d3196fe0d9a5b006bf55bc880a471cfa3e.tar.gz
Add note about fullscreen windows limitation with solution
Change-Id: I38178d2b2f61c7ba2aca60aa62146f9f5c2af58c Reviewed-by: Topi Reiniƶ <topi.reinio@theqtcompany.com>
-rw-r--r--doc/src/platforms/windows.qdoc27
1 files changed, 27 insertions, 0 deletions
diff --git a/doc/src/platforms/windows.qdoc b/doc/src/platforms/windows.qdoc
index d814765c..2a18547d 100644
--- a/doc/src/platforms/windows.qdoc
+++ b/doc/src/platforms/windows.qdoc
@@ -533,6 +533,33 @@
Consult the \l{Qt for Windows - Requirements} page for specific versions
of the Windows SDK.
+
+ \section1 Fullscreen OpenGL Based Windows
+
+ When a window is using an OpenGL based surface and is appearing in full screen mode,
+ problems can occur with other top-level windows which are part of the application.
+ When going into full screen mode, compositing is not handled correctly for OpenGL based
+ windows. As a result, other top-level windows are not placed on top of the full screen
+ window when they are made visible. For example, menus may not appear correctly, or
+ dialogs fail to show up.
+
+ A window can use an OpenGL based surface either explicitly when setSurfaceType() is
+ called or when something that requires OpenGL is used inside the window which causes
+ the whole window to be OpenGL based. For example, QOpenGLWidget or QQuickWidget can
+ trigger this. However, if it is contained in a QWindow which is hosted with
+ createWindowContainer() or the obsoleted QGLWidget is used and it does cover the
+ entire full screen window, then this problem does not occur.
+
+ To solve this problem, there is a QWindowsWindowFunction which can be used to enable
+ a native Windows flag which will set WS_BORDER when showing in fullscreen mode. This
+ can be utilized like:
+
+ \code
+ QWindowsWindowFunctions::setHasBorderInFullScreen(tlwWindow->windowHandle(), true);
+ \endcode
+
+ This will make the fullscreen window have a 1 pixel border thus enabling the other top
+ level windows to appear on top.
*/
/*!