mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-17 23:24:51 +00:00
iconGrid: Add moveItem
This new public API moves items without removing and readding
them, which allows us to avoid some tricky behavior. Noticeably,
following the original design described at 3555550d5, the new
IconGridLayout.moveItem() method does not call `layout_changed`.
This is done by IconGrid itself, queueing a relayout.
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1447
This commit is contained in:
parent
bfd4d0f7aa
commit
ffdff07eaf
1 changed files with 29 additions and 0 deletions
|
|
@ -847,6 +847,22 @@ var IconGridLayout = GObject.registerClass({
|
|||
this.addItem(item);
|
||||
}
|
||||
|
||||
/**
|
||||
* moveItem:
|
||||
* @param {Clutter.Actor} item: item to move
|
||||
* @param {int} newPage: new page of the item
|
||||
* @param {int} newPosition: new page of the item
|
||||
*
|
||||
* Moves @item to the grid. @item must be part of the grid.
|
||||
*/
|
||||
moveItem(item, newPage, newPosition) {
|
||||
if (!this._items.has(item))
|
||||
throw new Error(`Item ${item} is not part of the IconGridLayout`);
|
||||
|
||||
this._removeItemData(item);
|
||||
this._addItemToPage(item, newPage, newPosition);
|
||||
}
|
||||
|
||||
/**
|
||||
* removeItem:
|
||||
* @param {Clutter.Actor} item: item to remove from the grid
|
||||
|
|
@ -1422,6 +1438,19 @@ var IconGrid = GObject.registerClass({
|
|||
this.layout_manager.appendItem(item);
|
||||
}
|
||||
|
||||
/**
|
||||
* moveItem:
|
||||
* @param {Clutter.Actor} item: item to move
|
||||
* @param {int} newPage: new page of the item
|
||||
* @param {int} newPosition: new page of the item
|
||||
*
|
||||
* Moves @item to the grid. @item must be part of the grid.
|
||||
*/
|
||||
moveItem(item, newPage, newPosition) {
|
||||
this.layout_manager.moveItem(item, newPage, newPosition);
|
||||
this.queue_relayout();
|
||||
}
|
||||
|
||||
/**
|
||||
* removeItem:
|
||||
* @param {Clutter.Actor} item: item to remove from the grid
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue