From 31be277e1783c77e1524a59d4098ee680a4bdad5 Mon Sep 17 00:00:00 2001 From: Michail Vourlakos <mvourlakos@gmail.com> Date: Sun, 21 May 2017 19:47:06 +0300 Subject: [PATCH] include userswitcher in applet heuristic algorithm --- .../package/contents/ui/applet/AppletItem.qml | 53 ++++++++++++++----- 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/containment/package/contents/ui/applet/AppletItem.qml b/containment/package/contents/ui/applet/AppletItem.qml index 047e1e445..15f4c6309 100644 --- a/containment/package/contents/ui/applet/AppletItem.qml +++ b/containment/package/contents/ui/applet/AppletItem.qml @@ -226,32 +226,61 @@ Item { //! searching to find for that applet the first IconItem //! which is going to be used in order to deactivate its active //! from our MouseArea - for(var i=0; i<applet.children.length; ++i){ - for(var j=0; j<applet.children[i].children.length; ++j){ - if (typeOf(applet.children[i].children[j], "IconItem")) { - appletIconItem = applet.children[i].children[j]; + var level0 = applet.children; + + for(var i=0; i<level0.length; ++i){ + var level1 = level0[i].children; + for(var j=0; j<level1.length; ++j){ + if (typeOf(level1[j], "IconItem")) { + appletIconItem = level1[j]; return; - } else if (typeOf(applet.children[i].children[j], "CompactRepresentation")) { - for(var k=0; k<applet.children[i].children[j].children.length; ++k){ - if (typeOf(applet.children[i].children[j].children[k], "IconItem")) { - appletIconItem = applet.children[i].children[j].children[k]; + } else if (typeOf(level1[j], "CompactRepresentation")) { + var level2 = level1[j].children; + for(var k=0; k<level2.length; ++k){ + if (typeOf(level2[k], "IconItem")) { + appletIconItem = level2[k]; return; } } } else if (applet.pluginName === "org.kde.plasma.kickoff") { - if (typeOf(applet.children[i].children[j], "QQuickMouseArea")) { - for(var k=0; k<applet.children[i].children[j].children.length; ++k){ - if (typeOf(applet.children[i].children[j].children[k], "IconItem")) { - appletIconItem = applet.children[i].children[j].children[k]; + if (typeOf(level1[j], "QQuickMouseArea")) { + var level2 = level1[j].children; + for(var k=0; k<level2.length; ++k){ + if (typeOf(level2[k], "IconItem")) { + appletIconItem = level2[k]; return; } } } + } else if (applet.pluginName === "org.kde.plasma.userswitcher"&& !root.behaveAsPlasmaPanel && !container.lockZoom) { + if (typeOf(level1[j], "QQuickMouseArea")) { + var level2 = level1[j].children; + for(var k=0; k<level2.length; ++k){ + if (typeOf(level2[k], "QQuickRow")) { + var iconIt; + var labelIt; + var level3 = level2[k].children; + + for(var r=0; r<level3.length; ++r){ + if (typeOf(level3[r], "IconItem")) { + iconIt = level3[r]; + } else if (typeOf(level3[r], "QQuickText")) { + labelIt = level3[r]; + } + } + if (iconIt && labelIt && !labelIt.visible){ + appletIconItem = iconIt; + return; + } + } + } + } } } } } + function typeOf(obj, className){ var name = obj.toString(); //if (applet.pluginName === "set a plugin name to debug")