diff --git a/navigator.js b/navigator.js index 5c7bf1e..a71bd7a 100644 --- a/navigator.js +++ b/navigator.js @@ -204,10 +204,6 @@ var Navigator = class Navigator { this.minimaps = new Map(); TopBar.fixTopBar(); - let selected = this.space.selectedWindow; - if (selected && selected.fullscreen) { - Tiling.animateDown(selected); - } this.space.startAnimate(); } diff --git a/tiling.js b/tiling.js index acb9d9e..a74af27 100644 --- a/tiling.js +++ b/tiling.js @@ -2541,7 +2541,8 @@ function ensureViewport(meta_window, space, force) { debug('Moving', meta_window.title); - if (space.selectedWindow.fullscreen) { + if (space.selectedWindow.fullscreen && + !meta_window.fullscreen) { animateDown(space.selectedWindow); } let x = ensuredX(meta_window, space); @@ -2550,11 +2551,17 @@ function ensureViewport(meta_window, space, force) { let selected = space.selectedWindow; let frame = meta_window.get_frame_rect(); if (!inPreview && selected.fullscreen) { - Tweener.addTween(selected.clone, - { y: frame.y - space.monitor.y, - time: prefs.animation_time, - onComplete: space.moveDone.bind(space) - }); + let y = 0; + let ty = selected.clone.get_transition('y'); + if (!space.isVisible(selected)) { + selected.clone.y = y; + } else if (!ty || ty.get_interval().final !== y) { + Tweener.addTween(selected.clone, + { y: y, + time: prefs.animation_time, + onComplete: space.moveDone.bind(space) + }); + } } move_to(space, meta_window, { x, force