public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Andreas Sturmlechner" <asturm@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: kde-plasma/plasma-desktop/files/, kde-plasma/plasma-desktop/
Date: Sun,  8 Jan 2017 14:24:46 +0000 (UTC)	[thread overview]
Message-ID: <1483885379.bf31d2035f1bdc787ab0323ac7cd756f189436d8.asturm@gentoo> (raw)

commit:     bf31d2035f1bdc787ab0323ac7cd756f189436d8
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Jan  8 13:06:57 2017 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Jan  8 14:22:59 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bf31d203

kde-plasma/plasma-desktop: Backport some fixes

- containment hover regression from 5.8.5
- plasmashell crash with invisible virtual desktop pager
- taskbar memleak

Package-Manager: portage-2.3.0

 .../files/plasma-desktop-5.8.5-crashfix.patch      |  57 +++++++
 .../files/plasma-desktop-5.8.5-hover-state.patch   |  33 +++++
 .../plasma-desktop-5.8.5-taskman-memleak.patch     |  43 ++++++
 .../plasma-desktop/plasma-desktop-5.8.5-r1.ebuild  | 165 +++++++++++++++++++++
 4 files changed, 298 insertions(+)

diff --git a/kde-plasma/plasma-desktop/files/plasma-desktop-5.8.5-crashfix.patch b/kde-plasma/plasma-desktop/files/plasma-desktop-5.8.5-crashfix.patch
new file mode 100644
index 00000000..9e4bdd9
--- /dev/null
+++ b/kde-plasma/plasma-desktop/files/plasma-desktop-5.8.5-crashfix.patch
@@ -0,0 +1,57 @@
+commit d674ede6e5f22281fa2461546ddc25ff5f3a7015
+Author: Kai Uwe Broulik <kde@privat.broulik.de>
+Date:   Tue Jan 3 09:38:50 2017 +0100
+
+    [Panel Containment] Explicitly bind visible on both the container and the applet
+    
+    While trying to fix a random plasmashell crash I was getting fairly often (and I hoped
+    was fixed by David's last spacer fix) I found that the cause was actually in virtual desktop pager.
+    
+    The virtual desktop pager is hidden when there's just one desktop and it will not update its
+    models in this case to save resources. Back when I added this I already noticed that sometimes
+    the pager (usually after one "open and close panelcontroller" cycle) still thought it was visible.
+    It was even weirder than that, I found out that on teardown it suddenly thought it became visible.
+    This had it populate its model which in turn spawned QML items, all of this whilst the panel was
+    already in the process of destroying its children, leading to a crash.
+    
+    Differential Revision: https://phabricator.kde.org/D3897
+
+diff --git a/containments/panel/contents/ui/main.qml b/containments/panel/contents/ui/main.qml
+index e9afa86..5bb5283 100644
+--- a/containments/panel/contents/ui/main.qml
++++ b/containments/panel/contents/ui/main.qml
+@@ -54,20 +54,27 @@ DragDrop.DropArea {
+ 
+ //BEGIN functions
+ function addApplet(applet, x, y) {
++    // don't show applet if it choses to be hidden but still make it
++    // accessible in the panelcontroller
++    // Due to the nature of how "visible" propagates in QML, we need to
++    // explicitly set it on the container (so the Layout ignores it)
++    // as well as the applet (so it reliably knows about), otherwise it can
++    // happen that an applet erroneously thinks it's visible, or suddenly
++    // starts thinking that way on teardown (virtual desktop pager)
++    // leading to crashes
++    var visibleBinding = Qt.binding(function() {
++        return applet.status !== PlasmaCore.Types.HiddenStatus || (!plasmoid.immutable && plasmoid.userConfiguring);
++    })
++
+     var container = appletContainerComponent.createObject(root, {
+         applet: applet,
+-
+-        // don't show applet if it choses to be hidden but still make it
+-        // accessible in the panelcontroller
+-        visible: Qt.binding(function() {
+-            return applet.status !== PlasmaCore.Types.HiddenStatus || (!plasmoid.immutable && plasmoid.userConfiguring)
+-        })
++        visible: visibleBinding
+     });
+ 
+     applet.parent = container;
+     applet.anchors.fill = container;
+ 
+-    applet.visible = true;
++    applet.visible = visibleBinding;
+ 
+     // Is there a DND placeholder? Replace it!
+     if (dndSpacer.parent === currentLayout) {

diff --git a/kde-plasma/plasma-desktop/files/plasma-desktop-5.8.5-hover-state.patch b/kde-plasma/plasma-desktop/files/plasma-desktop-5.8.5-hover-state.patch
new file mode 100644
index 00000000..5e645c5
--- /dev/null
+++ b/kde-plasma/plasma-desktop/files/plasma-desktop-5.8.5-hover-state.patch
@@ -0,0 +1,33 @@
+commit e80a4b87cfa98708724942794ca6f051974bb5c0
+Author: Eike Hein <hein@kde.org>
+Date:   Tue Jan 3 16:30:54 2017 +0900
+
+    Don't clear hover state while a child dialog is open.
+    
+    Otherwise it won't stay open.
+    
+    Fixes regression from 7585f295363532eff51f7e11ef6b62925117aba4.
+    
+    The bug number referenced in the original change is invalid, but
+    I don't think this should invalidate the intent of that fix. Kai
+    please let me know the correct bug number so I can double-check.
+    
+    BUG:374291
+    CCMAIL:kde@privat.broulik.de
+
+diff --git a/containments/desktop/package/contents/ui/FolderView.qml b/containments/desktop/package/contents/ui/FolderView.qml
+index 1fd8dbb..8936532 100644
+--- a/containments/desktop/package/contents/ui/FolderView.qml
++++ b/containments/desktop/package/contents/ui/FolderView.qml
+@@ -343,7 +343,10 @@ Item {
+         onContainsMouseChanged: {
+             if (!containsMouse && !main.rubberBand) {
+                 clearPressState();
+-                gridView.hoveredItem = null;
++
++                if (gridView.hoveredItem && !gridView.hoveredItem.popupDialog) {
++                    gridView.hoveredItem = null;
++                }
+             }
+         }
+ 

diff --git a/kde-plasma/plasma-desktop/files/plasma-desktop-5.8.5-taskman-memleak.patch b/kde-plasma/plasma-desktop/files/plasma-desktop-5.8.5-taskman-memleak.patch
new file mode 100644
index 00000000..b112edc
--- /dev/null
+++ b/kde-plasma/plasma-desktop/files/plasma-desktop-5.8.5-taskman-memleak.patch
@@ -0,0 +1,43 @@
+commit 58e932c607db27bea2872625661991fb16c79d13
+Author: Kai Uwe Broulik <kde@privat.broulik.de>
+Date:   Tue Jan 3 09:37:38 2017 +0100
+
+    [Task Manager] Parent QAction to "parent" instead of this
+    
+    This ensures the QAction is disposed of once the menu gets destroyed rather than
+    accumulating forever - the methods already took a "parent" argument,
+    which is passed the menu from QML side, for exactly that purpose.
+    
+    Differential Revision: https://phabricator.kde.org/D3816
+
+diff --git a/applets/taskmanager/plugin/backend.cpp b/applets/taskmanager/plugin/backend.cpp
+index 16f1f57..efbd095 100644
+--- a/applets/taskmanager/plugin/backend.cpp
++++ b/applets/taskmanager/plugin/backend.cpp
+@@ -142,7 +142,7 @@ QVariantList Backend::jumpListActions(const QUrl &launcherUrl, QObject *parent)
+             continue;
+         }
+ 
+-        QAction *action = new QAction(this);
++        QAction *action = new QAction(parent);
+         action->setText(name);
+         action->setIcon(QIcon::fromTheme(actionGroup.readEntry("Icon")));
+         action->setProperty("exec", exec);
+@@ -204,7 +204,7 @@ QVariantList Backend::recentDocumentActions(const QUrl &launcherUrl, QObject *pa
+             continue;
+         }
+ 
+-        QAction *action = new QAction(this);
++        QAction *action = new QAction(parent);
+         action->setText(url.fileName());
+         action->setIcon(QIcon::fromTheme(fileItem.iconName(), QIcon::fromTheme("unknown")));
+         action->setProperty("agent", storageId);
+@@ -219,7 +219,7 @@ QVariantList Backend::recentDocumentActions(const QUrl &launcherUrl, QObject *pa
+     }
+ 
+     if (actionCount > 0) {
+-        QAction *action = new QAction(this);
++        QAction *action = new QAction(parent);
+         action->setText(i18n("Forget Recent Documents"));
+         action->setProperty("agent", storageId);
+         connect(action, &QAction::triggered, this, &Backend::handleRecentDocumentAction);

diff --git a/kde-plasma/plasma-desktop/plasma-desktop-5.8.5-r1.ebuild b/kde-plasma/plasma-desktop/plasma-desktop-5.8.5-r1.ebuild
new file mode 100644
index 00000000..4444dc0
--- /dev/null
+++ b/kde-plasma/plasma-desktop/plasma-desktop-5.8.5-r1.ebuild
@@ -0,0 +1,165 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+KDE_HANDBOOK="forceoptional"
+KDE_TEST="true"
+VIRTUALX_REQUIRED="test"
+inherit kde5
+
+DESCRIPTION="KDE Plasma desktop"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="+fontconfig gtk2 gtk3 +input_devices_evdev input_devices_synaptics ibus
+legacy-systray packagekit pulseaudio +qt4 scim +semantic-desktop"
+
+COMMON_DEPEND="
+	$(add_frameworks_dep attica)
+	$(add_frameworks_dep kactivities)
+	$(add_frameworks_dep kactivities-stats)
+	$(add_frameworks_dep karchive)
+	$(add_frameworks_dep kauth)
+	$(add_frameworks_dep kbookmarks)
+	$(add_frameworks_dep kcmutils)
+	$(add_frameworks_dep kcodecs)
+	$(add_frameworks_dep kcompletion)
+	$(add_frameworks_dep kconfig)
+	$(add_frameworks_dep kconfigwidgets)
+	$(add_frameworks_dep kcoreaddons)
+	$(add_frameworks_dep kdbusaddons)
+	$(add_frameworks_dep kdeclarative)
+	$(add_frameworks_dep kded)
+	$(add_frameworks_dep kdelibs4support)
+	$(add_frameworks_dep kemoticons)
+	$(add_frameworks_dep kglobalaccel)
+	$(add_frameworks_dep kguiaddons)
+	$(add_frameworks_dep ki18n)
+	$(add_frameworks_dep kiconthemes)
+	$(add_frameworks_dep kio)
+	$(add_frameworks_dep kitemmodels)
+	$(add_frameworks_dep kitemviews)
+	$(add_frameworks_dep kjobwidgets)
+	$(add_frameworks_dep knewstuff)
+	$(add_frameworks_dep knotifications)
+	$(add_frameworks_dep knotifyconfig)
+	$(add_frameworks_dep kparts)
+	$(add_frameworks_dep kpeople)
+	$(add_frameworks_dep krunner)
+	$(add_frameworks_dep kservice)
+	$(add_frameworks_dep kwallet)
+	$(add_frameworks_dep kwidgetsaddons)
+	$(add_frameworks_dep kwindowsystem)
+	$(add_frameworks_dep kxmlgui)
+	$(add_frameworks_dep plasma)
+	$(add_frameworks_dep solid)
+	$(add_frameworks_dep sonnet)
+	$(add_plasma_dep kwin)
+	$(add_plasma_dep plasma-workspace)
+	$(add_qt_dep qtconcurrent)
+	$(add_qt_dep qtdbus)
+	$(add_qt_dep qtdeclarative)
+	$(add_qt_dep qtgui)
+	$(add_qt_dep qtnetwork)
+	$(add_qt_dep qtprintsupport)
+	$(add_qt_dep qtsql)
+	$(add_qt_dep qtsvg)
+	$(add_qt_dep qtwidgets)
+	$(add_qt_dep qtx11extras)
+	$(add_qt_dep qtxml)
+	media-libs/phonon[qt5]
+	x11-libs/libX11
+	x11-libs/libXcursor
+	x11-libs/libXfixes
+	x11-libs/libXi
+	x11-libs/libxcb
+	x11-libs/libxkbfile
+	fontconfig? (
+		media-libs/fontconfig
+		media-libs/freetype
+		x11-libs/libXft
+		x11-libs/xcb-util-image
+	)
+	ibus? (
+		$(add_qt_dep qtx11extras)
+		app-i18n/ibus
+		dev-libs/glib:2
+		x11-libs/libxcb
+		x11-libs/xcb-util-keysyms
+	)
+	input_devices_synaptics? ( x11-drivers/xf86-input-synaptics )
+	packagekit? ( >=app-admin/packagekit-qt-0.9.6 )
+	pulseaudio? (
+		dev-libs/glib:2
+		media-libs/libcanberra
+		media-sound/pulseaudio
+	)
+	scim? ( app-i18n/scim )
+	semantic-desktop? ( $(add_frameworks_dep baloo) )
+"
+RDEPEND="${COMMON_DEPEND}
+	$(add_plasma_dep breeze)
+	$(add_plasma_dep kde-cli-tools)
+	$(add_plasma_dep oxygen)
+	$(add_qt_dep qtgraphicaleffects)
+	sys-apps/accountsservice
+	x11-apps/setxkbmap
+	legacy-systray? (
+		gtk2? ( dev-libs/libappindicator:2 )
+		gtk3? ( dev-libs/libappindicator:3 )
+		qt4? ( dev-libs/sni-qt )
+	)
+	pulseaudio? ( $(add_plasma_dep plasma-pa ) )
+	qt4? ( kde-plasma/qguiplatformplugin_kde:4 )
+	!kde-apps/kcontrol
+	!kde-apps/kdepasswd:4
+	!kde-apps/knetattach[handbook]
+	!kde-base/plasma-desktop:4
+	!kde-plasma/plasma-workspace:4
+	!kde-plasma/solid-actions-kcm:4
+	!kde-plasma/systemsettings:4
+	!kde-misc/kcm_touchpad
+	!kde-misc/kcm-touchpad
+	!kde-plasma/kcm-touchpad
+	!<kde-plasma/kdeplasma-addons-5.5.50
+"
+DEPEND="${COMMON_DEPEND}
+	dev-libs/boost
+	x11-proto/xproto
+	fontconfig? ( x11-libs/libXrender )
+	input_devices_evdev? ( x11-drivers/xf86-input-evdev )
+"
+
+REQUIRED_USE="legacy-systray? ( || ( gtk2 gtk3 qt4 ) ) gtk2? ( legacy-systray ) gtk3? ( legacy-systray )"
+
+PATCHES=(
+	# stable branch
+	"${FILESDIR}/${P}-hover-state.patch"
+	"${FILESDIR}/${P}-taskman-memleak.patch"
+	"${FILESDIR}/${P}-crashfix.patch"
+	 #master
+	"${FILESDIR}/${PN}-5.7.90-baloo-optional.patch"
+)
+
+pkg_setup() {
+	if has_version net-im/skype && use legacy-systray && use amd64; then
+		einfo
+		elog "You need to install dev-libs/sni-qt[abi_x86_32] as skype is a 32-bit binary."
+		einfo
+	fi
+}
+
+src_configure() {
+	local mycmakeargs=(
+		$(cmake-utils_use_find_package fontconfig Fontconfig)
+		$(cmake-utils_use_find_package ibus IBus)
+		$(cmake-utils_use_find_package input_devices_evdev Evdev)
+		$(cmake-utils_use_find_package input_devices_synaptics Synaptics)
+		$(cmake-utils_use_find_package packagekit PackageKitQt5)
+		$(cmake-utils_use_find_package pulseaudio PulseAudio)
+		$(cmake-utils_use_find_package scim SCIM)
+		$(cmake-utils_use_find_package semantic-desktop KF5Baloo)
+	)
+
+	kde5_src_configure
+}


             reply	other threads:[~2017-01-08 14:24 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-08 14:24 Andreas Sturmlechner [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-10-08 15:36 [gentoo-commits] repo/gentoo:master commit in: kde-plasma/plasma-desktop/files/, kde-plasma/plasma-desktop/ Andreas Sturmlechner
2023-11-12  9:21 Andreas Sturmlechner
2023-04-10 18:35 Andreas Sturmlechner
2023-03-22 23:01 Andreas Sturmlechner
2022-08-07 20:58 Andreas Sturmlechner
2022-05-29 20:44 Andreas Sturmlechner
2022-02-10 20:10 Andreas Sturmlechner
2022-01-25  9:49 Andreas Sturmlechner
2021-12-10 14:58 Andreas Sturmlechner
2021-02-18 19:56 Andreas Sturmlechner
2021-02-05 10:12 Andreas Sturmlechner
2021-01-24 19:44 Andreas Sturmlechner
2020-09-29 12:49 Andreas Sturmlechner
2020-08-18 17:49 Andreas Sturmlechner
2020-05-16 22:38 Andreas Sturmlechner
2020-05-07 19:57 Andreas Sturmlechner
2019-12-17 23:49 Andreas Sturmlechner
2019-12-17 23:49 Andreas Sturmlechner
2018-10-04 12:23 Andreas Sturmlechner
2018-09-11 16:24 Andreas Sturmlechner
2018-05-18 22:53 Andreas Sturmlechner
2017-02-15 16:59 Johannes Huber
2016-03-13 18:54 Michael Palimaka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1483885379.bf31d2035f1bdc787ab0323ac7cd756f189436d8.asturm@gentoo \
    --to=asturm@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox