Polish up animate down for fullscreen windows

- Simply move the fullscreen clone if not visible
- Do not start a new animation one is already in progress
- Do not run animateDown when starting navigation
This commit is contained in:
Tor Hedin Brønner
2020-03-01 18:54:27 +01:00
parent 0c3f71d94d
commit 5dcee36d71
2 changed files with 13 additions and 10 deletions
-4
View File
@@ -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();
}
+13 -6
View File
@@ -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