a11y: userMenu: support for IMStatus combobox and
suspend/power-off label https://bugzilla.gnome.org/show_bug.cgi?id=671404
This commit is contained in:
parent
7c25dead17
commit
06354a8c9a
@ -446,6 +446,7 @@ const PopupAlternatingMenuItem = new Lang.Class({
|
|||||||
this.label = new St.Label({ text: text });
|
this.label = new St.Label({ text: text });
|
||||||
this.state = PopupAlternatingMenuItemState.DEFAULT;
|
this.state = PopupAlternatingMenuItemState.DEFAULT;
|
||||||
this.addActor(this.label);
|
this.addActor(this.label);
|
||||||
|
this.actor.label_actor = this.label;
|
||||||
|
|
||||||
this.actor.connect('notify::mapped', Lang.bind(this, this._onMapped));
|
this.actor.connect('notify::mapped', Lang.bind(this, this._onMapped));
|
||||||
},
|
},
|
||||||
@ -1602,6 +1603,10 @@ const PopupComboMenu = new Lang.Class({
|
|||||||
this._activeItemPos = position;
|
this._activeItemPos = position;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getActiveItem: function() {
|
||||||
|
return this._getMenuItems()[this._activeItemPos];
|
||||||
|
},
|
||||||
|
|
||||||
setItemVisible: function(position, visible) {
|
setItemVisible: function(position, visible) {
|
||||||
if (!visible && position == this._activeItemPos) {
|
if (!visible && position == this._activeItemPos) {
|
||||||
log('Trying to hide the active menu item.');
|
log('Trying to hide the active menu item.');
|
||||||
@ -1623,6 +1628,8 @@ const PopupComboBoxMenuItem = new Lang.Class({
|
|||||||
_init: function (params) {
|
_init: function (params) {
|
||||||
this.parent(params);
|
this.parent(params);
|
||||||
|
|
||||||
|
this.actor.accessible_role = Atk.Role.COMBO_BOX;
|
||||||
|
|
||||||
this._itemBox = new Shell.Stack();
|
this._itemBox = new Shell.Stack();
|
||||||
this.addActor(this._itemBox);
|
this.addActor(this._itemBox);
|
||||||
|
|
||||||
@ -1719,6 +1726,11 @@ const PopupComboBoxMenuItem = new Lang.Class({
|
|||||||
Lang.bind(this, this._itemActivated, position));
|
Lang.bind(this, this._itemActivated, position));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
checkAccessibleLabel: function() {
|
||||||
|
let activeItem = this._menu.getActiveItem();
|
||||||
|
this.actor.label_actor = activeItem.label;
|
||||||
|
},
|
||||||
|
|
||||||
setActiveItem: function(position) {
|
setActiveItem: function(position) {
|
||||||
let item = this._items[position];
|
let item = this._items[position];
|
||||||
if (!item)
|
if (!item)
|
||||||
@ -1729,6 +1741,8 @@ const PopupComboBoxMenuItem = new Lang.Class({
|
|||||||
this._activeItemPos = position;
|
this._activeItemPos = position;
|
||||||
for (let i = 0; i < this._items.length; i++)
|
for (let i = 0; i < this._items.length; i++)
|
||||||
this._items[i].visible = (i == this._activeItemPos);
|
this._items[i].visible = (i == this._activeItemPos);
|
||||||
|
|
||||||
|
this.checkAccessibleLabel();
|
||||||
},
|
},
|
||||||
|
|
||||||
setItemVisible: function(position, visible) {
|
setItemVisible: function(position, visible) {
|
||||||
|
@ -57,6 +57,7 @@ const IMStatusItem = new Lang.Class({
|
|||||||
this._icon.icon_name = iconName;
|
this._icon.icon_name = iconName;
|
||||||
|
|
||||||
this.label = new St.Label({ text: label });
|
this.label = new St.Label({ text: label });
|
||||||
|
this.actor.label_actor = this.label;
|
||||||
this.addActor(this.label);
|
this.addActor(this.label);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user