diff -r e3a29c5b74c4 -r d5ff60e906b0 svghmi/svghmi.js --- a/svghmi/svghmi.js Fri Oct 28 10:42:35 2022 +0200 +++ b/svghmi/svghmi.js Fri Nov 04 10:51:45 2022 +0100 @@ -428,6 +428,19 @@ e.preventDefault(); }); +var screensaver_timer = null; +function reset_screensaver_timer() { + if(screensaver_timer){ + window.clearTimeout(screensaver_timer); + } + screensaver_timer = window.setTimeout(() => { + switch_page("ScreenSaver"); + screensaver_timer = null; + }, screensaver_delay*1000); +} +if(screensaver_delay) + document.body.addEventListener('pointerdown', reset_screensaver_timer); + function detach_detachables() { for(let eltid in detachable_elements){ @@ -497,9 +510,12 @@ jumps_need_update = true; requestHMIAnimation(); - jump_history.push([page_name, page_index]); - if(jump_history.length > 42) - jump_history.shift(); + let [last_page_name, last_page_index] = jump_history[jump_history.length-1]; + if(last_page_name != page_name || last_page_index != page_index){ + jump_history.push([page_name, page_index]); + if(jump_history.length > 42) + jump_history.shift(); + } apply_hmi_value(current_page_var_index, page_index == undefined ? page_name @@ -585,6 +601,9 @@ // show main page switch_page(default_page); +// initialize screensaver +reset_screensaver_timer(); + var reconnect_delay = 0; var periodic_reconnect_timer;