keyboard: Use translation-y property for focus window animations

Just the intermediate state, we still need to synchronize visual and
real window position after the animation.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1668>
This commit is contained in:
Carlos Garnacho 2021-02-12 00:53:21 +01:00 committed by Marge Bot
parent 3346e9923b
commit 8526776b4a

View File

@ -1856,6 +1856,10 @@ var Keyboard = GObject.registerClass({
_windowSlideAnimationComplete(window, delta) { _windowSlideAnimationComplete(window, delta) {
// Synchronize window positions again. // Synchronize window positions again.
const windowActor = window.get_compositor_private();
if (windowActor)
windowActor.translation_y = 0;
let frameRect = window.get_frame_rect(); let frameRect = window.get_frame_rect();
frameRect.y += delta; frameRect.y += delta;
window.move_frame(true, frameRect.x, frameRect.y); window.move_frame(true, frameRect.x, frameRect.y);
@ -1869,7 +1873,7 @@ var Keyboard = GObject.registerClass({
if (show) { if (show) {
windowActor.ease({ windowActor.ease({
y: windowActor.y - deltaY, translation_y: -deltaY,
duration: KEYBOARD_ANIMATION_TIME, duration: KEYBOARD_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD, mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => { onComplete: () => {
@ -1878,7 +1882,7 @@ var Keyboard = GObject.registerClass({
}); });
} else { } else {
windowActor.ease({ windowActor.ease({
y: windowActor.y + deltaY, translation_y: deltaY,
duration: KEYBOARD_ANIMATION_TIME, duration: KEYBOARD_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_IN_QUAD, mode: Clutter.AnimationMode.EASE_IN_QUAD,
onComplete: () => { onComplete: () => {