From fd9fad082236ed1d5af6c3d37dc4a26e997f52cd Mon Sep 17 00:00:00 2001
From: Michail Vourlakos <mvourlakos@gmail.com>
Date: Mon, 21 Jan 2019 20:16:13 +0200
Subject: [PATCH] IMPORTANT:improve splitter positioning on startup

--when there was only one applet in the Center under
Justify mode then during startup its positioning broke
as it was placed faulty at the far right

BUG: 403469
---
 .../package/contents/code/LayoutManager.js    | 25 ++++++++++++++++---
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/containment/package/contents/code/LayoutManager.js b/containment/package/contents/code/LayoutManager.js
index 2179bef0a..b9d6589bb 100644
--- a/containment/package/contents/code/LayoutManager.js
+++ b/containment/package/contents/code/LayoutManager.js
@@ -62,6 +62,9 @@ function restore() {
 
    // console.log("splitters restored:"+plasmoid.configuration.splitterPosition+ " - " + plasmoid.configuration.splitterPosition2);
     //add the splitters in the correct position if they exist
+
+    var validSplitter1 = -1;
+
     if(plasmoid.configuration.splitterPosition !== -1){
         var missingApplets = 0;
 
@@ -71,19 +74,33 @@ function restore() {
             }
         }
 
-        root.addInternalViewSplitter(plasmoid.configuration.splitterPosition-missingApplets);
+        validSplitter1 = plasmoid.configuration.splitterPosition-missingApplets;
+
+        // console.log("INTERNAL SPLITTER 1 ::: " + plasmoid.configuration.splitterPosition);
+        // console.log("UNDEFINEDSPLITTER 1 ::: " + missingApplets);
+        // console.log("VALID    SPLITTER 1 ::: " + validSplitter1);
+
+        root.addInternalViewSplitter(validSplitter1);
     }
 
     if(plasmoid.configuration.splitterPosition2 !== -1){
         var missingApplets2 = 0;
+        var spacers = plasmoid.configuration.splitterPosition !== -1 ? 1 : 0;
+        var secondPartIndex = plasmoid.configuration.splitterPosition !== -1 ? plasmoid.configuration.splitterPosition+1 : 0;
 
-        for (var i=0; i<plasmoid.configuration.splitterPosition2; ++i) {
-            if (appletsOrder[i] === undefined) {
+        for (var i=secondPartIndex; i<plasmoid.configuration.splitterPosition2; ++i) {
+            if (appletsOrder[i-spacers] === undefined) {
                 missingApplets2 = missingApplets2 + 1;
             }
         }
 
-        root.addInternalViewSplitter(plasmoid.configuration.splitterPosition2-missingApplets2);
+        var validSplitter2 = plasmoid.configuration.splitterPosition2-missingApplets2;
+
+        // console.log("INTERNAL SPLITTER 2 ::: " + plasmoid.configuration.splitterPosition2);
+        // console.log("UNDEFINEDSPLITTER 2 ::: " + missingApplets2);
+        // console.log("VALID    SPLITTER 2 ::: " + validSplitter2);
+
+        root.addInternalViewSplitter(validSplitter2);
     }
 
     //rewrite, so if in the orders there were now invalid ids or if some were missing creates a correct list instead