From df0cdbc5bf3e0a8ee0d0a040ddcd15e244f57741 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Hedin=20Br=C3=B8nner?= Date: Sat, 25 Jan 2020 20:37:30 +0100 Subject: [PATCH] position clone correctly when popped out of scaled space --- grab.js | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/grab.js b/grab.js index 222bb63..614bfda 100644 --- a/grab.js +++ b/grab.js @@ -228,24 +228,15 @@ var MoveGrab = class MoveGrab { let actor = metaWindow.get_compositor_private(); let clone = metaWindow.clone; let space = this.initialSpace; - let frame; - if (clone.get_parent()) { - // let point = clone.apply_transform_to_point(new Clutter.Vertex({x: 0, y: 0})); - let point = space.cloneContainer.apply_transform_to_point(new Clutter.Vertex({x: clone.x, y: clone.y})); - frame = {x: point.x, y: point.y, - width: clone.width, - height: clone.height - } - } else { - frame = metaWindow.get_frame_rect(); - } let i = space.indexOf(metaWindow); let single = i !== -1 && space[i].length === 1; space.removeWindow(metaWindow); clone.reparent(Main.uiGroup); - clone.x = frame.x; - clone.y = frame.y; + let [gx, gy, $] = global.get_pointer(); + let [dx, dy] = this.pointerOffset; + clone.x = gx - dx; + clone.y = gy - dy; let newScale = clone.scale_x*space.actor.scale_x; clone.set_scale(newScale, newScale); @@ -256,7 +247,6 @@ var MoveGrab = class MoveGrab { this.spaceToDndZones = new Map(); this.monitorToZones = createDndZonesForMonitors(); - let [gx, gy, $] = global.get_pointer(); let monitor = monitorAtPoint(gx, gy); let onSame = monitor === space.monitor;