Region tints follow the search filter: visible-only edge strokes

buildRegions filtered everything by visibility except the
intra-cluster edge strokes: with a search active, edges between
filtered-out nodes were still stroked into the bitmap — which had
already shrunk to the visible members — and segments crossing that
rect cut diagonal hue streaks from other clusters across the
filtered regions. Strokes now require both endpoints visible, same
law as the world rect, member discs, and label anchors. The
no-double-counting rule survives: a member touched only by a
partially-invisible edge gets its disc.
This commit is contained in:
amosblomqvist
2026-09-14 03:23:20 +03:00
parent b42fdbec1e
commit f3a3d69401
+5
View File
@@ -1124,6 +1124,11 @@ export class GraphCanvasRenderer {
for (const e of data.edges) {
if (clusterOf.get(e.from) !== ci) continue;
if (clusterOf.get(e.to) !== ci) continue;
// Search filter: stroke only fully-visible edges. Invisible-node
// segments still stroked into the (visible-only) bitmap cut
// diagonal hue streaks across other clusters' regions (user-
// reported 2026-09-14) — rect, discs, and anchors already filter.
if (!isVisible(e.from) || !isVisible(e.to)) continue;
const a = this.nodeById.get(e.from);
const b = this.nodeById.get(e.to);
if (!a || !b) continue;