appDisplay: Reorganize AppDisplay actor hierarchy
Right now, the actor hierarchy is such that the scroll view does not contain the actual grid. It looks as follows: StScrollView ↓ StBoxLayout ↓ ShellStack ↓ ↓ PaginatedIconGrid StWidget This hierarchy can be slightly reorganized by changing it to be as follows: ShellStack ↓ ↓ StScrollView StWidget ↓ StBoxLayout ↓ PaginatedIconGrid This will simplify future work where the PaginatedIconGrid will be an implementation of StScrollable, in which case we'll be able to simply remove the StBoxLayout from there. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1191
This commit is contained in:
parent
7d7a15f978
commit
167bc080d9
@ -341,14 +341,37 @@ var AllView = GObject.registerClass({
|
|||||||
use_pagination: true,
|
use_pagination: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this._grid._delegate = this;
|
||||||
|
|
||||||
|
this._stack = new St.Widget({
|
||||||
|
layout_manager: new Clutter.BinLayout(),
|
||||||
|
x_expand: true,
|
||||||
|
y_expand: true,
|
||||||
|
});
|
||||||
|
this.add_actor(this._stack);
|
||||||
|
|
||||||
|
let box = new St.BoxLayout({
|
||||||
|
vertical: true,
|
||||||
|
y_align: Clutter.ActorAlign.START,
|
||||||
|
});
|
||||||
|
box.add_child(this._grid);
|
||||||
|
|
||||||
this._scrollView = new St.ScrollView({
|
this._scrollView = new St.ScrollView({
|
||||||
style_class: 'all-apps',
|
style_class: 'all-apps',
|
||||||
x_expand: true,
|
x_expand: true,
|
||||||
y_expand: true,
|
y_expand: true,
|
||||||
reactive: true,
|
reactive: true,
|
||||||
});
|
});
|
||||||
this.add_actor(this._scrollView);
|
this._scrollView.add_actor(box);
|
||||||
this._grid._delegate = this;
|
this._stack.add_actor(this._scrollView);
|
||||||
|
|
||||||
|
this._eventBlocker = new St.Widget({
|
||||||
|
x_expand: true,
|
||||||
|
y_expand: true,
|
||||||
|
reactive: true,
|
||||||
|
visible: false,
|
||||||
|
});
|
||||||
|
this._stack.add_actor(this._eventBlocker);
|
||||||
|
|
||||||
this._scrollView.set_policy(St.PolicyType.NEVER,
|
this._scrollView.set_policy(St.PolicyType.NEVER,
|
||||||
St.PolicyType.EXTERNAL);
|
St.PolicyType.EXTERNAL);
|
||||||
@ -369,24 +392,7 @@ var AllView = GObject.registerClass({
|
|||||||
|
|
||||||
this._folderIcons = [];
|
this._folderIcons = [];
|
||||||
|
|
||||||
this._stack = new St.Widget({ layout_manager: new Clutter.BinLayout() });
|
|
||||||
let box = new St.BoxLayout({
|
|
||||||
vertical: true,
|
|
||||||
y_align: Clutter.ActorAlign.START,
|
|
||||||
});
|
|
||||||
|
|
||||||
this._grid.currentPage = 0;
|
this._grid.currentPage = 0;
|
||||||
this._stack.add_actor(this._grid);
|
|
||||||
this._eventBlocker = new St.Widget({
|
|
||||||
x_expand: true,
|
|
||||||
y_expand: true,
|
|
||||||
reactive: true,
|
|
||||||
visible: false,
|
|
||||||
});
|
|
||||||
this._stack.add_actor(this._eventBlocker);
|
|
||||||
|
|
||||||
box.add_actor(this._stack);
|
|
||||||
this._scrollView.add_actor(box);
|
|
||||||
|
|
||||||
this._scrollView.connect('scroll-event', this._onScroll.bind(this));
|
this._scrollView.connect('scroll-event', this._onScroll.bind(this));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user