Windows QPA: Enable toggling Windows transparency
Change QWindowsWindow::format() to return the QWindow's requested format instead of storing it as do the other platforms. This will cause the alpha (layered flag) to be adapted in QWindowsBackingStore::flush(). Note that it does not fix the issue; the window does not update correctly after changing WS_EX_LAYERED. Pick-to: 5.15 Task-number: QTBUG-60822 Change-Id: I3facd93f993b3b422b6818d55c1bce884fb57234 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
This commit is contained in:
parent
e18cb8b535
commit
d9d18596e2
@ -1356,8 +1356,7 @@ bool QWindowsWindow::m_borderInFullScreenDefault = false;
|
||||
QWindowsWindow::QWindowsWindow(QWindow *aWindow, const QWindowsWindowData &data) :
|
||||
QWindowsBaseWindow(aWindow),
|
||||
m_data(data),
|
||||
m_cursor(new CursorHandle),
|
||||
m_format(aWindow->requestedFormat())
|
||||
m_cursor(new CursorHandle)
|
||||
#if QT_CONFIG(vulkan)
|
||||
, m_vkSurface(VK_NULL_HANDLE)
|
||||
#endif
|
||||
@ -1431,6 +1430,11 @@ void QWindowsWindow::initialize()
|
||||
}
|
||||
}
|
||||
|
||||
QSurfaceFormat QWindowsWindow::format() const
|
||||
{
|
||||
return window()->requestedFormat();
|
||||
}
|
||||
|
||||
void QWindowsWindow::fireExpose(const QRegion ®ion, bool force)
|
||||
{
|
||||
if (region.isEmpty() && !force)
|
||||
|
@ -249,7 +249,7 @@ public:
|
||||
|
||||
using QPlatformWindow::screenForGeometry;
|
||||
|
||||
QSurfaceFormat format() const override { return m_format; }
|
||||
QSurfaceFormat format() const override;
|
||||
void setGeometry(const QRect &rect) override;
|
||||
QRect geometry() const override { return m_data.geometry; }
|
||||
QRect normalGeometry() const override;
|
||||
@ -402,7 +402,6 @@ private:
|
||||
QWindowsOleDropTarget *m_dropTarget = nullptr;
|
||||
unsigned m_savedStyle = 0;
|
||||
QRect m_savedFrameGeometry;
|
||||
const QSurfaceFormat m_format;
|
||||
HICON m_iconSmall = nullptr;
|
||||
HICON m_iconBig = nullptr;
|
||||
void *m_surface = nullptr;
|
||||
|
Loading…
Reference in New Issue
Block a user