summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2018-09-07 15:01:07 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2018-11-05 12:33:14 +0000
commit67c66c4ea4fbc11ee5547095117ef8930b3ab950 (patch)
treeb69872591f9b31eaf64e777f232cb033822d109f /src
parentc9d18d4a9c9d1243a267316e2a702f9ba69de2fd (diff)
windows: Give up on SwitchableComposition
Opt out of switching between the normal and OpenGL based flush paths. Once a QOpenGLWidget or QQuickWidget becomes visible in a window, the window contents will be composed using OpenGL from that point on, even if said widgets become invisible afterwards. Now that Qt Creator does not rely on QQuickWidget the issue is less burning anyways. Task-number: QTBUG-68329 Change-Id: I177e6e6094ee06ea26d8d0343bd3d84aadfa5913 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/windows/qwindowsintegration.cpp2
-rw-r--r--src/widgets/kernel/qwidgetbackingstore.cpp14
2 files changed, 2 insertions, 14 deletions
diff --git a/src/plugins/platforms/windows/qwindowsintegration.cpp b/src/plugins/platforms/windows/qwindowsintegration.cpp
index 0a9e8b9d91..66a5c52da5 100644
--- a/src/plugins/platforms/windows/qwindowsintegration.cpp
+++ b/src/plugins/platforms/windows/qwindowsintegration.cpp
@@ -300,7 +300,7 @@ bool QWindowsIntegration::hasCapability(QPlatformIntegration::Capability cap) co
case AllGLFunctionsQueryable:
return true;
case SwitchableWidgetComposition:
- return true;
+ return false; // QTBUG-68329 QTBUG-53515 QTBUG-54734
default:
return QPlatformIntegration::hasCapability(cap);
}
diff --git a/src/widgets/kernel/qwidgetbackingstore.cpp b/src/widgets/kernel/qwidgetbackingstore.cpp
index 3b093283cd..96a64f12c7 100644
--- a/src/widgets/kernel/qwidgetbackingstore.cpp
+++ b/src/widgets/kernel/qwidgetbackingstore.cpp
@@ -1000,20 +1000,8 @@ static QPlatformTextureList *widgetTexturesFor(QWidget *tlw, QWidget *widget)
static bool switchableWidgetComposition =
QGuiApplicationPrivate::instance()->platformIntegration()
->hasCapability(QPlatformIntegration::SwitchableWidgetComposition);
- if (!switchableWidgetComposition
-// The Windows compositor handles fullscreen OpenGL window specially. Besides
-// having trouble with popups, it also has issues with flip-flopping between
-// OpenGL-based and normal flushing. Therefore, stick with GL for fullscreen
-// windows (QTBUG-53515). Similary, translucent windows should not switch to
-// layered native windows (QTBUG-54734).
-#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) && !defined(Q_OS_WINCE)
- || tlw->windowState().testFlag(Qt::WindowFullScreen)
- || tlw->testAttribute(Qt::WA_TranslucentBackground)
-#endif
- )
- {
+ if (!switchableWidgetComposition)
return qt_dummy_platformTextureList();
- }
}
return 0;