[arch-commits] Commit in kdebase-workspace/trunk (PKGBUILD fix-freeze.patch)
Andrea Scarpino
andrea at archlinux.org
Wed Sep 5 18:04:00 UTC 2012
Date: Wednesday, September 5, 2012 @ 14:04:00
Author: andrea
Revision: 166195
upgpkg: kdebase-workspace 4.9.1-3
New patch, fix a regression
Modified:
kdebase-workspace/trunk/PKGBUILD
kdebase-workspace/trunk/fix-freeze.patch
------------------+
PKGBUILD | 4 +-
fix-freeze.patch | 73 +++++++++++++++++++++++++++++++++++++----------------
2 files changed, 54 insertions(+), 23 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2012-09-05 14:35:55 UTC (rev 166194)
+++ PKGBUILD 2012-09-05 18:04:00 UTC (rev 166195)
@@ -5,7 +5,7 @@
pkgname=kdebase-workspace
_pkgname=kde-workspace
pkgver=4.9.1
-pkgrel=2
+pkgrel=3
pkgdesc="Provides the interface and basic tools for the KDE workspace"
arch=('i686' 'x86_64')
url='https://projects.kde.org/projects/kde/kde-workspace'
@@ -40,7 +40,7 @@
'd7b5883f7e65c6839b1f65f94d58026673dd0226'
'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee'
'd509dac592bd8b310df27991b208c95b6d907514'
- '4cea251edacf60815863fa080cbd3916b44e9890')
+ '820135367cc577a8557061b9844d3ce4a5fde90f')
build() {
cd "${srcdir}"/${_pkgname}-${pkgver}
Modified: fix-freeze.patch
===================================================================
--- fix-freeze.patch 2012-09-05 14:35:55 UTC (rev 166194)
+++ fix-freeze.patch 2012-09-05 18:04:00 UTC (rev 166195)
@@ -1,25 +1,56 @@
diff --git a/kwin/tabbox/clientmodel.cpp b/kwin/tabbox/clientmodel.cpp
-index 9591bab..9790245 100644
+index 9591bab..a67d979 100644
--- a/kwin/tabbox/clientmodel.cpp
+++ b/kwin/tabbox/clientmodel.cpp
-@@ -195,6 +195,9 @@ void ClientModel::createClientList(int desktop, bool partialReset)
- }
- }
- TabBoxClient* stop = c;
-+ // test whether the Client marked as stop will be included at all in the list
-+ // see BUG: 306260
-+ bool stopInFocusChain = !tabBox->clientToAddToList(c, desktop).isNull();
- do {
- QWeakPointer<TabBoxClient> add = tabBox->clientToAddToList(c, desktop);
- if (!add.isNull()) {
-@@ -204,6 +207,10 @@ void ClientModel::createClientList(int desktop, bool partialReset)
- }
- }
- c = tabBox->nextClientFocusChain(c).data();
-+ if (!stopInFocusChain) {
-+ stop = c;
-+ stopInFocusChain = true;
-+ }
- } while (c && c != stop);
- break;
+@@ -188,7 +188,7 @@ void ClientModel::createClientList(int desktop, bool partialReset)
+ switch(tabBox->config().clientSwitchingMode()) {
+ case TabBoxConfig::FocusChainSwitching: {
+ TabBoxClient* c = start;
+- if (!c) {
++ if (!tabBox->isInFocusChain(c)) {
+ QSharedPointer<TabBoxClient> firstClient = tabBox->firstClientFocusChain().toStrongRef();
+ if (firstClient) {
+ c = firstClient.data();
+diff --git a/kwin/tabbox/tabbox.cpp b/kwin/tabbox/tabbox.cpp
+index d96d0bd..7a08d37 100644
+--- a/kwin/tabbox/tabbox.cpp
++++ b/kwin/tabbox/tabbox.cpp
+@@ -112,6 +112,14 @@ QWeakPointer< TabBoxClient > TabBoxHandlerImpl::firstClientFocusChain() const
}
+ }
+
++bool TabBoxHandlerImpl::isInFocusChain(TabBoxClient *client) const
++{
++ if (TabBoxClientImpl *c = static_cast<TabBoxClientImpl*>(client)) {
++ return Workspace::self()->globalFocusChain().contains(c->client());
++ }
++ return false;
++}
++
+ int TabBoxHandlerImpl::nextDesktopFocusChain(int desktop) const
+ {
+ return m_tabBox->nextDesktopFocusChain(desktop);
+diff --git a/kwin/tabbox/tabbox.h b/kwin/tabbox/tabbox.h
+index 6652f93..bba0b39 100644
+--- a/kwin/tabbox/tabbox.h
++++ b/kwin/tabbox/tabbox.h
+@@ -52,6 +52,7 @@ public:
+ virtual QString desktopName(int desktop) const;
+ virtual QWeakPointer< TabBoxClient > nextClientFocusChain(TabBoxClient* client) const;
+ virtual QWeakPointer< TabBoxClient > firstClientFocusChain() const;
++ virtual bool isInFocusChain (TabBoxClient* client) const;
+ virtual int nextDesktopFocusChain(int desktop) const;
+ virtual int numberOfDesktops() const;
+ virtual TabBoxClientList stackingOrder() const;
+diff --git a/kwin/tabbox/tabboxhandler.h b/kwin/tabbox/tabboxhandler.h
+index 7abddfc..d9a6122 100644
+--- a/kwin/tabbox/tabboxhandler.h
++++ b/kwin/tabbox/tabboxhandler.h
+@@ -119,6 +119,7 @@ public:
+ * @since 4.9.1
+ **/
+ virtual QWeakPointer<TabBoxClient> firstClientFocusChain() const = 0;
++ virtual bool isInFocusChain(TabBoxClient* client) const = 0;
+ /**
+ * @param client The client whose desktop name should be retrieved
+ * @return The desktop name of the given TabBoxClient. If the client is
More information about the arch-commits
mailing list