iconlaunch - Go back to caching icons on demand but keep presorting apps into items

master
Martin Boonk 2023-07-25 21:51:11 +02:00
parent a9fff20477
commit 94bb93c19e
1 changed files with 19 additions and 17 deletions

View File

@ -45,33 +45,33 @@
const iconYoffset = Math.floor(whitespace/4)-1;
const itemSize = iconSize + whitespace;
let t = Date.now();
launchCache.items = {};
for (let c of launchCache.apps){
let i = Math.floor(count/appsN);
if (!launchCache.items[i])
launchCache.items[i] = {};
launchCache.items[i].push(count%3);
if (c.icon)
c.icondata = s.read(c.icon);
else
c.icondata = ICON_MISSING;
launchCache.items[i][(count%3)] = c;
count++;
}
let texted;
let drawItem = function(itemI, r) {
let x = 0;
let apps = launchCache.items[itemI];
let x = whitespace;
let i = itemI * appsN - 1;
let selectedApp;
let currentApp;
let c;
let selectedRect;
for (currentApp of apps) {
let item = launchCache.items[itemI];
if (texted == itemI){
g.clearRect(r.x, r.y, r.x + r.w - 1, r.y + r.h - 1);
texted = undefined;
}
for (c of item) {
i++;
x += whitespace;
g.drawImage(currentApp.icondata,x + r.x - 1, r.y + iconYoffset - 1, x + r.x + iconSize, r.y + iconYoffset + iconSize);
let id = c.icondata || (c.iconData = (c.icon ? s.read(c.icon) : ICON_MISSING));
g.drawImage(id,x + r.x - 1, r.y + iconYoffset - 1, x + r.x + iconSize, r.y + iconYoffset + iconSize);
if (selectedItem == i) {
selectedApp = currentApp;
selectedApp = c;
selectedRect = [
x + r.x - 1,
r.y + iconYoffset - 1,
@ -79,11 +79,13 @@
r.y + iconYoffset + iconSize
];
}
x += iconSize;
x += iconSize + whitespace;
}
if (selectedRect) {
g.drawRect.apply(null, selectedRect);
drawText(itemI, r.y, selectedApp);
texted=itemI;
}
if (selectedRect) g.clearRect(r.x, r.y, r.x + r.w - 1, r.y + r.h - 1);
if (selectedRect) g.drawRect.apply(null, selectedRect);
if (selectedApp) drawText(itemI, r.y, selectedApp);
};
let drawText = function(i, appY, selectedApp) {