workspace: Fix activating windows from xdnd operations

Commit e5bc3a2ba8 changed the hierarchy of WindowClone, which
broke activating windows on hover during xdnd operations. To
avoid intrusive changes, just hide the new actor from picks so
that DND operations pick the actor actually meant to represent
the corresponding window.

https://bugzilla.gnome.org/show_bug.cgi?id=658640
This commit is contained in:
Florian Müllner 2011-09-10 00:47:21 +02:00 committed by Adel Gadllah
parent 234a4f3a1b
commit 1cf64b5471

View File

@ -102,6 +102,12 @@ WindowClone.prototype = {
this._windowClone = new Clutter.Clone({ source: realWindow.get_texture(), this._windowClone = new Clutter.Clone({ source: realWindow.get_texture(),
x: -borderX, x: -borderX,
y: -borderY }); y: -borderY });
// We expect this.actor to be used for all interaction rather than
// this._windowClone; as the former is reactive and the latter
// is not, this just works for most cases. However, for DND all
// actors are picked, so DND operations would operate on the clone.
// To avoid this, we hide it from pick.
Shell.util_set_hidden_from_pick(this._windowClone, true);
this.origX = realWindow.x + borderX; this.origX = realWindow.x + borderX;
this.origY = realWindow.y + borderY; this.origY = realWindow.y + borderY;