SHA256
1
0
forked from pool/breeze
Hrvoje Senjan 2015-03-24 02:18:30 +00:00 committed by Git OBS Bridge
parent 2f95b9f018
commit 1d26ceaa5c
8 changed files with 260 additions and 0 deletions

View File

@ -0,0 +1,42 @@
From 6b0d93d316f14cf00e7b7a5f6f13c4d16ee0ce68 Mon Sep 17 00:00:00 2001
From: Hugo Pereira Da Costa <hugo.pereira@free.fr>
Date: Sun, 22 Mar 2015 19:52:14 +0100
Subject: [PATCH 1/5] Cleanup code to align with master Check for
drawBordersOnMaximizedWindows when testing edges flags. BUG: 345424
---
kdecoration/breezedecoration.cpp | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/kdecoration/breezedecoration.cpp b/kdecoration/breezedecoration.cpp
index 1c042861e1207c812032eb772849c88b503a3792..dc4219c161f7a2467906083cf62039d5a0645303 100644
--- a/kdecoration/breezedecoration.cpp
+++ b/kdecoration/breezedecoration.cpp
@@ -278,9 +278,14 @@ namespace Breeze
auto s = settings();
const auto c = client().data();
const Qt::Edges edges = c->adjacentScreenEdges();
- int left = isMaximizedHorizontally() || edges.testFlag(Qt::LeftEdge) ? 0 : borderSize();
- int right = isMaximizedHorizontally() || edges.testFlag(Qt::RightEdge) ? 0 : borderSize();
+ // left, right and bottom borders
+ auto testFlag = [&]( Qt::Edge edge ) { return edges.testFlag(edge) && !m_internalSettings->drawBorderOnMaximizedWindows(); };
+ const int left = isMaximizedHorizontally() || testFlag(Qt::LeftEdge) ? 0 : borderSize();
+ const int right = isMaximizedHorizontally() || testFlag(Qt::RightEdge) ? 0 : borderSize();
+ const int bottom = isMaximizedVertically() || c->isShaded() || testFlag(Qt::BottomEdge) ? 0 : borderSize(true);
+
+ // top border
QFontMetrics fm(s->font());
int top = qMax(fm.boundingRect(c->caption()).height(), buttonHeight() );
@@ -292,7 +297,6 @@ namespace Breeze
// padding above
top += baseSize*TitleBar_TopMargin;
- int bottom = isMaximizedVertically() || c->isShaded() || edges.testFlag(Qt::BottomEdge) ? 0 : borderSize(true);
setBorders(QMargins(left, top, right, bottom));
// extended sizes
--
2.3.3

View File

@ -0,0 +1,66 @@
From 46b78432e25a124e9b85b007723435700aec047a Mon Sep 17 00:00:00 2001
From: Hugo Pereira Da Costa <hugo.pereira@free.fr>
Date: Sun, 22 Mar 2015 20:22:18 +0100
Subject: [PATCH 2/5] set button's visibility depending on the availability of
the corresponding feature CCBUG: 343641
---
kdecoration/breezebutton.cpp | 36 +++++++++++++++++++++++++++++++++++-
1 file changed, 35 insertions(+), 1 deletion(-)
diff --git a/kdecoration/breezebutton.cpp b/kdecoration/breezebutton.cpp
index 5ac0cfe420c6de50db30491e90dc0244666add33..1a3c0c2b0f66a2c8582798b82dee97dcc7785b12 100644
--- a/kdecoration/breezebutton.cpp
+++ b/kdecoration/breezebutton.cpp
@@ -63,13 +63,47 @@ namespace Breeze
if (auto d = qobject_cast<Decoration*>(decoration))
{
Button *b = new Button(type, d, parent);
- if (type == KDecoration2::DecorationButtonType::Menu)
+ switch( type )
{
+
+ case KDecoration2::DecorationButtonType::Close:
+ b->setVisible( d->client().data()->isCloseable() );
+ QObject::connect(d->client().data(), &KDecoration2::DecoratedClient::closeableChanged, b, &Breeze::Button::setVisible );
+ break;
+
+ case KDecoration2::DecorationButtonType::Maximize:
+ b->setVisible( d->client().data()->isMaximizeable() );
+ QObject::connect(d->client().data(), &KDecoration2::DecoratedClient::maximizeableChanged, b, &Breeze::Button::setVisible );
+ break;
+
+ case KDecoration2::DecorationButtonType::Minimize:
+ b->setVisible( d->client().data()->isMinimizeable() );
+ QObject::connect(d->client().data(), &KDecoration2::DecoratedClient::minimizeableChanged, b, &Breeze::Button::setVisible );
+ break;
+
+ case KDecoration2::DecorationButtonType::ContextHelp:
+ b->setVisible( d->client().data()->providesContextHelp() );
+ QObject::connect(d->client().data(), &KDecoration2::DecoratedClient::providesContextHelpChanged, b, &Breeze::Button::setVisible );
+ break;
+
+ case KDecoration2::DecorationButtonType::Shade:
+ b->setVisible( d->client().data()->isShadeable() );
+ QObject::connect(d->client().data(), &KDecoration2::DecoratedClient::shadeableChanged, b, &Breeze::Button::setVisible );
+ break;
+
+ case KDecoration2::DecorationButtonType::Menu:
QObject::connect(d->client().data(), &KDecoration2::DecoratedClient::iconChanged, b, [b]() { b->update(); });
+ break;
+
+ default: break;
+
}
+
return b;
}
+
return nullptr;
+
}
//__________________________________________________________________
--
2.3.3

View File

@ -0,0 +1,87 @@
From 695e4aa231fccbe77a6b0a4e21ff6a84f87a5c44 Mon Sep 17 00:00:00 2001
From: Hugo Pereira Da Costa <hugo.pereira@free.fr>
Date: Sun, 22 Mar 2015 20:39:47 +0100
Subject: [PATCH 3/5] Properly update size grip visibility on maximizedChanged,
shadedChanged and resizeableChanged
---
kdecoration/breezedecoration.cpp | 24 +++++++++++++++++-------
kdecoration/breezedecoration.h | 1 +
2 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/kdecoration/breezedecoration.cpp b/kdecoration/breezedecoration.cpp
index dc4219c161f7a2467906083cf62039d5a0645303..08f6f7b17c4b0b7790d82630b168cedd832b6328 100644
--- a/kdecoration/breezedecoration.cpp
+++ b/kdecoration/breezedecoration.cpp
@@ -165,21 +165,21 @@ namespace Breeze
);
connect(client().data(), &KDecoration2::DecoratedClient::activeChanged, this, &Decoration::updateAnimationState);
- connect(client().data(), &KDecoration2::DecoratedClient::paletteChanged, this,
+ connect(client().data(), &KDecoration2::DecoratedClient::paletteChanged, this,
[this]() {
m_colorSettings.update(client().data()->palette());
m_useSeparator = (m_colorSettings.palette().color( QPalette::Window ) != m_colorSettings.activeTitleBar() );
update();
}
);
- connect(client().data(), &KDecoration2::DecoratedClient::widthChanged, this, &Decoration::updateTitleBar);
+ connect(client().data(), &KDecoration2::DecoratedClient::widthChanged, this, &Decoration::updateTitleBar);
connect(client().data(), &KDecoration2::DecoratedClient::maximizedChanged, this, &Decoration::updateTitleBar);
connect(client().data(), &KDecoration2::DecoratedClient::maximizedChanged, this, &Decoration::setOpaque);
- connect(client().data(), &KDecoration2::DecoratedClient::widthChanged, this, &Decoration::updateButtonsGeometry);
+ connect(client().data(), &KDecoration2::DecoratedClient::widthChanged, this, &Decoration::updateButtonsGeometry);
connect(client().data(), &KDecoration2::DecoratedClient::maximizedChanged, this, &Decoration::updateButtonsGeometry);
- connect(client().data(), &KDecoration2::DecoratedClient::shadedChanged, this, &Decoration::recalculateBorders);
- connect(client().data(), &KDecoration2::DecoratedClient::shadedChanged, this, &Decoration::updateButtonsGeometry);
+ connect(client().data(), &KDecoration2::DecoratedClient::shadedChanged, this, &Decoration::recalculateBorders);
+ connect(client().data(), &KDecoration2::DecoratedClient::shadedChanged, this, &Decoration::updateButtonsGeometry);
createButtons();
createShadow();
@@ -208,6 +208,14 @@ namespace Breeze
}
//________________________________________________________________
+ void Decoration::updateSizeGripVisibility()
+ {
+ auto c = client().data();
+ if( m_sizeGrip )
+ { m_sizeGrip->setVisible( c->isResizeable() && !isMaximized() && !c->isShaded() ); }
+ }
+
+ //________________________________________________________________
int Decoration::borderSize(bool bottom) const
{
const int baseSize = settings()->smallSpacing();
@@ -582,10 +590,12 @@ namespace Breeze
KDecoration2::DecoratedClient *c( client().data() );
if( !c ) return;
- if( ( c->isResizeable() && c->windowId() != 0 ) )
+ if( c->windowId() != 0 )
{
m_sizeGrip = new SizeGrip( this );
- m_sizeGrip->setVisible( !( isMaximized() || c->isShaded() ) );
+ connect( client().data(), &KDecoration2::DecoratedClient::maximizedChanged, this, &Breeze::Decoration::updateSizeGripVisibility );
+ connect( client().data(), &KDecoration2::DecoratedClient::shadedChanged, this, &Breeze::Decoration::updateSizeGripVisibility );
+ connect( client().data(), &KDecoration2::DecoratedClient::resizeableChanged, this, &Breeze::Decoration::updateSizeGripVisibility );
}
#endif
diff --git a/kdecoration/breezedecoration.h b/kdecoration/breezedecoration.h
index ac1ab3bdc136fd3e4a1e970e86abd0fb92cb6c56..16ff8ff84636f435c7c59d0a0f4835fb509b9b57 100644
--- a/kdecoration/breezedecoration.h
+++ b/kdecoration/breezedecoration.h
@@ -107,6 +107,7 @@ namespace Breeze
void updateButtonsGeometry();
void updateTitleBar();
void updateAnimationState();
+ void updateSizeGripVisibility();
private:
--
2.3.3

View File

@ -0,0 +1,29 @@
From 8c2940fb798150af56ee36af694a92ceb710ebf1 Mon Sep 17 00:00:00 2001
From: Hugo Pereira Da Costa <hugo.pereira@free.fr>
Date: Mon, 23 Mar 2015 09:12:58 +0100
Subject: [PATCH 4/5] Fixed foreground color for pressed buttons
---
kdecoration/breezebutton.cpp | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/kdecoration/breezebutton.cpp b/kdecoration/breezebutton.cpp
index 1a3c0c2b0f66a2c8582798b82dee97dcc7785b12..591824838152532c5868c137d9268163161ac83c 100644
--- a/kdecoration/breezebutton.cpp
+++ b/kdecoration/breezebutton.cpp
@@ -348,7 +348,11 @@ namespace Breeze
auto d = qobject_cast<Decoration*>( decoration() );
if( !d ) return QColor();
- if( type() == KDecoration2::DecorationButtonType::Close ) {
+ if( isPressed() ) {
+
+ return d->titleBarColor();
+
+ } else if( type() == KDecoration2::DecorationButtonType::Close ) {
return d->titleBarColor();
--
2.3.3

View File

@ -10,6 +10,12 @@ Thu Mar 19 17:42:27 UTC 2015 - hrvoje.senjan@gmail.com
0002-Check-scrollbar-policy-before-forwarding-events.patch,
0004-check-widget-validity-before-calling-deleteLater.patch and
0001-Added-an-explicit-flag-as-output-from-captionRect-to.patch
- Added patches from upstream:
0001-Cleanup-code-to-align-with-master.patch (kde#345424),
0002-set-button-s-visibility-depending-on-the-availabilit.patch
(kde#343641),
0003-Properly-update-size-grip-visibility-on-maximizedCha.patch
and 0004-Fixed-foreground-color-for-pressed-buttons.patch
-------------------------------------------------------------------
Mon Mar 16 11:53:48 UTC 2015 - hrvoje.senjan@gmail.com

View File

@ -48,6 +48,14 @@ 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
# PATCH-FIX-UPSTREAM 0001-Cleanup-code-to-align-with-master.patch
Patch0: 0001-Cleanup-code-to-align-with-master.patch
# PATCH-FIX-UPSTREAM 0002-set-button-s-visibility-depending-on-the-availabilit.patch
Patch1: 0002-set-button-s-visibility-depending-on-the-availabilit.patch
# PATCH-FIX-UPSTREAM 0003-Properly-update-size-grip-visibility-on-maximizedCha.patch
Patch2: 0003-Properly-update-size-grip-visibility-on-maximizedCha.patch
# PATCH-FIX-UPSTREAM 0004-Fixed-foreground-color-for-pressed-buttons.patch
Patch3: 0004-Fixed-foreground-color-for-pressed-buttons.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@ -104,6 +112,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

View File

@ -10,6 +10,12 @@ Thu Mar 19 17:42:27 UTC 2015 - hrvoje.senjan@gmail.com
0002-Check-scrollbar-policy-before-forwarding-events.patch,
0004-check-widget-validity-before-calling-deleteLater.patch and
0001-Added-an-explicit-flag-as-output-from-captionRect-to.patch
- Added patches from upstream:
0001-Cleanup-code-to-align-with-master.patch (kde#345424),
0002-set-button-s-visibility-depending-on-the-availabilit.patch
(kde#343641),
0003-Properly-update-size-grip-visibility-on-maximizedCha.patch
and 0004-Fixed-foreground-color-for-pressed-buttons.patch
-------------------------------------------------------------------
Tue Mar 10 18:49:07 UTC 2015 - hrvoje.senjan@gmail.com

View File

@ -31,6 +31,14 @@ 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
# PATCH-FIX-UPSTREAM 0001-Cleanup-code-to-align-with-master.patch
Patch0: 0001-Cleanup-code-to-align-with-master.patch
# PATCH-FIX-UPSTREAM 0002-set-button-s-visibility-depending-on-the-availabilit.patch
Patch1: 0002-set-button-s-visibility-depending-on-the-availabilit.patch
# PATCH-FIX-UPSTREAM 0003-Properly-update-size-grip-visibility-on-maximizedCha.patch
Patch2: 0003-Properly-update-size-grip-visibility-on-maximizedCha.patch
# PATCH-FIX-UPSTREAM 0004-Fixed-foreground-color-for-pressed-buttons.patch
Patch3: 0004-Fixed-foreground-color-for-pressed-buttons.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@ -39,6 +47,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