kingkont 0.14.2 → 0.14.3

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kingkont",
3
- "version": "0.14.2",
3
+ "version": "0.14.3",
4
4
  "description": "KingKont · Chatium — нод-редактор сцен с AI-генерацией (картинки/видео/голос/SFX/музыка/текст)",
5
5
  "main": "main.js",
6
6
  "bin": {
package/renderer/board.js CHANGED
@@ -1890,11 +1890,14 @@ async function selectBoard(board) {
1890
1890
  canvasWrap.scrollTop = padY;
1891
1891
  }
1892
1892
 
1893
- // Если в текущем viewport не видно ни одной ноды авто-скролл на bbox нод.
1894
- // Срабатывает после render'а (через requestAnimationFrame чтобы иметь
1895
- // актуальные размеры). Обходит как новый view (без сохранённого scroll'a),
1896
- // так и случай когда юзер вышел далеко от нод и забыл.
1897
- requestAnimationFrame(() => _autoScrollToNodesIfHidden(padX, padY));
1893
+ // Auto-scroll к bbox нод ТОЛЬКО если view не был сохранён ранее
1894
+ // (т.е. это первый раз открываем доску, или юзер ни разу не скроллил).
1895
+ // Раньше срабатывало всегда из-за гонки с applyZoomStyles (resize
1896
+ // через setTimeout 200ms) scrollLeft при zoom<1 клампился, bbox казался
1897
+ // невидимым, view перебивался → юзер терял сохранённую позицию.
1898
+ if (!view || (typeof view.scrollLeft !== 'number' && typeof view.scrollTop !== 'number')) {
1899
+ requestAnimationFrame(() => _autoScrollToNodesIfHidden(padX, padY));
1900
+ }
1898
1901
 
1899
1902
  // Возобновить незавершённые джобы текущей доски
1900
1903
  for (const n of state.currentBoard.metadata.nodes) {