From 369be485101c856c626a85f77ea087603dcf8b6c Mon Sep 17 00:00:00 2001 From: Wladimir Leuschner Date: Mon, 10 Feb 2025 15:13:09 +0100 Subject: [PATCH] Windows: Check for bitmask instead for equality for initial window flags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fixTopLevelWindowFlags uses a equality comparison for the initial window flags fixup. In case window flags are set before creation, this equality will fail and no initial window flag fixup will happen. This patch changes the equality comparison with a test for bitmasks. Change-Id: I5a18f37376af5cc72f5ee7a3365970ca7fd51b66 Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/windows/qwindowswindow.cpp | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp index b14bc42c0a4..26575bfbf9a 100644 --- a/src/plugins/platforms/windows/qwindowswindow.cpp +++ b/src/plugins/platforms/windows/qwindowswindow.cpp @@ -654,18 +654,13 @@ static inline void fixTopLevelWindowFlags(Qt::WindowFlags &flags) { // Not supported on Windows, also do correction when it is set. flags &= ~Qt::WindowFullscreenButtonHint; - switch (flags) { - case Qt::Window: + if (flags.testFlags((Qt::Dialog | Qt::Tool) & ~Qt::Window)) { + flags |= Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint; + } else if (flags.testFlag(Qt::Window)) { flags |= Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint |Qt::WindowMaximizeButtonHint|Qt::WindowCloseButtonHint; - break; - case Qt::Dialog: - case Qt::Tool: - flags |= Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint; - break; - default: - break; } + if ((flags & Qt::WindowType_Mask) == Qt::SplashScreen) flags |= Qt::FramelessWindowHint; }