diff options
author | 2016-11-16 00:55:22 +0100 | |
---|---|---|
committer | 2016-11-17 22:35:20 +1100 | |
commit | 0897f2e61539f7256c5663c3184950aeaa3b195c (patch) | |
tree | 545dcce637d07e80c515bb65e38ec491302ac76a /kde-frameworks/plasma | |
parent | x11-terms/xterm: ppc stable wrt bug #579266 (diff) | |
download | gentoo-0897f2e61539f7256c5663c3184950aeaa3b195c.tar.gz gentoo-0897f2e61539f7256c5663c3184950aeaa3b195c.tar.bz2 gentoo-0897f2e61539f7256c5663c3184950aeaa3b195c.zip |
kde-frameworks/plasma: Backport activationTogglesExpanded
New API to fix e.g. Meta key toggle behaviour. plasma-desktop-5.8.3 is
already able to make use of it and fix KDE Bug 367685:
https://bugs.kde.org/show_bug.cgi?id=367685
See also https://git.reviewboard.kde.org/r/129204/
Package-Manager: portage-2.3.0
Diffstat (limited to 'kde-frameworks/plasma')
3 files changed, 264 insertions, 0 deletions
diff --git a/kde-frameworks/plasma/files/plasma-5.26.0-activationTogglesExpanded.patch b/kde-frameworks/plasma/files/plasma-5.26.0-activationTogglesExpanded.patch new file mode 100644 index 000000000000..f32f2b426f4c --- /dev/null +++ b/kde-frameworks/plasma/files/plasma-5.26.0-activationTogglesExpanded.patch @@ -0,0 +1,124 @@ +commit 65706d3878d556c7a1eac18984ec41b1a1d96d56 +Author: Roman Gilg <subdiff@gmail.com> +Date: Wed Oct 19 18:51:15 2016 +0200 + + New bool to use activated signal as toggle of expanded + + The launcher applets couldn't be closed with Meta alone and on Wayland + in general by any global shortcut, since we used for that the focusOutEvent + triggered only on X and only on global shortcuts (on default Alt+F1). + + This patch introduces the new bool activationTogglesExpanded, which allowes + QML applets to decide if they wish to use the activated signal also to end + their expanded state. + + The default value is false, in order to not break any legacy applets. + + REVIEW: 129204 + BUG: 367685 + +diff --git a/src/plasmaquick/appletquickitem.cpp b/src/plasmaquick/appletquickitem.cpp +index ce2b82a..e2fd40e 100644 +--- a/src/plasmaquick/appletquickitem.cpp ++++ b/src/plasmaquick/appletquickitem.cpp +@@ -48,7 +48,8 @@ AppletQuickItemPrivate::AppletQuickItemPrivate(Plasma::Applet *a, AppletQuickIte + switchWidth(-1), + switchHeight(-1), + applet(a), +- expanded(false) ++ expanded(false), ++ activationTogglesExpanded(false) + { + } + +@@ -727,6 +728,20 @@ void AppletQuickItem::setExpanded(bool expanded) + emit expandedChanged(expanded); + } + ++bool AppletQuickItem::isActivationTogglesExpanded() const ++{ ++ return d->activationTogglesExpanded; ++} ++ ++void AppletQuickItem::setActivationTogglesExpanded(bool activationTogglesExpanded) ++{ ++ if (d->activationTogglesExpanded == activationTogglesExpanded) { ++ return; ++ } ++ d->activationTogglesExpanded = activationTogglesExpanded; ++ emit activationTogglesExpandedChanged(activationTogglesExpanded); ++} ++ + ////////////Internals + + KDeclarative::QmlObject *AppletQuickItem::qmlObject() +diff --git a/src/plasmaquick/appletquickitem.h b/src/plasmaquick/appletquickitem.h +index 943e227..7df364d 100644 +--- a/src/plasmaquick/appletquickitem.h ++++ b/src/plasmaquick/appletquickitem.h +@@ -81,6 +81,12 @@ class PLASMAQUICK_EXPORT AppletQuickItem : public QQuickItem + Q_PROPERTY(bool expanded WRITE setExpanded READ isExpanded NOTIFY expandedChanged) + + /** ++ * True when the applet wants the activation signal act in toggle mode, i.e. while being expanded ++ * the signal shrinks the applet to its not exanded state instead of reexpanding it. ++ */ ++ Q_PROPERTY(bool activationTogglesExpanded WRITE setActivationTogglesExpanded READ isActivationTogglesExpanded NOTIFY activationTogglesExpandedChanged) ++ ++ /** + * the applet root QML item: sometimes is the same as fullRepresentationItem + * if a fullrepresentation was not declared explicitly + */ +@@ -126,6 +132,9 @@ public: + bool isExpanded() const; + void setExpanded(bool expanded); + ++ bool isActivationTogglesExpanded() const; ++ void setActivationTogglesExpanded(bool activationTogglesExpanded); ++ + ////NEEDED BY QML TO CREATE ATTACHED PROPERTIES + static AppletQuickItem *qmlAttachedProperties(QObject *object); + +@@ -135,6 +144,7 @@ Q_SIGNALS: + void switchHeightChanged(int height); + + void expandedChanged(bool expanded); ++ void activationTogglesExpandedChanged(bool activationTogglesExpanded); + + void compactRepresentationChanged(QQmlComponent *compactRepresentation); + void fullRepresentationChanged(QQmlComponent *fullRepresentation); +diff --git a/src/plasmaquick/private/appletquickitem_p.h b/src/plasmaquick/private/appletquickitem_p.h +index 1436935..ffd2bf2 100644 +--- a/src/plasmaquick/private/appletquickitem_p.h ++++ b/src/plasmaquick/private/appletquickitem_p.h +@@ -104,6 +104,7 @@ public: + Plasma::Package containmentPackage; + + bool expanded : 1; ++ bool activationTogglesExpanded : 1; + + static QHash<QObject *, AppletQuickItem *> s_rootObjects; + }; +diff --git a/src/scriptengines/qml/plasmoid/appletinterface.cpp b/src/scriptengines/qml/plasmoid/appletinterface.cpp +index 1cd6934..f24bc51 100644 +--- a/src/scriptengines/qml/plasmoid/appletinterface.cpp ++++ b/src/scriptengines/qml/plasmoid/appletinterface.cpp +@@ -142,11 +142,16 @@ void AppletInterface::init() + emit busyChanged(); + + applet()->updateConstraints(Plasma::Types::UiReadyConstraint); ++ + connect(applet(), &Plasma::Applet::activated, + [ = ]() { +- setExpanded(true); ++ // in case the applet doesn't want to get shrinked on reactivation, ++ // we always expand it again (only in order to conform with legacy behaviour) ++ bool activate = !( isExpanded() && isActivationTogglesExpanded() ); ++ ++ setExpanded(activate); + if (QQuickItem *i = qobject_cast<QQuickItem *>(fullRepresentationItem())) { +- i->setFocus(true, Qt::ShortcutFocusReason); ++ i->setFocus(activate, Qt::ShortcutFocusReason); + } + }); + diff --git a/kde-frameworks/plasma/plasma-5.26.0-r1.ebuild b/kde-frameworks/plasma/plasma-5.26.0-r1.ebuild new file mode 100644 index 000000000000..7d457212e975 --- /dev/null +++ b/kde-frameworks/plasma/plasma-5.26.0-r1.ebuild @@ -0,0 +1,70 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +KMNAME="${PN}-framework" +VIRTUALX_REQUIRED="test" +inherit kde5 + +DESCRIPTION="Plasma framework" +LICENSE="LGPL-2+" +KEYWORDS="~amd64 ~arm ~x86" +IUSE="egl gles2 X" + +COMMON_DEPEND=" + $(add_frameworks_dep kactivities) + $(add_frameworks_dep karchive) + $(add_frameworks_dep kconfig) + $(add_frameworks_dep kconfigwidgets) + $(add_frameworks_dep kcoreaddons) + $(add_frameworks_dep kdeclarative) + $(add_frameworks_dep kglobalaccel) + $(add_frameworks_dep kguiaddons) + $(add_frameworks_dep ki18n) + $(add_frameworks_dep kiconthemes) + $(add_frameworks_dep kio) + $(add_frameworks_dep knotifications) + $(add_frameworks_dep kpackage) + $(add_frameworks_dep kservice) + $(add_frameworks_dep kwindowsystem) + $(add_frameworks_dep kxmlgui) + $(add_qt_dep qtdbus) + $(add_qt_dep qtdeclarative) + $(add_qt_dep qtgui 'gles2=') + $(add_qt_dep qtquickcontrols) + $(add_qt_dep qtsql) + $(add_qt_dep qtsvg) + $(add_qt_dep qtwidgets) + egl? ( media-libs/mesa[egl] ) + !gles2? ( virtual/opengl ) + X? ( + $(add_qt_dep qtx11extras) + x11-libs/libX11 + x11-libs/libxcb + ) +" +DEPEND="${COMMON_DEPEND} + $(add_frameworks_dep kdoctools) + X? ( x11-proto/xproto ) +" +RDEPEND="${COMMON_DEPEND} + !<kde-apps/kapptemplate-15.08.3-r1:5 + !<kde-plasma/kdeplasma-addons-5.4.3-r1:5 +" + +RESTRICT+=" test" + +PATCHES=( "${FILESDIR}/${PN}-5.26.0-activationTogglesExpanded.patch" ) + +src_configure() { + local mycmakeargs=( + $(cmake-utils_use_find_package egl EGL) + $(cmake-utils_use_find_package !gles2 OpenGL) + $(cmake-utils_use_find_package X X11) + $(cmake-utils_use_find_package X XCB) + ) + + kde5_src_configure +} diff --git a/kde-frameworks/plasma/plasma-5.27.0-r1.ebuild b/kde-frameworks/plasma/plasma-5.27.0-r1.ebuild new file mode 100644 index 000000000000..7d457212e975 --- /dev/null +++ b/kde-frameworks/plasma/plasma-5.27.0-r1.ebuild @@ -0,0 +1,70 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +KMNAME="${PN}-framework" +VIRTUALX_REQUIRED="test" +inherit kde5 + +DESCRIPTION="Plasma framework" +LICENSE="LGPL-2+" +KEYWORDS="~amd64 ~arm ~x86" +IUSE="egl gles2 X" + +COMMON_DEPEND=" + $(add_frameworks_dep kactivities) + $(add_frameworks_dep karchive) + $(add_frameworks_dep kconfig) + $(add_frameworks_dep kconfigwidgets) + $(add_frameworks_dep kcoreaddons) + $(add_frameworks_dep kdeclarative) + $(add_frameworks_dep kglobalaccel) + $(add_frameworks_dep kguiaddons) + $(add_frameworks_dep ki18n) + $(add_frameworks_dep kiconthemes) + $(add_frameworks_dep kio) + $(add_frameworks_dep knotifications) + $(add_frameworks_dep kpackage) + $(add_frameworks_dep kservice) + $(add_frameworks_dep kwindowsystem) + $(add_frameworks_dep kxmlgui) + $(add_qt_dep qtdbus) + $(add_qt_dep qtdeclarative) + $(add_qt_dep qtgui 'gles2=') + $(add_qt_dep qtquickcontrols) + $(add_qt_dep qtsql) + $(add_qt_dep qtsvg) + $(add_qt_dep qtwidgets) + egl? ( media-libs/mesa[egl] ) + !gles2? ( virtual/opengl ) + X? ( + $(add_qt_dep qtx11extras) + x11-libs/libX11 + x11-libs/libxcb + ) +" +DEPEND="${COMMON_DEPEND} + $(add_frameworks_dep kdoctools) + X? ( x11-proto/xproto ) +" +RDEPEND="${COMMON_DEPEND} + !<kde-apps/kapptemplate-15.08.3-r1:5 + !<kde-plasma/kdeplasma-addons-5.4.3-r1:5 +" + +RESTRICT+=" test" + +PATCHES=( "${FILESDIR}/${PN}-5.26.0-activationTogglesExpanded.patch" ) + +src_configure() { + local mycmakeargs=( + $(cmake-utils_use_find_package egl EGL) + $(cmake-utils_use_find_package !gles2 OpenGL) + $(cmake-utils_use_find_package X X11) + $(cmake-utils_use_find_package X XCB) + ) + + kde5_src_configure +} |