From b5e688b35a9ff8588ab1bbd4905752fddedbabd7 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Fri, 6 Nov 2020 22:30:22 +0100
Subject: [PATCH] Fixed #8 - firefox grid position bug (sort tiles by x,y)

---
 src/logic/page/PageInstance.py | 3 +++
 src/templates/page.html        | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/logic/page/PageInstance.py b/src/logic/page/PageInstance.py
index 9c3b1c7..fc04960 100644
--- a/src/logic/page/PageInstance.py
+++ b/src/logic/page/PageInstance.py
@@ -14,3 +14,6 @@ class TileLayoutSettings:
 class PageInstance:
     uniqueName: str
     tileLayouts: Dict[str, TileLayoutSettings]
+
+    def get_tile_layouts_sorted(self):
+        return {k: v for k, v in sorted(self.tileLayouts.items(), key=lambda item: item)}
diff --git a/src/templates/page.html b/src/templates/page.html
index 470c143..4cdfb8e 100644
--- a/src/templates/page.html
+++ b/src/templates/page.html
@@ -16,7 +16,7 @@
     </head>
     <body>
         <div class="grid-stack">
-            {% for tileName, tileLayoutSettings in page.tileLayouts.items() %}
+            {% for tileName, tileLayoutSettings in page.get_tile_layouts_sorted().items() %}
                 <div class="grid-stack-item"
                      id="tile-{{ page.uniqueName | replace(' ', '_') }}_{{ tileName }}"
                      data-gs-x="{{ tileLayoutSettings.x }}" data-gs-y="{{ tileLayoutSettings.y }}"
-- 
GitLab