popupMenu: Use a checkmark for boolean items
This matches GTK+'s styling, and it makes most boolean switches look more natural, as a lot of booleans are not meant for hardware switches. https://bugzilla.gnome.org/show_bug.cgi?id=698427
This commit is contained in:
parent
8430353389
commit
b03e480dbf
@ -1869,18 +1869,20 @@ const RemoteMenu = new Lang.Class({
|
|||||||
// always returns null
|
// always returns null
|
||||||
// Funny :)
|
// Funny :)
|
||||||
|
|
||||||
|
item = new PopupMenuItem(label);
|
||||||
|
|
||||||
switch (String.fromCharCode(action.state.classify())) {
|
switch (String.fromCharCode(action.state.classify())) {
|
||||||
case 'b':
|
case 'b':
|
||||||
item = new PopupSwitchMenuItem(label, action.state.get_boolean());
|
|
||||||
action.items.push(item);
|
action.items.push(item);
|
||||||
specificSignalId = item.connect('toggled', Lang.bind(this, function(item) {
|
item.setOrnament(action.state.get_boolean() ?
|
||||||
|
Ornament.CHECK : Ornament.NONE);
|
||||||
|
specificSignalId = item.connect('activate', Lang.bind(this, function(item) {
|
||||||
this.actionGroup.activate_action(action_id, null);
|
this.actionGroup.activate_action(action_id, null);
|
||||||
}));
|
}));
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
item = new PopupMenuItem(label);
|
|
||||||
item._remoteTarget = model.get_item_attribute_value(index, Gio.MENU_ATTRIBUTE_TARGET, null).deep_unpack();
|
|
||||||
action.items.push(item);
|
action.items.push(item);
|
||||||
|
item._remoteTarget = model.get_item_attribute_value(index, Gio.MENU_ATTRIBUTE_TARGET, null).deep_unpack();
|
||||||
item.setOrnament(action.state.deep_unpack() == item._remoteTarget ?
|
item.setOrnament(action.state.deep_unpack() == item._remoteTarget ?
|
||||||
Ornament.DOT : Ornament.NONE);
|
Ornament.DOT : Ornament.NONE);
|
||||||
specificSignalId = item.connect('activate', Lang.bind(this, function(item) {
|
specificSignalId = item.connect('activate', Lang.bind(this, function(item) {
|
||||||
@ -2010,7 +2012,8 @@ const RemoteMenu = new Lang.Class({
|
|||||||
switch (String.fromCharCode(action.state.classify())) {
|
switch (String.fromCharCode(action.state.classify())) {
|
||||||
case 'b':
|
case 'b':
|
||||||
for (let i = 0; i < action.items.length; i++)
|
for (let i = 0; i < action.items.length; i++)
|
||||||
action.items[i].setToggleState(action.state.get_boolean());
|
action.items[i].setOrnament(action.state.get_boolean() ?
|
||||||
|
Ornament.CHECK : Ornament.NONE);
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
for (let i = 0; i < action.items.length; i++)
|
for (let i = 0; i < action.items.length; i++)
|
||||||
|
Loading…
Reference in New Issue
Block a user