mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-18 07:34:54 +00:00
dnd: Don't override fixed position if actor had no fixed position before
Properly handle drag actors which are not allocated using a fixed position and disable the fixed position we were using to move the actor around before we reparent it again to its original parent. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1310
This commit is contained in:
parent
0db41a3773
commit
b2eeda9b46
1 changed files with 7 additions and 3 deletions
10
js/ui/dnd.js
10
js/ui/dnd.js
|
|
@ -375,8 +375,9 @@ var _Draggable = class _Draggable {
|
|||
|
||||
this._dragActorSource = undefined;
|
||||
this._dragOrigParent = this.actor.get_parent();
|
||||
this._dragOrigX = this._dragActor.x;
|
||||
this._dragOrigY = this._dragActor.y;
|
||||
this._dragActorHadFixedPos = this._dragActor.fixed_position_set;
|
||||
this._dragOrigX = this._dragActor.allocation.x1;
|
||||
this._dragOrigY = this._dragActor.allocation.y1;
|
||||
this._dragOrigScale = this._dragActor.scale_x;
|
||||
|
||||
// Set the actor's scale such that it will keep the same
|
||||
|
|
@ -718,7 +719,10 @@ var _Draggable = class _Draggable {
|
|||
Main.uiGroup.remove_child(this._dragActor);
|
||||
this._dragOrigParent.add_actor(this._dragActor);
|
||||
dragActor.set_scale(this._dragOrigScale, this._dragOrigScale);
|
||||
dragActor.set_position(this._dragOrigX, this._dragOrigY);
|
||||
if (this._dragActorHadFixedPos)
|
||||
dragActor.set_position(this._dragOrigX, this._dragOrigY);
|
||||
else
|
||||
dragActor.fixed_position_set = false;
|
||||
} else {
|
||||
dragActor.destroy();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue