diff options
author | root <root@rshg054.dnsready.net> | 2012-09-07 00:03:53 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-09-07 00:03:53 +0000 |
commit | ed51a8c1611ffa602f5f9628c858f6edbc218fc8 (patch) | |
tree | 9da1c83153c6a7313cc5fbdc6a361083051e9f1d /extra/kdebase-workspace | |
parent | 3a491cfc574c49ee5f006f74323b6d432d372ab8 (diff) |
Fri Sep 7 00:03:53 UTC 2012
Diffstat (limited to 'extra/kdebase-workspace')
-rw-r--r-- | extra/kdebase-workspace/PKGBUILD | 17 | ||||
-rw-r--r-- | extra/kdebase-workspace/fix-freeze.patch | 56 |
2 files changed, 67 insertions, 6 deletions
diff --git a/extra/kdebase-workspace/PKGBUILD b/extra/kdebase-workspace/PKGBUILD index 4f4125954..9363a4fea 100644 --- a/extra/kdebase-workspace/PKGBUILD +++ b/extra/kdebase-workspace/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 164857 2012-08-06 23:14:44Z andrea $ +# $Id: PKGBUILD 166216 2012-09-05 18:28:21Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> pkgname=kdebase-workspace _pkgname=kde-workspace -pkgver=4.9.0 -pkgrel=1 +pkgver=4.9.1 +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' @@ -29,8 +29,9 @@ backup=('usr/share/config/kdm/kdmrc' options=('emptydirs') source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.xz" 'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam' 'kdm.service' - 'fixpath.patch' 'terminate-server.patch' 'kdm-xinitrd.patch') -sha1sums=('fa614c7f59a43e24e09229374c4193eea86f6865' + 'fixpath.patch' 'terminate-server.patch' 'kdm-xinitrd.patch' + 'fix-freeze.patch') +sha1sums=('ac1753e2264246ec6347961f44b0aae07072dbb4' '5db3a245201bd4a50e65aa2ef583cf5490e4f646' '712a90999bd429883dcef5dcaf288aace332ced8' 'b321b5e613b60231330e606fdf1e124646148388' @@ -38,13 +39,17 @@ sha1sums=('fa614c7f59a43e24e09229374c4193eea86f6865' 'b6f8e8692737b11eec1f8022ce74b5b23e247b1b' 'd7b5883f7e65c6839b1f65f94d58026673dd0226' 'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee' - 'd509dac592bd8b310df27991b208c95b6d907514') + 'd509dac592bd8b310df27991b208c95b6d907514' + '820135367cc577a8557061b9844d3ce4a5fde90f') build() { cd "${srcdir}"/${_pkgname}-${pkgver} patch -p1 -i "${srcdir}"/kdm-xinitrd.patch patch -p0 -i "${srcdir}"/fixpath.patch patch -p0 -i "${srcdir}"/terminate-server.patch + + # KDEBUG 306260 + patch -p1 -i "${srcdir}"/fix-freeze.patch cd "${srcdir}" mkdir build diff --git a/extra/kdebase-workspace/fix-freeze.patch b/extra/kdebase-workspace/fix-freeze.patch new file mode 100644 index 000000000..1926baebc --- /dev/null +++ b/extra/kdebase-workspace/fix-freeze.patch @@ -0,0 +1,56 @@ +diff --git a/kwin/tabbox/clientmodel.cpp b/kwin/tabbox/clientmodel.cpp +index 9591bab..a67d979 100644 +--- a/kwin/tabbox/clientmodel.cpp ++++ b/kwin/tabbox/clientmodel.cpp +@@ -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 |