[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