iconlaunch - Precache icons and only clear if needed

pull/2895/head
Martin Boonk 2023-07-22 12:32:53 +02:00
parent 76425b947b
commit 3adc3f8fba
1 changed files with 2 additions and 2 deletions

View File

@ -41,6 +41,7 @@
if (!launchCache.items[i]) if (!launchCache.items[i])
launchCache.items.push([]); launchCache.items.push([]);
launchCache.items[Math.floor(count/3)].push(c); launchCache.items[Math.floor(count/3)].push(c);
c.icondata = s.read(c.icon);
count++; count++;
} }
@ -53,7 +54,6 @@
let drawItem = function(itemI, r) { let drawItem = function(itemI, r) {
let t = Date.now(); let t = Date.now();
g.clearRect(r.x, r.y, r.x + r.w - 1, r.y + r.h - 1);
let x = 0; let x = 0;
let firstApp = itemI * appsN; let firstApp = itemI * appsN;
let numberOfApps = appsN * (itemI + 1); let numberOfApps = appsN * (itemI + 1);
@ -69,7 +69,6 @@
if (!currentApp.icon) { if (!currentApp.icon) {
g.setFontAlign(0, 0, 0).setFont("12x20:2").drawString("?", x + r.x + iconSize / 2, r.y + iconSize / 2); g.setFontAlign(0, 0, 0).setFont("12x20:2").drawString("?", x + r.x + iconSize / 2, r.y + iconSize / 2);
} else { } else {
if (!currentApp.icondata) currentApp.icondata = s.read(currentApp.icon);
layers.push({x:x+r.x,y:r.y,image:currentApp.icondata}); layers.push({x:x+r.x,y:r.y,image:currentApp.icondata});
} }
if (selectedItem == i) { if (selectedItem == i) {
@ -83,6 +82,7 @@
} }
x += iconSize; x += iconSize;
} }
if (selectedRect) g.clearRect(r.x, r.y, r.x + r.w - 1, r.y + r.h - 1);
g.drawImages(layers); g.drawImages(layers);
if (selectedRect) g.drawRect.apply(null, selectedRect); if (selectedRect) g.drawRect.apply(null, selectedRect);
if (selectedApp) drawText(itemI, r.y, selectedApp); if (selectedApp) drawText(itemI, r.y, selectedApp);