ui: expand targets viewport geometry (maxViewport), drop 2000 probe; no header subtraction
This commit is contained in:
1 parent
1ff8a47323
commit
0aeaf9f831
1 file changed
+10
-10
+10
-10
@@ -188,16 +188,14 @@ function Plugin () {
|
|||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
function toggleWindowSize () {
|
function toggleWindowSize () {
|
||||||
// "Развернуть" шлёт заведомо большой запрос (2000×2000) — это "перфоратор" Figma:
|
// "Развернуть" целится в геометрию видимого viewport (maxViewport = bounds*zoom,
|
||||||
// API не отдаёт реальный лимит окна, поэтому просим больше, чем viewport, и Figma
|
// без вычетов шапки/рамок). Figma сама клампнет запрос до своего реального лимита
|
||||||
// сама клампнет до доступного (зависит от того, спрятан ли UI Figma). Реальный
|
// окна плагина (зависит от того, спрятан ли UI Figma). Реальный размер потом
|
||||||
// размер потом измеряется через iframe (window.innerWidth/Height) и показывается
|
// измеряется через iframe (window.innerWidth/Height) и показывается как lastSize/gaps.
|
||||||
// как lastSize / gaps. Свернуть — обратно к минимуму.
|
const max = windowInfo != null ? windowInfo.maxViewport : { width: 1920, height: 1080 }
|
||||||
const EXPAND_REQUEST = { width: 2000, height: 2000 }
|
|
||||||
const isMaximized =
|
const isMaximized =
|
||||||
currentWindowSize.width >= EXPAND_REQUEST.width &&
|
currentWindowSize.width >= max.width && currentWindowSize.height >= max.height
|
||||||
currentWindowSize.height >= EXPAND_REQUEST.height
|
const next = isMaximized ? { ...MIN_WINDOW_SIZE } : { ...max }
|
||||||
const next = isMaximized ? { ...MIN_WINDOW_SIZE } : { ...EXPAND_REQUEST }
|
|
||||||
setCurrentWindowSize(next)
|
setCurrentWindowSize(next)
|
||||||
emit('RESIZE_WINDOW', next)
|
emit('RESIZE_WINDOW', next)
|
||||||
refreshInfo()
|
refreshInfo()
|
||||||
@@ -214,7 +212,9 @@ function Plugin () {
|
|||||||
|
|
||||||
const max = windowInfo != null ? windowInfo.maxViewport : null
|
const max = windowInfo != null ? windowInfo.maxViewport : null
|
||||||
// "Развернуто" считаем, если окно достигло (или превысило) геометрию viewport
|
// "Развернуто" считаем, если окно достигло (или превысило) геометрию viewport
|
||||||
// — при запросе 2000×2000 Figma клампнет, и lastSize будет ≥ maxViewport.
|
// (maxViewport = bounds*zoom). Figma клампнет запрос до своего лимита, поэтому
|
||||||
|
// реальный lastSize может быть чуть меньше maxViewport — при достижении потолка
|
||||||
|
// currentWindowSize будет >= maxViewport и иконка покажет "свернуть".
|
||||||
const isMaximized =
|
const isMaximized =
|
||||||
max != null &&
|
max != null &&
|
||||||
currentWindowSize.width >= max.width &&
|
currentWindowSize.width >= max.width &&
|
||||||
|
|||||||
Reference in new issue
Block a user