From 26f98c3944bd3e77f970936ab49fa84b388d83dc73546eea38a03198193d4624 Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Tue, 10 Mar 2015 18:51:50 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/breeze?expand=0&rev=38 --- ...t-flag-as-output-from-captionRect-to.patch | 84 +++++++++++++++++++ ...lbar-policy-before-forwarding-events.patch | 37 ++++++++ ...yle-method-when-option-passed-to-tab.patch | 31 +++++++ ...-validity-before-calling-deleteLater.patch | 26 ++++++ breeze.changes | 9 ++ breeze.spec | 8 ++ breeze4-style.changes | 9 ++ breeze4-style.spec | 8 ++ 8 files changed, 212 insertions(+) create mode 100644 0001-Added-an-explicit-flag-as-output-from-captionRect-to.patch create mode 100644 0002-Check-scrollbar-policy-before-forwarding-events.patch create mode 100644 0003-return-parent-style-method-when-option-passed-to-tab.patch create mode 100644 0004-check-widget-validity-before-calling-deleteLater.patch diff --git a/0001-Added-an-explicit-flag-as-output-from-captionRect-to.patch b/0001-Added-an-explicit-flag-as-output-from-captionRect-to.patch new file mode 100644 index 0000000..0af47ea --- /dev/null +++ b/0001-Added-an-explicit-flag-as-output-from-captionRect-to.patch @@ -0,0 +1,84 @@ +From a8d2104ab36c91053da1fee3ad31d68c979965a7 Mon Sep 17 00:00:00 2001 +From: Hugo Pereira Da Costa +Date: Thu, 26 Feb 2015 00:17:18 +0100 +Subject: [PATCH 1/4] Added an explicit flag as output from captionRect to tell + whether caption must be ellided or not. BUG: 344552 + +--- + kdecoration/breezedecoration.cpp | 18 ++++++++++-------- + kdecoration/breezedecoration.h | 8 +++++++- + 2 files changed, 17 insertions(+), 9 deletions(-) + +diff --git a/kdecoration/breezedecoration.cpp b/kdecoration/breezedecoration.cpp +index 3b1479a82b19ca8427690ccc7b00b2f36f2289aa..f63306524e1301477904f284037c54ed09bbe276 100644 +--- a/kdecoration/breezedecoration.cpp ++++ b/kdecoration/breezedecoration.cpp +@@ -440,10 +440,13 @@ namespace Breeze + + // draw caption + painter->setFont(s->font()); +- const QRect cR = captionRect(); +- const QString caption = painter->fontMetrics().elidedText(c->caption(), Qt::ElideMiddle, cR.width()); ++ const auto cR = captionRect(); ++ const QString caption = cR.second ? ++ painter->fontMetrics().elidedText(c->caption(), Qt::ElideMiddle, cR.first.width()): ++ c->caption(); ++ + painter->setPen(m_colorSettings.font(c->isActive())); +- painter->drawText(cR, Qt::AlignVCenter| Qt::AlignLeft | Qt::TextSingleLine, caption); ++ painter->drawText(cR.first, Qt::AlignVCenter| Qt::AlignLeft | Qt::TextSingleLine, caption); + + // draw all buttons + m_leftButtons->paint(painter, repaintRegion); +@@ -470,7 +473,7 @@ namespace Breeze + { return borderTop() - settings()->smallSpacing()*(Metrics::TitleBar_BottomMargin + Metrics::TitleBar_TopMargin ) - 1; } + + //________________________________________________________________ +- QRect Decoration::captionRect() const ++ QPair Decoration::captionRect() const + { + const int leftOffset = m_leftButtons->geometry().x() + m_leftButtons->geometry().width() + Metrics::TitleBar_SideMargin*settings()->smallSpacing(); + const int rightOffset = size().width() - m_rightButtons->geometry().x() + Metrics::TitleBar_SideMargin*settings()->smallSpacing(); +@@ -480,9 +483,8 @@ namespace Breeze + boundingRect.setTop( yOffset ); + boundingRect.setHeight( captionHeight() ); + +- /* need to increase the bounding rect because it is sometime (font dependent) +- too small, resulting in text being elided */ +- boundingRect.setWidth( boundingRect.width()+4 ); ++ // store original width to detect when text ellision is needed ++ const int boundingRectWidth( boundingRect.width() ); + + switch( m_internalSettings->titleAlignment() ) + { +@@ -518,7 +520,7 @@ namespace Breeze + boundingRect.setLeft( qMax( boundingRect.left(), leftOffset ) ); + } + +- return boundingRect; ++ return qMakePair( boundingRect, boundingRect.width() < boundingRectWidth ); + + } + +diff --git a/kdecoration/breezedecoration.h b/kdecoration/breezedecoration.h +index 9eb6c659fb657e66d2c4dc006b22beef7b22a02c..ccdc6a67c65aad4a17e083b3f3360fc3cb57ddbc 100644 +--- a/kdecoration/breezedecoration.h ++++ b/kdecoration/breezedecoration.h +@@ -109,7 +109,13 @@ namespace Breeze + void updateAnimationState(); + + private: +- QRect captionRect() const; ++ ++ /** ++ return the smallest rect in which caption will be drawn, ++ properly positionned inside the title bar. Second return parameter ++ is set to true when text ellision is required ++ */ ++ QPair captionRect() const; + + void createButtons(); + void paintTitleBar(QPainter *painter, const QRect &repaintRegion); +-- +2.3.0 + diff --git a/0002-Check-scrollbar-policy-before-forwarding-events.patch b/0002-Check-scrollbar-policy-before-forwarding-events.patch new file mode 100644 index 0000000..a5cee3f --- /dev/null +++ b/0002-Check-scrollbar-policy-before-forwarding-events.patch @@ -0,0 +1,37 @@ +From 759ff9bf1ba38a47214849bc0a80cfbc7333c3a9 Mon Sep 17 00:00:00 2001 +From: Hugo Pereira Da Costa +Date: Sun, 1 Mar 2015 18:19:10 +0100 +Subject: [PATCH 2/4] Check scrollbar policy before forwarding events BUG: + 343659 + +--- + kstyle/breezestyle.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/kstyle/breezestyle.cpp b/kstyle/breezestyle.cpp +index 818eaec5e9a0143aa8bec778c620735aabbeb71c..6caa00b7259b44ac38f8db206df1317d2edafbc9 100644 +--- a/kstyle/breezestyle.cpp ++++ b/kstyle/breezestyle.cpp +@@ -1002,8 +1002,9 @@ namespace Breeze + QList scrollBars; + if( QAbstractScrollArea* scrollArea = qobject_cast( widget ) ) + { +- scrollBars.append( scrollArea->horizontalScrollBar() ); +- scrollBars.append( scrollArea->verticalScrollBar() ); ++ ++ if( scrollArea->horizontalScrollBarPolicy() != Qt::ScrollBarAlwaysOff ) scrollBars.append( scrollArea->horizontalScrollBar() ); ++ if( scrollArea->verticalScrollBarPolicy() != Qt::ScrollBarAlwaysOff )scrollBars.append( scrollArea->verticalScrollBar() ); + + } else if( widget->inherits( "KTextEditor::View" ) ) { + +@@ -5440,7 +5441,6 @@ namespace Breeze + + const bool hasPopupMenu( toolButtonOption->subControls & SC_ToolButtonMenu ); + const bool hasInlineIndicator( toolButtonOption->features & QStyleOptionToolButton::HasMenu && !hasPopupMenu ); +- + const QRect buttonRect( subControlRect( CC_ToolButton, option, SC_ToolButton, widget ) ); + const QRect menuRect( subControlRect( CC_ToolButton, option, SC_ToolButtonMenu, widget ) ); + +-- +2.3.0 + diff --git a/0003-return-parent-style-method-when-option-passed-to-tab.patch b/0003-return-parent-style-method-when-option-passed-to-tab.patch new file mode 100644 index 0000000..426047e --- /dev/null +++ b/0003-return-parent-style-method-when-option-passed-to-tab.patch @@ -0,0 +1,31 @@ +From ac6e765800cf6e78a2cae8692f6c49b75df49bda Mon Sep 17 00:00:00 2001 +From: Hugo Pereira Da Costa +Date: Tue, 3 Mar 2015 16:37:55 +0100 +Subject: [PATCH 3/4] return parent style method when option passed to tabBar + rect is invalid, instead of full option rect removed check on invalid tabbar + size BUG: 344779 + +--- + kstyle/breezestyle.cpp | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/kstyle/breezestyle.cpp b/kstyle/breezestyle.cpp +index 6caa00b7259b44ac38f8db206df1317d2edafbc9..e91b5da2a1622e8816a77e5cc509f9f4dd236bb2 100644 +--- a/kstyle/breezestyle.cpp ++++ b/kstyle/breezestyle.cpp +@@ -1548,11 +1548,10 @@ namespace Breeze + + // cast option and check + const QStyleOptionTabWidgetFrame* tabOption = qstyleoption_cast( option ); +- if( !tabOption ) return option->rect; ++ if( !tabOption ) return ParentStyleClass::subElementRect( SE_TabWidgetTabBar, option, widget ); + + // do nothing if tabbar is hidden + const QSize tabBarSize( tabOption->tabBarSize ); +- if( tabBarSize.isEmpty() ) return option->rect; + + QRect rect( option->rect ); + QRect tabBarRect( QPoint(0, 0), tabBarSize ); +-- +2.3.0 + diff --git a/0004-check-widget-validity-before-calling-deleteLater.patch b/0004-check-widget-validity-before-calling-deleteLater.patch new file mode 100644 index 0000000..9b0db31 --- /dev/null +++ b/0004-check-widget-validity-before-calling-deleteLater.patch @@ -0,0 +1,26 @@ +From 72d18b7f5245d265fb0eb974854989aebc357724 Mon Sep 17 00:00:00 2001 +From: Hugo Pereira Da Costa +Date: Mon, 9 Mar 2015 20:52:13 +0100 +Subject: [PATCH 4/4] check widget validity before calling deleteLater BUG: + 344980 + +--- + kstyle/breezepalettehelper.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/kstyle/breezepalettehelper.cpp b/kstyle/breezepalettehelper.cpp +index e134a6557722237858850aa854bb6a485a3bb99d..1fcb3e65225002f5eef193028e656ae499961960 100644 +--- a/kstyle/breezepalettehelper.cpp ++++ b/kstyle/breezepalettehelper.cpp +@@ -44,7 +44,7 @@ namespace Breeze + + //_____________________________________________________ + PaletteHelper::~PaletteHelper() +- { _widget->deleteLater(); } ++ { if( _widget ) _widget->deleteLater(); } + + + //_____________________________________________________ +-- +2.3.0 + diff --git a/breeze.changes b/breeze.changes index b89e6a3..19e3987 100644 --- a/breeze.changes +++ b/breeze.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Tue Mar 10 18:49:07 UTC 2015 - hrvoje.senjan@gmail.com + +- Added patches from upstream: + 0001-Added-an-explicit-flag-as-output-from-captionRect-to.patch, + 0002-Check-scrollbar-policy-before-forwarding-events.patch, + 0003-return-parent-style-method-when-option-passed-to-tab.patch + and 0004-check-widget-validity-before-calling-deleteLater.patch + ------------------------------------------------------------------- Fri Feb 20 02:43:47 UTC 2015 - hrvoje.senjan@gmail.com diff --git a/breeze.spec b/breeze.spec index 27a21a8..7725b17 100644 --- a/breeze.spec +++ b/breeze.spec @@ -47,6 +47,10 @@ Url: http://www.kde.org #Source: http://download.kde.org/stable/plasma/%{version}/%{name}-%{version}.tar.xz Source: %{name}-%{version}.tar.xz Source99: %{name}-rpmlintrc +Patch0: 0001-Added-an-explicit-flag-as-output-from-captionRect-to.patch +Patch1: 0002-Check-scrollbar-policy-before-forwarding-events.patch +Patch2: 0003-return-parent-style-method-when-option-passed-to-tab.patch +Patch3: 0004-check-widget-validity-before-calling-deleteLater.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -103,6 +107,10 @@ This package provides Breeze KWin decoration. %lang_package -n breeze5-style %prep %setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 %build %cmake_kf5 -d build -- -DBUILD_po=OFF -DCMAKE_INSTALL_LOCALEDIR=share/locale/kf5 diff --git a/breeze4-style.changes b/breeze4-style.changes index 7c6d12c..4be3a16 100644 --- a/breeze4-style.changes +++ b/breeze4-style.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Tue Mar 10 18:49:07 UTC 2015 - hrvoje.senjan@gmail.com + +- Added patches from upstream: + 0001-Added-an-explicit-flag-as-output-from-captionRect-to.patch, + 0002-Check-scrollbar-policy-before-forwarding-events.patch, + 0003-return-parent-style-method-when-option-passed-to-tab.patch + and 0004-check-widget-validity-before-calling-deleteLater.patch + ------------------------------------------------------------------- Fri Feb 20 02:43:47 UTC 2015 - hrvoje.senjan@gmail.com diff --git a/breeze4-style.spec b/breeze4-style.spec index 4e2374f..bd614af 100644 --- a/breeze4-style.spec +++ b/breeze4-style.spec @@ -31,6 +31,10 @@ Group: System/GUI/KDE Url: http://www.kde.org #Source: http://download.kde.org/stable/plasma/%{version}/breeze-%{version}.tar.xz Source: breeze-%{version}.tar.xz +Patch0: 0001-Added-an-explicit-flag-as-output-from-captionRect-to.patch +Patch1: 0002-Check-scrollbar-policy-before-forwarding-events.patch +Patch2: 0003-return-parent-style-method-when-option-passed-to-tab.patch +Patch3: 0004-check-widget-validity-before-calling-deleteLater.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -39,6 +43,10 @@ This package contains kde4 backport of new default Plasma 5 style. %prep %setup -q -n breeze-%{version} +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 %build %cmake_kde4 -d build -- -DBUILD_po=OFF -DUSE_KDE4=ON