powermanager - Fix widget drawing over other things if widgets hidden
parent
8b7a63b718
commit
b58b0133aa
|
|
@ -70,17 +70,28 @@ currently-running apps */
|
||||||
GU.fillArc(g, w.x + 12, w.y + 12, 5.5, 8, GU.degreesToRadians(135), GU.degreesToRadians(endCpu), GU.degreesToRadians(30));
|
GU.fillArc(g, w.x + 12, w.y + 12, 5.5, 8, GU.degreesToRadians(135), GU.degreesToRadians(endCpu), GU.degreesToRadians(30));
|
||||||
}
|
}
|
||||||
let sTimeout;
|
let sTimeout;
|
||||||
|
let s2Timeout;
|
||||||
|
let systickDiff;
|
||||||
function draw(w) {
|
function draw(w) {
|
||||||
|
let nextRefresh = Bangle.isLocked() ? ((s.refreshLocked || 60) * 1000 ): ((s.refreshUnlocked || 1) * 1000)
|
||||||
|
|
||||||
|
if (s2Timeout) clearTimeout(s2Timeout);
|
||||||
if (sTimeout) clearTimeout(sTimeout);
|
if (sTimeout) clearTimeout(sTimeout);
|
||||||
let systickNow = peek32(0xE000E018);
|
|
||||||
let t = Date.now();
|
let t,systickNow;
|
||||||
sTimeout = setTimeout(() => {
|
sTimeout = setTimeout(()=>{
|
||||||
|
systickNow = peek32(0xE000E018);
|
||||||
|
t = Date.now();
|
||||||
|
}, nextRefresh - SYSTICKWAIT - 100);
|
||||||
|
|
||||||
|
s2Timeout = setTimeout(() => {
|
||||||
let tLater = Date.now();
|
let tLater = Date.now();
|
||||||
let systickLater = peek32(0xE000E018);
|
let systickLater = peek32(0xE000E018);
|
||||||
let systickDiff = systickLater - systickNow;
|
systickDiff = systickLater - systickNow;
|
||||||
if (systickDiff < 0) systickDiff += SYSTICKMAX;
|
if (systickDiff < 0) systickDiff += SYSTICKMAX;
|
||||||
doDraw(w, 1 - systickDiff/SYSTICKMAX);
|
}, nextRefresh - 100);
|
||||||
}, SYSTICKWAIT);
|
|
||||||
|
doDraw(w, systickDiff ? (1 - systickDiff/SYSTICKMAX) : 0);
|
||||||
|
|
||||||
if (w.timeoutId !== undefined) {
|
if (w.timeoutId !== undefined) {
|
||||||
clearTimeout(w.timeoutId);
|
clearTimeout(w.timeoutId);
|
||||||
|
|
@ -88,7 +99,7 @@ currently-running apps */
|
||||||
w.timeoutId = setTimeout(() => {
|
w.timeoutId = setTimeout(() => {
|
||||||
w.timeoutId = undefined;
|
w.timeoutId = undefined;
|
||||||
w.draw(w);
|
w.draw(w);
|
||||||
}, Bangle.isLocked() ? ((s.refreshLocked || 60) * 1000 ): ((s.refreshUnlocked || 1) * 1000));
|
}, nextRefresh);
|
||||||
}
|
}
|
||||||
|
|
||||||
// add your widget
|
// add your widget
|
||||||
|
|
@ -98,7 +109,7 @@ currently-running apps */
|
||||||
draw: draw
|
draw: draw
|
||||||
};
|
};
|
||||||
|
|
||||||
Bangle.on("lock", ()=>{draw(WIDGETS.powermanager);});
|
Bangle.on("lock", ()=>{WIDGETS.powermanager.draw(WIDGETS.powermanager);});
|
||||||
|
|
||||||
// conserve memory
|
// conserve memory
|
||||||
delete settings;
|
delete settings;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue