From 841d49ebbf4b7afd344a32704e460cc27b1a6af1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A7alo=20Silva?= Date: Tue, 15 Dec 2020 03:22:06 +0000 Subject: [PATCH 1/2] Animate preview from pointer location --- extension.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/extension.js b/extension.js index e37108b..c0d6bad 100644 --- a/extension.js +++ b/extension.js @@ -694,6 +694,9 @@ Main.uiGroup.add_actor(preview); function showPreview(loc, _x, _y, _w, _h) { Tweener.removeTweens(preview); + let [x, y, _] = global.get_pointer(); + preview.x = x; + preview.y = y; preview.visible = true; preview.loc = loc; Tweener.addTween(preview, { From 80a0addf35e7f2a41c242f75bfbc0c1ca9048775 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A7alo=20Silva?= Date: Wed, 17 Feb 2021 01:55:17 +0000 Subject: [PATCH 2/2] Set preview x,y when not yet animating Setting it on every `showPreview` invocation leads to flickering, since the function is called multiple times for each animation. --- extension.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/extension.js b/extension.js index c0d6bad..1b56aae 100644 --- a/extension.js +++ b/extension.js @@ -693,10 +693,12 @@ var preview = new St.BoxLayout({ Main.uiGroup.add_actor(preview); function showPreview(loc, _x, _y, _w, _h) { + if (Tweener.getTweenCount(preview) == 0) { + let [x, y, _] = global.get_pointer(); + preview.x = x; + preview.y = y; + } Tweener.removeTweens(preview); - let [x, y, _] = global.get_pointer(); - preview.x = x; - preview.y = y; preview.visible = true; preview.loc = loc; Tweener.addTween(preview, {