summaryrefslogtreecommitdiff
path: root/src/web
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-15 15:33:30 -0300
committerGabriel Schneider <[email protected]>2026-09-15 17:24:42 -0300
commit8ac4a48a2e8e66a9e72bcbc61c114be8db9215fd (patch)
tree4c48ecd42a800b12daed0712a4620639d1631f7e /src/web
parentc1787ff868ee723629c1d500098d36dc419f77c3 (diff)
downloadpardes-8ac4a48a2e8e66a9e72bcbc61c114be8db9215fd.tar.gz
pardes-8ac4a48a2e8e66a9e72bcbc61c114be8db9215fd.zip
Separate discontinuous pinned source context with thin borders
Diffstat (limited to 'src/web')
-rw-r--r--src/web/app.mjs12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/web/app.mjs b/src/web/app.mjs
index 8e08c9d4..312627df 100644
--- a/src/web/app.mjs
+++ b/src/web/app.mjs
@@ -99,7 +99,7 @@ export class DomRenderer {
if (!ptr) continue;
const view = new DataView(this.wasm.memory.buffer, ptr, rows * cols * CELL_SIZE);
const bytes = new Uint8Array(this.wasm.memory.buffer);
- const geometry = [bw,bh,tw,th,...Array.from({length:11},(_,field)=>val(field))].join(":");
+ const geometry = [bw,bh,tw,th,...Array.from({length:11+contexts},(_,field)=>val(field))].join(":");
const encoded = bytes.subarray(ptr,ptr+rows*cols*CELL_SIZE);
const cached = this.layerNodes.get(i);
if (cached && cached.geometry===geometry && cached.bytes.length===encoded.length && cached.bytes.every((byte,index)=>byte===encoded[index])) {
@@ -130,9 +130,13 @@ export class DomRenderer {
}
layer.append(line);
}
- const border = this.root.ownerDocument.createElement("div");
- border.style.cssText = `position:absolute;left:0;right:0;top:${contexts*th}px;height:1px;background:currentColor;opacity:.45`;
- layer.append(border);
+ for (let row = 0; row < contexts; row++) {
+ if (!val(11 + row)) continue;
+ const border = this.root.ownerDocument.createElement("div");
+ border.dataset.contextBorder = String(row);
+ border.style.cssText = `position:absolute;left:0;right:0;top:${(row+1)*th}px;height:1px;background:currentColor;opacity:.45`;
+ layer.append(border);
+ }
this.layerNodes.set(i,{geometry,bytes:encoded.slice(),node:layer});
nodes.push(layer);
}