Windows QPA: Include custom margins in atypical margins

When calculating atypical margins that are used with
ExtendsContentIntoTitleBar, the margins were checked against
systemmargins, and then custom margins were added later. Instead, add
the custom margins immediately and take them into account during
calculations.

Pick-to: 6.7 6.6 6.5
Change-Id: I44af663c85b8bdf080d769e3b38431cbe5df64f3
Reviewed-by: David Faure <david.faure@kdab.com>
bb10
Timothée Keller 2024-01-09 15:52:50 +01:00 committed by Santhosh Kumar
parent c785d56ae0
commit 82e8f9e457
1 changed files with 6 additions and 5 deletions

View File

@ -2808,15 +2808,16 @@ void QWindowsWindow::calculateFullFrameMargins()
const auto systemMargins = testFlag(DisableNonClientScaling)
? QWindowsGeometryHint::frameOnPrimaryScreen(window(), m_data.hwnd)
: frameMargins_sys();
const QMargins actualMargins = systemMargins + customMargins();
const int yDiff = (windowRect.bottom - windowRect.top) - (clientRect.bottom - clientRect.top);
const bool typicalFrame = (systemMargins.left() == systemMargins.right())
&& (systemMargins.right() == systemMargins.bottom());
const bool typicalFrame = (actualMargins.left() == actualMargins.right())
&& (actualMargins.right() == actualMargins.bottom());
const QMargins adjustedMargins = typicalFrame ?
QMargins(systemMargins.left(), (yDiff - systemMargins.bottom()),
systemMargins.right(), systemMargins.bottom())
: systemMargins + customMargins();
QMargins(actualMargins.left(), (yDiff - actualMargins.bottom()),
actualMargins.right(), actualMargins.bottom())
: actualMargins;
setFullFrameMargins(adjustedMargins);
}