diff options
Diffstat (limited to 'kde-plasma/plasma-desktop/files')
3 files changed, 133 insertions, 0 deletions
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 000000000000..9e4bdd99f5c4 --- /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 000000000000..5e645c51b063 --- /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 000000000000..b112edced777 --- /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); |