author | Andrea Scarpino
<andrea@archlinux.org> 2013-09-10 22:37:20 UTC |
committer | Andrea Scarpino
<andrea@archlinux.org> 2013-09-10 22:37:20 UTC |
parent | 99447b9ae1d527a4f0178bc6cd58de28a7bfc6bd |
PKGBUILD | +12 | -4 |
kdebug-324661.patch | +76 | -0 |
diff --git a/PKGBUILD b/PKGBUILD index d90b84d..6231d90 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -77,18 +77,26 @@ pkgname=('kdeplasma-addons-applets-bball' 'kdeplasma-addons-wallpapers-virus' 'kdeplasma-addons-wallpapers-weather') pkgver=4.11.1 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') url='https://projects.kde.org/projects/kde/kdeplasma-addons' license=('GPL' 'LGPL') groups=('kde' 'kdeplasma-addons') makedepends=('cmake' 'automoc4' 'kdebase-workspace' 'kdeedu-marble' 'eigen' 'scim' 'qwt' 'boost' 'libkexiv2' 'ibus' 'qoauth' 'mesa') -source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz") -sha1sums=('ac6cc243fe0bacce77b9286269dde9b342eb5ddd') +source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz" + 'kdebug-324661.patch') +sha1sums=('ac6cc243fe0bacce77b9286269dde9b342eb5ddd' + 'fc274d87f7e39cde2c19570b6e38666b95050a9d') + +prepare() { + mkdir build + + cd ${pkgbase}-${pkgver} + patch -p1 -i "${srcdir}"/kdebug-324661.patch +} build() { - mkdir build cd build cmake ../${pkgbase}-${pkgver} \ -DCMAKE_BUILD_TYPE=Release \ diff --git a/kdebug-324661.patch b/kdebug-324661.patch new file mode 100644 index 0000000..92de3fc --- /dev/null +++ b/kdebug-324661.patch @@ -0,0 +1,76 @@ +commit 7c3011e0a6459c00cf9d06d74da3a32f87f1a2f6 +Author: Eike Hein <hein@kde.org> +Date: Mon Sep 9 23:12:45 2013 +0200 + + Spin the event loop before destroying the menu. + + This allows the menu implementation to complete toggling the + launcher before the instance is destroyed. It's extremely un- + fortunate that the library currently requires this careful + handling; see e944d7ae in kde-workspace for a note on what + needs to be cleaned up there. + + BUG:324661 + +diff --git a/applets/icontasks/windowtaskitem.cpp b/applets/icontasks/windowtaskitem.cpp +index 970c19f..61b39ef 100644 +--- a/applets/icontasks/windowtaskitem.cpp ++++ b/applets/icontasks/windowtaskitem.cpp +@@ -406,17 +406,18 @@ void WindowTaskItem::showContextMenu(const QPoint &pos, bool showAppMenu) + actionList.append(configAction); + } + +- TaskManager::BasicMenu menu(0, m_task.data(), &m_applet->groupManager(), actionList, showAppMenu ? getAppMenu() : QList <QAction*>()); +- menu.adjustSize(); ++ TaskManager::BasicMenu * menu = new TaskManager::BasicMenu(0, m_task.data(), &m_applet->groupManager(), actionList, showAppMenu ? getAppMenu() : QList <QAction*>()); ++ menu->adjustSize(); + + if (m_applet->formFactor() != Plasma::Vertical) { +- menu.setMinimumWidth(size().width()); ++ menu->setMinimumWidth(size().width()); + } + + Q_ASSERT(m_applet->containment()); + Q_ASSERT(m_applet->containment()->corona()); + stopWindowHoverEffect(); +- menu.exec(pos.isNull() ? m_applet->containment()->corona()->popupPosition(this, menu.size()) : pos); ++ menu->exec(pos.isNull() ? m_applet->containment()->corona()->popupPosition(this, menu->size()) : pos); ++ menu->deleteLater(); + delete a; + } + +commit b56d1552e9a8f8efe8fb8fd641126e78627c61a9 +Author: Eike Hein <hein@kde.org> +Date: Mon Sep 9 23:33:30 2013 +0200 + + Fix it for non-running items too. + + BUG:324661 + +diff --git a/applets/icontasks/applauncheritem.cpp b/applets/icontasks/applauncheritem.cpp +index b5f646c..f721b5a 100644 +--- a/applets/icontasks/applauncheritem.cpp ++++ b/applets/icontasks/applauncheritem.cpp +@@ -100,17 +100,18 @@ void AppLauncherItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *e) + actionList.append(configAction); + } + +- TaskManager::BasicMenu menu(0, m_launcher, &m_applet->groupManager(), actionList, getAppMenu()); +- menu.adjustSize(); ++ TaskManager::BasicMenu *menu = new TaskManager::BasicMenu(0, m_launcher, &m_applet->groupManager(), actionList, getAppMenu()); ++ menu->adjustSize(); + + if (m_applet->formFactor() != Plasma::Vertical) { +- menu.setMinimumWidth(size().width()); ++ menu->setMinimumWidth(size().width()); + } + + Q_ASSERT(m_applet->containment()); + Q_ASSERT(m_applet->containment()->corona()); + stopWindowHoverEffect(); +- menu.exec(m_applet->containment()->corona()->popupPosition(this, menu.size())); ++ menu->exec(m_applet->containment()->corona()->popupPosition(this, menu->size())); ++ menu->deleteLater(); + } + +