diff --git a/containment/package/contents/ui/applet/AppletHiddenSpacer.qml b/containment/package/contents/ui/applet/AppletHiddenSpacer.qml index 09895dd62..7584befc7 100644 --- a/containment/package/contents/ui/applet/AppletHiddenSpacer.qml +++ b/containment/package/contents/ui/applet/AppletHiddenSpacer.qml @@ -34,19 +34,7 @@ Item{ property bool neighbourSeparator: false; - //in case there is a neighbour internal separator - property int separatorSpace: ((root.latteApplet && root.latteApplet.hasInternalSeparator && !root.latteApplet.internalSeparatorHidden - && neighbourTaskInternalSeparator) || neighbourSeparator) - && !container.isSeparator && !container.latteApplet ? (2+root.iconMargin/2) : 0 - - property bool neighbourTaskInternalSeparator: { - if (!root.latteApplet){ - return false; - } - - return rightSpacer ? root.latteApplet.internalSeparatorPos === 0 && index===root.latteAppletPos-1 : - root.latteApplet.internalSeparatorPos === root.tasksCount-1 && index===root.latteAppletPos+1; - } + property int separatorSpace: neighbourSeparator && !container.isSeparator && !container.latteApplet ? (2+root.iconMargin/2) : 0 property real nHiddenSize: (nScale > 0) ? (container.spacersMaxSize * nScale) + separatorSpace : separatorSpace diff --git a/plasmoid/package/contents/ui/ParabolicManager.qml b/plasmoid/package/contents/ui/ParabolicManager.qml index 34f668992..5a0ecce5d 100644 --- a/plasmoid/package/contents/ui/ParabolicManager.qml +++ b/plasmoid/package/contents/ui/ParabolicManager.qml @@ -29,9 +29,11 @@ Item { id: parManager property bool hasInternalSeparator: false - property bool internalSeparatorHidden: (internalSeparatorPos === 0) || (internalSeparatorPos === root.tasksCount - 1) property int internalSeparatorPos: -1 + property int firstRealTaskIndex: -1 + property int lastRealTaskIndex: -1 + //tasks that change state (launcher,startup,window) and //at the next state must look the same //(id, mScale) @@ -289,9 +291,16 @@ Item { updated = true; } + //if (separators.length > 0) + // console.log(separators[0].launcherUrl+ " _________ " + separators[0].index); + if (updated) { + //console.log("message sent..."); hasInternalSeparator = separators.length > 0; internalSeparatorPos = hasInternalSeparator ? separators[0].index : -1; + firstRealTaskIndex = firstRealTask(); + lastRealTaskIndex = lastRealTask(); + root.separatorsUpdated(); } } @@ -329,9 +338,46 @@ Item { return (launcher.indexOf("latte-separator")!==-1 && launcher.indexOf(".desktop")!==1); } - function taskIsSeparator(index){ - var child = icList.childAtIndex(index); + function taskIsSeparator(taskIndex){ + for (var i=0; i=0) { + if (!taskIsSeparator(i)) { + return i; + } + + i = i - 1; + } + } - return (child !== undefined ? child.isSeparator : false); + return -1; } } diff --git a/plasmoid/package/contents/ui/main.qml b/plasmoid/package/contents/ui/main.qml index 5d7188530..102b5cf88 100644 --- a/plasmoid/package/contents/ui/main.qml +++ b/plasmoid/package/contents/ui/main.qml @@ -61,7 +61,6 @@ Item { property bool disableRestoreZoom: false //blocks restore animation in rightClick property bool dropNewLauncher: false readonly property bool hasInternalSeparator: parabolicManager.hasInternalSeparator - readonly property bool internalSeparatorHidden: parabolicManager.internalSeparatorHidden property bool inActivityChange: false property bool initializationStep: false //true property bool initializatedBuffers: true // noInitCreatedBuffers >= tasksStarting ? true : false diff --git a/plasmoid/package/contents/ui/task/TaskDelegate.qml b/plasmoid/package/contents/ui/task/TaskDelegate.qml index e463ef986..2ea818b4e 100644 --- a/plasmoid/package/contents/ui/task/TaskDelegate.qml +++ b/plasmoid/package/contents/ui/task/TaskDelegate.qml @@ -239,7 +239,9 @@ MouseArea{ anchors.top: root.position === PlasmaCore.Types.TopPositioned ? parent.top : undefined; anchors.bottom: root.position === PlasmaCore.Types.BottomPositioned ? parent.bottom : undefined; - opacity: separatorShadow.active || root.internalSeparatorHidden ? 0 : 0.4 + //opacity: separatorShadow.active || root.internalSeparatorHidden ? 0 : 0.4 + opacity: separatorShadow.active ? 0 : 0.4 + visible: mainItemContainer.isSeparator width: root.vertical ? root.iconSize : (root.dragSource) ? 5+root.iconMargin: 1 @@ -272,7 +274,8 @@ MouseArea{ id: separatorShadow anchors.fill: separatorItem active: root.enableShadows && isSeparator - opacity: root.internalSeparatorHidden ? 0 : 0.4 + //opacity: root.internalSeparatorHidden ? 0 : 0.4 + opacity: 0.4 Behavior on opacity { NumberAnimation { duration: root.durationTime*units.longDuration } diff --git a/plasmoid/package/contents/ui/task/TaskHiddenSpacer.qml b/plasmoid/package/contents/ui/task/TaskHiddenSpacer.qml index b885f8f3f..f9b1bded0 100644 --- a/plasmoid/package/contents/ui/task/TaskHiddenSpacer.qml +++ b/plasmoid/package/contents/ui/task/TaskHiddenSpacer.qml @@ -35,10 +35,8 @@ Item{ //in case there is a neighbour separator, lastValidIndex is used in order to protect from false //when the task is removed property int indexUsed: index === -1 ? lastValidIndex : index - property int separatorSpace: ((parabolicManager.internalSeparatorPos !== -1 - && !root.internalSeparatorHidden - && parabolicManager.internalSeparatorPos === (rightSpacer ? indexUsed + 1 : indexUsed-1)) - || neighbourSeparator) && !isSeparator && !showWindowAnimation.running ? + property int separatorSpace: neighbourSeparator && !isSeparator && !showWindowAnimation.running + && !(parabolicManager.hasInternalSeparator && root.dragSource) ? (2+root.iconMargin/2) : 0 property bool rightSpacer: false @@ -57,23 +55,27 @@ Item{ //index===-1 indicates that this item is removed if (latteDock && index!==-1) { if (!rightSpacer) { - hiddenSpacer.neighbourSeparator = (latteDock.parabolicManager.isSeparator(latteDock.latteAppletPos-1) - && (indexUsed===0 || (indexUsed===1 && root.internalSeparatorPos===0 && root.internalSeparatorHidden))) - || (parabolicManager.taskIsSeparator(itemIndex-1) && !isSeparator); + neighbourSeparator = (parabolicManager.taskIsSeparator(itemIndex-1) && !isSeparator) + || (latteDock.parabolicManager.isSeparator(latteDock.latteAppletPos-1) && parabolicManager.firstRealTaskIndex === itemIndex); } else { - hiddenSpacer.neighbourSeparator = (latteDock.parabolicManager.isSeparator(latteDock.latteAppletPos+1) - && ( indexUsed===root.tasksCount-1 || (indexUsed===root.tasksCount-2 && indexUsed>=0 - && root.internalSeparatorPos===root.tasksCount-1 - && root.internalSeparatorHidden))) - || (parabolicManager.taskIsSeparator(itemIndex+1)); + neighbourSeparator = (parabolicManager.taskIsSeparator(itemIndex+1) && !isSeparator) + || (latteDock.parabolicManager.isSeparator(latteDock.latteAppletPos+1) && parabolicManager.lastRealTaskIndex === itemIndex ); } + + /* if (launcherUrl.indexOf("kwrite") > -1 || launcherUrl.indexOf("dolphin") > -1 ) { + var spacerName = "left"; + if (rightSpacer) + spacerName = "right"; + + console.log(launcherUrl +":" + itemIndex +"," + spacerName + " _-_- " +neighbourSeparator); + }*/ } } Connections{ target: root onLatteDockChanged: hiddenSpacer.updateNeighbour(); - onInternalSeparatorHiddenChanged: hiddenSpacer.updateNeighbour(); + // onInternalSeparatorHiddenChanged: hiddenSpacer.updateNeighbour(); onSeparatorsUpdated: hiddenSpacer.updateNeighbour(); } @@ -110,7 +112,7 @@ Item{ NumberAnimation { duration: root.directRenderAnimationTime } } - /*Rectangle{ + Rectangle{ width: !root.vertical ? parent.width : 1 height: !root.vertical ? 1 : parent.height x: root.vertical ? parent.width /2 : 0 @@ -118,5 +120,5 @@ Item{ border.width: 1 border.color: "red" color: "transparent" - }*/ + } }