workspaceThumbnail: Sync clone position changes with actor

We need to update the clone position if window actor (not the meta window)
position changed.

https://bugzilla.gnome.org/show_bug.cgi?id=776588
This commit is contained in:
Marco Trevisan (Treviño) 2018-01-19 15:01:16 +01:00 committed by Florian Müllner
parent 8e5eab0498
commit 2a2f3c981e

View File

@ -68,7 +68,7 @@ var WindowClone = new Lang.Class({
this.realWindow = realWindow; this.realWindow = realWindow;
this.metaWindow = realWindow.meta_window; this.metaWindow = realWindow.meta_window;
this.clone._updateId = this.metaWindow.connect('position-changed', this.clone._updateId = this.realWindow.connect('notify::position',
this._onPositionChanged.bind(this)); this._onPositionChanged.bind(this));
this.clone._destroyId = this.realWindow.connect('destroy', () => { this.clone._destroyId = this.realWindow.connect('destroy', () => {
// First destroy the clone and then destroy everything // First destroy the clone and then destroy everything
@ -153,7 +153,7 @@ var WindowClone = new Lang.Class({
let clone = new Clutter.Clone({ source: realDialog }); let clone = new Clutter.Clone({ source: realDialog });
this._updateDialogPosition(realDialog, clone); this._updateDialogPosition(realDialog, clone);
clone._updateId = metaDialog.connect('position-changed', dialog => { clone._updateId = realDialog.connect('notify::position', dialog => {
this._updateDialogPosition(dialog, clone); this._updateDialogPosition(dialog, clone);
}); });
clone._destroyId = realDialog.connect('destroy', () => { clone._destroyId = realDialog.connect('destroy', () => {
@ -171,7 +171,6 @@ var WindowClone = new Lang.Class({
}, },
_onPositionChanged() { _onPositionChanged() {
let rect = this.metaWindow.get_frame_rect();
this.actor.set_position(this.realWindow.x, this.realWindow.y); this.actor.set_position(this.realWindow.x, this.realWindow.y);
}, },
@ -179,7 +178,7 @@ var WindowClone = new Lang.Class({
this.actor.get_children().forEach(child => { this.actor.get_children().forEach(child => {
let realWindow = child.source; let realWindow = child.source;
realWindow.meta_window.disconnect(child._updateId); realWindow.disconnect(child._updateId);
realWindow.disconnect(child._destroyId); realWindow.disconnect(child._destroyId);
}); });
}, },