Windows QPA: Add MSWindowsNoRedirectionBitmap flag

This flag will be useful for windows that only use
3D graphics API to do the rendering, such as Qt Quick
applications.

As a drive-by, fix a typo in the above line.

Pick-to: 6.4
Change-Id: Ic6edcb7610055693734a5d5aff5e906991d4b911
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
bb10
Yuhang Zhao 2022-06-15 14:02:55 +08:00
parent 331fa5e8d6
commit 417bb46352
3 changed files with 13 additions and 1 deletions

View File

@ -228,6 +228,7 @@ namespace Qt {
WindowOverridesSystemGestures = 0x00100000,
WindowDoesNotAcceptFocus = 0x00200000,
MaximizeUsingFullscreenGeometryHint = 0x00400000,
MSWindowsNoRedirectionBitmap = 0x00800000,
CustomizeWindowHint = 0x02000000,
WindowStaysOnBottomHint = 0x04000000,

View File

@ -2190,6 +2190,14 @@
\value MSWindowsOwnDC Gives the window its own display
context on Windows.
\value MSWindowsNoRedirectionBitmap This flag is useful to windows that
only use 3D graphics API to do the rendering, such as D3D11.
This flag was introduced in Qt 6.4
\note Changing this flag after the native window has been created will
have no effect. You can only enable it before the native window is
actually created.
\value BypassWindowManagerHint This flag can be used to indicate to the platform plugin
that "all" window manager protocols should be disabled. This flag will behave
different depending on what operating system the application is running on and

View File

@ -841,8 +841,11 @@ void WindowCreationData::fromWindow(const QWindow *w, const Qt::WindowFlags flag
// make mouse events fall through this window
// NOTE: WS_EX_TRANSPARENT flag can make mouse inputs fall through a layered window
if (flagsIn & Qt::WindowTransparentForInput)
if (flags & Qt::WindowTransparentForInput)
exStyle |= WS_EX_LAYERED | WS_EX_TRANSPARENT;
if (flags & Qt::MSWindowsNoRedirectionBitmap)
exStyle |= WS_EX_NOREDIRECTIONBITMAP;
}
}