widget_utils: only `setLCDOverlay` if present

Fixes #3830
master
Rob Pilling 2025-04-26 11:13:07 +01:00
parent f1c03e4e72
commit c11a322fc3
1 changed files with 13 additions and 11 deletions

View File

@ -30,7 +30,7 @@ exports.show = function() {
/// Remove anything not needed if the overlay was removed
exports.cleanupOverlay = function() {
exports.offset = -24;
Bangle.setLCDOverlay(undefined, {id: "widget_utils"});
Bangle.setLCDOverlay && Bangle.setLCDOverlay(undefined, {id: "widget_utils"});
delete exports.autohide;
delete Bangle.appRect;
if (exports.animInterval) {
@ -92,15 +92,17 @@ exports.swipeOn = function(autohide) {
const o = exports.offset;
Bangle.appRect.y = o+24;
Bangle.appRect.h = 1 + Bangle.appRect.y2 - Bangle.appRect.y;
if (o>-24) {
Bangle.setLCDOverlay(og, 0, o, {
id:"widget_utils",
remove:()=>{
require("widget_utils").cleanupOverlay();
}
});
} else {
Bangle.setLCDOverlay(undefined, {id: "widget_utils"});
if (Bangle.setLCDOverlay) {
if (o>-24) {
Bangle.setLCDOverlay(og, 0, o, {
id:"widget_utils",
remove:()=>{
require("widget_utils").cleanupOverlay();
}
});
} else {
Bangle.setLCDOverlay(undefined, {id: "widget_utils"});
}
}
}