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; }