From c5567cc706afb954ff6f679f35fe96a078bd4f46 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Thu, 23 Nov 2017 15:45:14 +0100 Subject: QmlInspector: Make window flags explicit when adding WindowStaysOnTop The implicitly assumed flags are removed if any explicit flag beyond Window, Dialog, or Tool is added. Thus the inspected window lost its decoration when it was WindowStaysOnTop was set. Change-Id: Ic155283fd17ed069790875679b150f2c37b7fe1a Reviewed-by: Thomas Hartmann --- .../qmldbg_inspector/qquickwindowinspector.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src/plugins') diff --git a/src/plugins/qmltooling/qmldbg_inspector/qquickwindowinspector.cpp b/src/plugins/qmltooling/qmldbg_inspector/qquickwindowinspector.cpp index 16056addbd..d3bd1ac956 100644 --- a/src/plugins/qmltooling/qmldbg_inspector/qquickwindowinspector.cpp +++ b/src/plugins/qmltooling/qmldbg_inspector/qquickwindowinspector.cpp @@ -169,13 +169,29 @@ bool QQuickWindowInspector::eventFilter(QObject *obj, QEvent *event) return QObject::eventFilter(obj, event); } +static Qt::WindowFlags fixFlags(Qt::WindowFlags flags) +{ + // If only the type flag is given, some other window flags are automatically assumed. When we + // add a flag, we need to make those explicit. + switch (flags) { + case Qt::Window: + return flags | Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint + | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint; + case Qt::Dialog: + case Qt::Tool: + return flags | Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint; + default: + return flags; + } +} + void QQuickWindowInspector::setShowAppOnTop(bool appOnTop) { if (!m_parentWindow) return; Qt::WindowFlags flags = m_parentWindow->flags(); - Qt::WindowFlags newFlags = appOnTop ? (flags | Qt::WindowStaysOnTopHint) : + Qt::WindowFlags newFlags = appOnTop ? (fixFlags(flags) | Qt::WindowStaysOnTopHint) : (flags & ~Qt::WindowStaysOnTopHint); if (newFlags != flags) m_parentWindow->setFlags(newFlags); -- cgit v1.2.3 From c34e75e6c9549daa3407eaae0ef4a0ac91802b02 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 5 Dec 2017 10:00:08 +0100 Subject: D3D12: Fix compilation with clang-cl Fix error: qsgd3d12engine.cpp(3049,48): error: qualified reference to 'ActiveTexture' is a constructor name rather than a type in this context TransientFrameData::ActiveTexture::ActiveTexture(TransientFrameData::ActiveTexture::TypeRenderTarget, id); Change-Id: I159be55bbfe6effe6f70bf5113d6a090add69463 Reviewed-by: Laszlo Agocs --- src/plugins/scenegraph/d3d12/qsgd3d12engine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/plugins') diff --git a/src/plugins/scenegraph/d3d12/qsgd3d12engine.cpp b/src/plugins/scenegraph/d3d12/qsgd3d12engine.cpp index 908f1221ab..2b4c94b749 100644 --- a/src/plugins/scenegraph/d3d12/qsgd3d12engine.cpp +++ b/src/plugins/scenegraph/d3d12/qsgd3d12engine.cpp @@ -3046,7 +3046,7 @@ void QSGD3D12EnginePrivate::useRenderTargetAsTexture(uint id) } tframeData.activeTextures[tframeData.activeTextureCount++] = - TransientFrameData::ActiveTexture::ActiveTexture(TransientFrameData::ActiveTexture::TypeRenderTarget, id); + TransientFrameData::ActiveTexture(TransientFrameData::ActiveTexture::TypeRenderTarget, id); } QImage QSGD3D12EnginePrivate::executeAndWaitReadbackRenderTarget(uint id) -- cgit v1.2.3