From 9ae2a088a6205e18abc7456ac75591802737b144 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Wed, 2 Sep 2026 12:03:00 +0200 Subject: [PATCH 1/2] fix(developer): remember presentation when switching platforms in touch layout editor Fixes: #11209 --- developer/src/tike/xml/layoutbuilder/builder.js | 10 +++++++++- developer/src/tike/xml/layoutbuilder/constants.js | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/developer/src/tike/xml/layoutbuilder/builder.js b/developer/src/tike/xml/layoutbuilder/builder.js index 8915308d6f..2e3a0f9aa9 100644 --- a/developer/src/tike/xml/layoutbuilder/builder.js +++ b/developer/src/tike/xml/layoutbuilder/builder.js @@ -10,6 +10,7 @@ $(function() { this.yscale = 1; this.uniqId = 1; + this.lastPresentations = {...this.defaultPresentations}; this.getPresentation = function () { return $('#selPlatformPresentation').val(); @@ -41,6 +42,7 @@ $(function() { } builder.selPlatformPresentationChange = function () { + builder.lastPresentations[builder.lastPlatform] = builder.getPresentation(); let lastSelection = builder.saveSelection(); builder.selectKey(null, false); builder.selectSubKey(null); @@ -493,6 +495,9 @@ $(function() { } var option = $(document.createElement('option')); option.attr('value', i).text(this.presentations[i].name); + if(builder.lastPresentations[builder.lastPlatform] == i) { + option.attr('selected', true); + } listContainer.append(option); } @@ -1079,7 +1084,8 @@ $(function() { var state = { platform: builder.lastPlatform, layer: builder.lastLayerIndex, - presentation: $('#selPlatformPresentation').val() + presentation: $('#selPlatformPresentation').val(), + lastPresentations: builder.lastPresentations, }; var key = builder.selectedKey(); @@ -1119,6 +1125,8 @@ $(function() { $('#selPlatformPresentation').val($('#selPlatformPresentation option:first').val()); } + builder.lastPresentations = {...(data.lastPresentations ?? this.defaultPresentations)}; + let selection = builder.saveSelection(); builder.prepareLayer(); builder.restoreSelection(selection); diff --git a/developer/src/tike/xml/layoutbuilder/constants.js b/developer/src/tike/xml/layoutbuilder/constants.js index 117020e5d5..d3fd02667e 100644 --- a/developer/src/tike/xml/layoutbuilder/constants.js +++ b/developer/src/tike/xml/layoutbuilder/constants.js @@ -631,6 +631,8 @@ $(function() { "desktop": { "x": 640, "y": 300, "name": "Desktop" }, }; + this.defaultPresentations = { "tablet": "tablet-ipad-landscape", "phone": "phone-iphone5-landscape", "desktop": "desktop" }; + this.keyMargin = 15; // from kmwosk.js: From cdd0f7370c372459b8a93e4bc116a04d9a7c5202 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Wed, 2 Sep 2026 12:10:41 +0200 Subject: [PATCH 2/2] fix(developer): remember layer when switching platforms in touch layout editor Remembers the last selected layer for each platform. Fixes: #11209 --- developer/src/tike/xml/layoutbuilder/builder.js | 5 ++++- developer/src/tike/xml/layoutbuilder/layer-controls.js | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/developer/src/tike/xml/layoutbuilder/builder.js b/developer/src/tike/xml/layoutbuilder/builder.js index 2e3a0f9aa9..b81707fa3c 100644 --- a/developer/src/tike/xml/layoutbuilder/builder.js +++ b/developer/src/tike/xml/layoutbuilder/builder.js @@ -11,6 +11,7 @@ $(function() { this.uniqId = 1; this.lastPresentations = {...this.defaultPresentations}; + this.lastLayers = {}; this.getPresentation = function () { return $('#selPlatformPresentation').val(); @@ -502,7 +503,7 @@ $(function() { } builder.prepareLayers(); - builder.selectLayer(0); + builder.selectLayer(builder.lastLayers[builder.lastPlatform] ?? 0); } this.selectLayer = function (val) { @@ -1086,6 +1087,7 @@ $(function() { layer: builder.lastLayerIndex, presentation: $('#selPlatformPresentation').val(), lastPresentations: builder.lastPresentations, + lastLayers: builder.lastLayers, }; var key = builder.selectedKey(); @@ -1126,6 +1128,7 @@ $(function() { } builder.lastPresentations = {...(data.lastPresentations ?? this.defaultPresentations)}; + builder.lastLayers = {...(data.lastLayers ?? {})}; let selection = builder.saveSelection(); builder.prepareLayer(); diff --git a/developer/src/tike/xml/layoutbuilder/layer-controls.js b/developer/src/tike/xml/layoutbuilder/layer-controls.js index 0f1797d413..765aa5c2bd 100644 --- a/developer/src/tike/xml/layoutbuilder/layer-controls.js +++ b/developer/src/tike/xml/layoutbuilder/layer-controls.js @@ -174,6 +174,7 @@ $(function() { }); $('#selLayer').change(function () { + builder.lastLayers[builder.lastPlatform] = $('#selLayer').val(); if (builder.lastPlatform) builder.generate(false,false); let selection = builder.saveSelection(); builder.selectLayer();