appDisplay: Ensure the currently focused icon is viewable
We either scroll or paginate to the correct place when an icon gets key focus. https://bugzilla.gnome.org/show_bug.cgi?id=726759
This commit is contained in:
parent
8d8c75d32d
commit
d0f69a72dc
@ -99,6 +99,9 @@ const BaseAppView = new Lang.Class({
|
|||||||
else
|
else
|
||||||
this._grid = new IconGrid.IconGrid(gridParams);
|
this._grid = new IconGrid.IconGrid(gridParams);
|
||||||
|
|
||||||
|
this._grid.connect('key-focus-in', Lang.bind(this, function(grid, actor) {
|
||||||
|
this._keyFocusIn(actor);
|
||||||
|
}));
|
||||||
// Standard hack for ClutterBinLayout
|
// Standard hack for ClutterBinLayout
|
||||||
this._grid.actor.x_expand = true;
|
this._grid.actor.x_expand = true;
|
||||||
|
|
||||||
@ -106,6 +109,10 @@ const BaseAppView = new Lang.Class({
|
|||||||
this._allItems = [];
|
this._allItems = [];
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_keyFocusIn: function(actor) {
|
||||||
|
// Nothing by default
|
||||||
|
},
|
||||||
|
|
||||||
removeAll: function() {
|
removeAll: function() {
|
||||||
this._grid.destroyAll();
|
this._grid.destroyAll();
|
||||||
this._items = {};
|
this._items = {};
|
||||||
@ -558,7 +565,7 @@ const AllView = new Lang.Class({
|
|||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|
||||||
_ensureIconVisible: function(icon) {
|
_keyFocusIn: function(icon) {
|
||||||
let itemPage = this._grid.getItemPage(icon);
|
let itemPage = this._grid.getItemPage(icon);
|
||||||
this.goToPage(itemPage);
|
this.goToPage(itemPage);
|
||||||
},
|
},
|
||||||
@ -929,6 +936,10 @@ const FolderView = new Lang.Class({
|
|||||||
this.actor.add_action(action);
|
this.actor.add_action(action);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_keyFocusIn: function(actor) {
|
||||||
|
Util.ensureActorVisibleInScrollView(this.actor, actor);
|
||||||
|
},
|
||||||
|
|
||||||
createFolderIcon: function(size) {
|
createFolderIcon: function(size) {
|
||||||
let layout = new Clutter.TableLayout();
|
let layout = new Clutter.TableLayout();
|
||||||
let icon = new St.Widget({ layout_manager: layout,
|
let icon = new St.Widget({ layout_manager: layout,
|
||||||
|
Loading…
Reference in New Issue
Block a user