diff --git a/containment/contents/code/LayoutManager.js b/containment/contents/code/LayoutManager.js index 5c9c10172..156ccefea 100644 --- a/containment/contents/code/LayoutManager.js +++ b/containment/contents/code/LayoutManager.js @@ -19,6 +19,8 @@ */ var layout; +var layoutS; +var layoutE; var root; var plasmoid; var lastSpacer; @@ -98,8 +100,9 @@ function save() { var ids = new Array(); var splitterExists = false; var splitterExists2 = false; - for (var i = 0; i < layout.children.length; ++i) { - var child = layout.children[i]; + + for (var i = 0; i < layoutS.children.length; ++i) { + var child = layoutS.children[i]; if (child.applet && !child.isInternalViewSplitter) { ids.push(child.applet.id); @@ -112,6 +115,34 @@ function save() { } } + for (var i = 0; i < layout.children.length; ++i) { + var child = layout.children[i]; + + if (child.applet && !child.isInternalViewSplitter) { + ids.push(child.applet.id); + } else if(child.isInternalViewSplitter && plasmoid.configuration.panelPosition === 10 && !splitterExists){ + splitterExists = true; + plasmoid.configuration.splitterPosition = i + layoutS.children.length; + } else if(child.isInternalViewSplitter && plasmoid.configuration.panelPosition === 10 && splitterExists){ + splitterExists2 = true; + plasmoid.configuration.splitterPosition2 = i + layoutS.children.length; + } + } + + for (var i = 0; i < layoutE.children.length; ++i) { + var child = layoutE.children[i]; + + if (child.applet && !child.isInternalViewSplitter) { + ids.push(child.applet.id); + } else if(child.isInternalViewSplitter && plasmoid.configuration.panelPosition === 10 && !splitterExists){ + splitterExists = true; + plasmoid.configuration.splitterPosition = i + layoutS.children.length + layout.children.length; + } else if(child.isInternalViewSplitter && plasmoid.configuration.panelPosition === 10 && splitterExists){ + splitterExists2 = true; + plasmoid.configuration.splitterPosition2 = i + layoutS.children.length + layout.children.length; + } + } + if(!splitterExists && !inRestore) plasmoid.configuration.splitterPosition = -1; diff --git a/containment/contents/ui/main.qml b/containment/contents/ui/main.qml index 652e332c9..fa7dbaa1d 100644 --- a/containment/contents/ui/main.qml +++ b/containment/contents/ui/main.qml @@ -495,6 +495,8 @@ DragDrop.DropArea { LayoutManager.plasmoid = plasmoid; LayoutManager.root = root; LayoutManager.layout = mainLayout; + LayoutManager.layoutS = startLayout; + layoutManager.layoutE = endLayout; LayoutManager.lastSpacer = lastSpacer; LayoutManager.restore(); plasmoid.action("configure").visible = !plasmoid.immutable;