kingkont 0.20.11 → 0.20.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/renderer/board.js +19 -15
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kingkont",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.12",
|
|
4
4
|
"description": "KingKont \u00b7 Chatium \u2014 \u043d\u043e\u0434-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0441\u0446\u0435\u043d \u0441 AI-\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 (\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438/\u0432\u0438\u0434\u0435\u043e/\u0433\u043e\u043b\u043e\u0441/SFX/\u043c\u0443\u0437\u044b\u043a\u0430/\u0442\u0435\u043a\u0441\u0442)",
|
|
5
5
|
"main": "main.js",
|
|
6
6
|
"bin": {
|
package/renderer/board.js
CHANGED
|
@@ -3175,27 +3175,31 @@ function _autoScrollToNodesIfHidden(padX, padY) {
|
|
|
3175
3175
|
const nodes = board.metadata.nodes || [];
|
|
3176
3176
|
if (!nodes.length)
|
|
3177
3177
|
return;
|
|
3178
|
-
// Считаем bbox в canvas-coords.
|
|
3179
|
-
let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
|
|
3180
|
-
for (const n of nodes) {
|
|
3181
|
-
const w = n.width || 280, h = n.height || 220;
|
|
3182
|
-
minX = Math.min(minX, n.x);
|
|
3183
|
-
minY = Math.min(minY, n.y);
|
|
3184
|
-
maxX = Math.max(maxX, n.x + w);
|
|
3185
|
-
maxY = Math.max(maxY, n.y + h);
|
|
3186
|
-
}
|
|
3187
3178
|
const z = state.zoom || 1;
|
|
3188
|
-
// Видимое окно в canvas-coords (viewport / zoom).
|
|
3189
3179
|
const wrap = canvasWrap;
|
|
3180
|
+
// Видимое окно в canvas-coords (viewport / zoom).
|
|
3190
3181
|
const viewLeft = (wrap.scrollLeft - padX) / z;
|
|
3191
3182
|
const viewTop = (wrap.scrollTop - padY) / z;
|
|
3192
3183
|
const viewRight = viewLeft + wrap.clientWidth / z;
|
|
3193
3184
|
const viewBottom = viewTop + wrap.clientHeight / z;
|
|
3194
|
-
//
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3185
|
+
// Раньше проверяли пересечение viewport'а с BBOX всех нод — для нод
|
|
3186
|
+
// в углах (0,0) и (5000,5000) bbox покрывал ВЕСЬ canvas → false-positive
|
|
3187
|
+
// «не trigger'им». Теперь спрашиваем: есть ли ХОТЯ БЫ ОДНА нода хоть
|
|
3188
|
+
// частично внутри viewport'а? Если нет — центрируем на bbox-у нод.
|
|
3189
|
+
let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
|
|
3190
|
+
let anyVisible = false;
|
|
3191
|
+
for (const n of nodes) {
|
|
3192
|
+
const w = n.width || 280, h = n.height || 220;
|
|
3193
|
+
const nL = n.x, nR = n.x + w, nT = n.y, nB = n.y + h;
|
|
3194
|
+
minX = Math.min(minX, nL);
|
|
3195
|
+
minY = Math.min(minY, nT);
|
|
3196
|
+
maxX = Math.max(maxX, nR);
|
|
3197
|
+
maxY = Math.max(maxY, nB);
|
|
3198
|
+
if (!(nR < viewLeft || nL > viewRight || nB < viewTop || nT > viewBottom)) {
|
|
3199
|
+
anyVisible = true;
|
|
3200
|
+
}
|
|
3201
|
+
}
|
|
3202
|
+
if (anyVisible) return;
|
|
3199
3203
|
const cx = (minX + maxX) / 2;
|
|
3200
3204
|
const cy = (minY + maxY) / 2;
|
|
3201
3205
|
wrap.scrollLeft = cx * z + padX - wrap.clientWidth / 2;
|