From 435ddb66acfa0dc7fa086577df4975d9ed0a3d47 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Wed, 16 Dec 2020 15:35:35 +0100 Subject: Windows: add 9p margins to scrollbar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pick-to: 6.0 Change-Id: I8d56f7b7071c51d4dfc88e12864bc3e0e7c5ab10 Reviewed-by: Jan Arve Sæther --- .../qstyle/windows/qquickwindowsxpstyle.cpp | 26 ++++++++++++++++++++++ .../qstyle/windows/qquickwindowsxpstyle_p.h | 2 ++ 2 files changed, 28 insertions(+) (limited to 'src') diff --git a/src/imports/nativestyle/qstyle/windows/qquickwindowsxpstyle.cpp b/src/imports/nativestyle/qstyle/windows/qquickwindowsxpstyle.cpp index fd363d62..a3e8ef20 100644 --- a/src/imports/nativestyle/qstyle/windows/qquickwindowsxpstyle.cpp +++ b/src/imports/nativestyle/qstyle/windows/qquickwindowsxpstyle.cpp @@ -3637,6 +3637,32 @@ int QWindowsXPStyle::styleHint(StyleHint hint, const QStyleOption *option, return res; } +QMargins QWindowsXPStyle::ninePatchMargins(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, const QSize &imageSize) const +{ + QMargins margins; + + switch (cc) { + case CC_ScrollBar: { + margins = QWindowsStyle::ninePatchMargins(cc, opt, imageSize); + if (const auto option = qstyleoption_cast(opt)) { + if (option->orientation == Qt::Horizontal) { + margins.setTop(-1); + margins.setBottom(-1); + } else { + margins.setLeft(-1); + margins.setRight(-1); + } + } + break; } + default: + margins = QWindowsStyle::ninePatchMargins(cc, opt, imageSize); + break; + } + + return margins; +} + + /*! \reimp */ QPalette QWindowsXPStyle::standardPalette() const { diff --git a/src/imports/nativestyle/qstyle/windows/qquickwindowsxpstyle_p.h b/src/imports/nativestyle/qstyle/windows/qquickwindowsxpstyle_p.h index a6a10405..5d8d5e20 100644 --- a/src/imports/nativestyle/qstyle/windows/qquickwindowsxpstyle_p.h +++ b/src/imports/nativestyle/qstyle/windows/qquickwindowsxpstyle_p.h @@ -87,6 +87,8 @@ public: QPixmap standardPixmap(StandardPixmap standardIcon, const QStyleOption *option) const override; QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = nullptr) const override; + QMargins ninePatchMargins(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, const QSize &imageSize) const; + private: Q_DISABLE_COPY_MOVE(QWindowsXPStyle) Q_DECLARE_PRIVATE(QWindowsXPStyle) -- cgit v1.2.3