switcherPopup: Implement functions to add and remove accessible states

Set the accessible states of the switcherList items by calling a
function instead of manipulating class-internal variables from outside
the class, which is considered bad practice.

The check whether the item at `_selectedIndex` exists can also be
removed since we always select a new index after an item was removed
(i.e. an app was closed) and destroy the alt-tab switcher right away if
no more items exist (see `SwitcherPopup._itemRemovedHandler`).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167
This commit is contained in:
Jonas Dreßler 2018-04-26 11:19:40 +02:00 committed by Florian Müllner
parent c00f1d040b
commit bfb0bc7a29
2 changed files with 10 additions and 3 deletions

View File

@ -365,8 +365,7 @@ class AppSwitcherPopup extends SwitcherPopup.SwitcherPopup {
},
});
this._thumbnails = null;
if (this._switcherList._items[this._selectedIndex])
this._switcherList._items[this._selectedIndex].remove_accessible_state(Atk.StateType.EXPANDED);
this._switcherList.removeAccessibleState(this._selectedIndex, Atk.StateType.EXPANDED);
}
_createThumbnails() {
@ -395,7 +394,7 @@ class AppSwitcherPopup extends SwitcherPopup.SwitcherPopup {
},
});
this._switcherList._items[this._selectedIndex].add_accessible_state(Atk.StateType.EXPANDED);
this._switcherList.addAccessibleState(this._selectedIndex, Atk.StateType.EXPANDED);
}
});

View File

@ -444,6 +444,14 @@ var SwitcherList = GObject.registerClass({
this.emit('item-removed', index);
}
addAccessibleState(index, state) {
this._items[index].add_accessible_state(state);
}
removeAccessibleState(index, state) {
this._items[index].remove_accessible_state(state);
}
_onItemClicked(index) {
this._itemActivated(index);
}