From f79a803044904a2badea11a09766e5ad30fec2bb Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Wed, 21 May 2025 20:22:40 +0200 Subject: [PATCH] QPA/Windows: Fix QPainter warnings when animations are disabled MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't draw on a QImage with a size of 0/0. This amends 5feefd30734cd12753956819fc7c152be07c24cd Pick-to: 6.9.1 Fixes: QTBUG-135844 Task-number: QTBUG-127634 Change-Id: Ib57cdccfabe67454984f3229f9d7ad02dd0d9992 Reviewed-by: Błażej Szczygieł Reviewed-by: Wladimir Leuschner (cherry picked from commit 46c2aa2b617ea136dbd1c9c7606316a10588ef11) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 0ebe6718a1c559c7a8573ca628b07dd97c41ed04) --- .../platforms/windows/qwindowswindow.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp index 78447ba9211..866c11b4566 100644 --- a/src/plugins/platforms/windows/qwindowswindow.cpp +++ b/src/plugins/platforms/windows/qwindowswindow.cpp @@ -2414,14 +2414,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 @@ -2700,6 +2702,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);