QPA/Windows: Fix QPainter warnings when animations are disabled

Don't draw on a QImage with a size of 0/0.

This amends 5feefd30734cd12753956819fc7c152be07c24cd

Pick-to: 6.10 6.9 6.9.1
Fixes: QTBUG-135844
Task-number: QTBUG-127634
Change-Id: Ib57cdccfabe67454984f3229f9d7ad02dd0d9992
Reviewed-by: Błażej Szczygieł <mumei6102@gmail.com>
Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
This commit is contained in:
Christian Ehrlicher 2025-05-21 20:22:40 +02:00
parent 5e9efe45df
commit 46c2aa2b61

View File

@ -2457,14 +2457,16 @@ void QWindowsWindow::handleGeometryChange()
clearFlag(SynchronousGeometryChangeEvent);
qCDebug(lcQpaEvents) << __FUNCTION__ << this << window() << m_data.geometry;
bool arranged = QWindowsWindow::isWindowArranged(m_data.hwnd);
if (arranged || (m_windowWasArranged && !arranged)) {
transitionAnimatedCustomTitleBar();
}
if (m_data.hwndTitlebar) {
bool arranged = QWindowsWindow::isWindowArranged(m_data.hwnd);
if (arranged || (m_windowWasArranged && !arranged))
transitionAnimatedCustomTitleBar();
const int titleBarHeight = getTitleBarHeight_sys(savedDpi());
MoveWindow(m_data.hwndTitlebar, m_data.geometry.x(), m_data.geometry.y(), m_data.geometry.width(), titleBarHeight, true);
m_windowWasArranged = arranged;
const int titleBarHeight = getTitleBarHeight_sys(savedDpi());
MoveWindow(m_data.hwndTitlebar, m_data.geometry.x(), m_data.geometry.y(),
m_data.geometry.width(), titleBarHeight, true);
m_windowWasArranged = arranged;
}
}
void QWindowsBaseWindow::setGeometry_sys(const QRect &rect) const
@ -2743,6 +2745,8 @@ void QWindowsWindow::correctWindowPlacement(WINDOWPLACEMENT &windowPlacement)
void QWindowsWindow::transitionAnimatedCustomTitleBar()
{
if (!m_data.hwndTitlebar)
return;
const QWinRegistryKey registry(HKEY_CURRENT_USER, LR"(Control Panel\Desktop\WindowMetrics)");
if (registry.isValid() && registry.value(LR"(MinAnimate)") == 1) {
ShowWindow(m_data.hwndTitlebar, SW_HIDE);