diff --git a/data/gnome-shell-icons.gresource.xml b/data/gnome-shell-icons.gresource.xml index 680cffced..d8d6344fa 100644 --- a/data/gnome-shell-icons.gresource.xml +++ b/data/gnome-shell-icons.gresource.xml @@ -6,7 +6,8 @@ scalable/actions/carousel-arrow-previous-symbolic.svg scalable/actions/dark-mode-symbolic.svg scalable/actions/ornament-check-symbolic.svg - scalable/actions/ornament-dot-symbolic.svg + scalable/actions/ornament-dot-checked-symbolic.svg + scalable/actions/ornament-dot-unchecked-symbolic.svg scalable/actions/pointer-double-click-symbolic.svg scalable/actions/pointer-drag-symbolic.svg scalable/actions/pointer-primary-click-symbolic.svg diff --git a/data/icons/scalable/actions/ornament-check-symbolic.svg b/data/icons/scalable/actions/ornament-check-symbolic.svg index 7a9551fad..b32ed8c37 100644 --- a/data/icons/scalable/actions/ornament-check-symbolic.svg +++ b/data/icons/scalable/actions/ornament-check-symbolic.svg @@ -1,4 +1,4 @@ - + diff --git a/data/icons/scalable/actions/ornament-dot-checked-symbolic.svg b/data/icons/scalable/actions/ornament-dot-checked-symbolic.svg new file mode 100644 index 000000000..9ac93a4c7 --- /dev/null +++ b/data/icons/scalable/actions/ornament-dot-checked-symbolic.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/data/icons/scalable/actions/ornament-dot-symbolic.svg b/data/icons/scalable/actions/ornament-dot-symbolic.svg deleted file mode 100644 index e9d7ec181..000000000 --- a/data/icons/scalable/actions/ornament-dot-symbolic.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/data/icons/scalable/actions/ornament-dot-unchecked-symbolic.svg b/data/icons/scalable/actions/ornament-dot-unchecked-symbolic.svg new file mode 100644 index 000000000..192429fbd --- /dev/null +++ b/data/icons/scalable/actions/ornament-dot-unchecked-symbolic.svg @@ -0,0 +1,4 @@ + + + + diff --git a/data/org.gnome.Shell-symbolic.Source.svg b/data/org.gnome.Shell-symbolic.Source.svg index 0f02fdc0e..31cc6d6eb 100644 --- a/data/org.gnome.Shell-symbolic.Source.svg +++ b/data/org.gnome.Shell-symbolic.Source.svg @@ -21,9 +21,9 @@ borderopacity="1.0" inkscape:pageopacity="1" inkscape:pageshadow="2" - inkscape:zoom="1" - inkscape:cx="224.5" - inkscape:cy="258.5" + inkscape:zoom="16" + inkscape:cx="15.46875" + inkscape:cy="461.34375" inkscape:document-units="px" inkscape:current-layer="layer2" showgrid="false" @@ -374,6 +374,19 @@ d="m 82.95312,664.60753 2.41797,13.21094 3.23828,-2.39844 2.05469,2.64844 c 1.03125,1.43359 3.14844,-0.21094 2.01172,-1.5625 l -2.01562,-2.59375 2.98437,-2.17579 z m 0,0" fill="#2e3436" id="path2-35" />ornament-dot-unchecked</g></g></svg> + sodipodi:nodetypes="sssssssss" /></g><g + transform="matrix(-1,0,0,1,216.0059,-35)" + inkscape:label="menu item check radio" + id="g12"><title + id="title10">ornament-checkornament-dot-checked diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js index 3be7f42ec..ba2a1ad71 100644 --- a/js/gdm/loginDialog.js +++ b/js/gdm/loginDialog.js @@ -364,7 +364,7 @@ const SessionMenuButton = GObject.registerClass({ if (itemIds[i] === this._activeSessionId) this._items[itemIds[i]].setOrnament(PopupMenu.Ornament.DOT); else - this._items[itemIds[i]].setOrnament(PopupMenu.Ornament.NONE); + this._items[itemIds[i]].setOrnament(PopupMenu.Ornament.NO_DOT); } } diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js index da9137d5f..6ceb2032b 100644 --- a/js/ui/keyboard.js +++ b/js/ui/keyboard.js @@ -218,7 +218,7 @@ class LanguageSelectionPopup extends PopupMenu.PopupMenu { item.can_focus = false; item.setOrnament(is === inputSourceManager.currentSource ? PopupMenu.Ornament.DOT - : PopupMenu.Ornament.NONE); + : PopupMenu.Ornament.NO_DOT); } this.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js index 2977d3d61..1204978e7 100644 --- a/js/ui/popupMenu.js +++ b/js/ui/popupMenu.js @@ -19,6 +19,7 @@ export const Ornament = { DOT: 1, CHECK: 2, HIDDEN: 3, + NO_DOT: 4, }; function isPopupMenuItemVisible(child) { @@ -256,8 +257,11 @@ export const PopupBaseMenuItem = GObject.registerClass({ this._ornament = ornament; if (ornament === Ornament.DOT) { - this._ornamentIcon.icon_name = 'ornament-dot-symbolic'; + this._ornamentIcon.icon_name = 'ornament-dot-checked-symbolic'; this.add_accessible_state(Atk.StateType.CHECKED); + } else if (ornament === Ornament.NO_DOT) { + this._ornamentIcon.icon_name = 'ornament-dot-unchecked-symbolic'; + this.remove_accessible_state(Atk.StateType.CHECKED); } else if (ornament === Ornament.CHECK) { this._ornamentIcon.icon_name = 'ornament-check-symbolic'; this.add_accessible_state(Atk.StateType.CHECKED); @@ -271,7 +275,7 @@ export const PopupBaseMenuItem = GObject.registerClass({ } _updateOrnamentStyle() { - if (this._ornament !== Ornament.HIDDEN) + if (this._ornament === Ornament.CHECK || this._ornament === Ornament.NONE) this.add_style_class_name('popup-ornamented-menu-item'); else this.remove_style_class_name('popup-ornamented-menu-item'); diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js index cad5f2a86..e285eb495 100644 --- a/js/ui/status/keyboard.js +++ b/js/ui/status/keyboard.js @@ -27,7 +27,7 @@ class LayoutMenuItem extends PopupMenu.PopupBaseMenuItem { _init(displayName, shortName) { super._init(); - this.setOrnament(PopupMenu.Ornament.NONE); + this.setOrnament(PopupMenu.Ornament.NO_DOT); this.label = new St.Label({ text: displayName, @@ -932,7 +932,7 @@ class InputSourceIndicator extends PanelMenu.Button { let newSource = this._inputSourceManager.currentSource; if (oldSource) { - this._menuItems[oldSource.index].setOrnament(PopupMenu.Ornament.NONE); + this._menuItems[oldSource.index].setOrnament(PopupMenu.Ornament.NO_DOT); this._indicatorLabels[oldSource.index].hide(); } @@ -1011,7 +1011,7 @@ class InputSourceIndicator extends PanelMenu.Button { radioGroup.push(item); item.radioGroup = radioGroup; item.setOrnament(prop.get_state() === IBus.PropState.CHECKED - ? PopupMenu.Ornament.DOT : PopupMenu.Ornament.NONE); + ? PopupMenu.Ornament.DOT : PopupMenu.Ornament.NO_DOT); item.connect('activate', () => { if (item.prop.get_state() === IBus.PropState.CHECKED) return; @@ -1024,7 +1024,7 @@ class InputSourceIndicator extends PanelMenu.Button { ibusManager.activateProperty( item.prop.get_key(), IBus.PropState.CHECKED); } else { - group[j].setOrnament(PopupMenu.Ornament.NONE); + group[j].setOrnament(PopupMenu.Ornament.NO_DOT); group[j].prop.set_state(IBus.PropState.UNCHECKED); ibusManager.activateProperty( group[j].prop.get_key(), IBus.PropState.UNCHECKED); diff --git a/js/ui/status/network.js b/js/ui/status/network.js index 958d3c058..d9547eed7 100644 --- a/js/ui/status/network.js +++ b/js/ui/status/network.js @@ -379,7 +379,7 @@ class NMConnectionItem extends NMMenuItem { this.accessible_name = this.name; this.accessible_role = Atk.Role.CHECK_MENU_ITEM; this.setOrnament(this.is_active - ? PopupMenu.Ornament.DOT : PopupMenu.Ornament.NONE); + ? PopupMenu.Ornament.DOT : PopupMenu.Ornament.NO_DOT); } else { this.accessible_name = this._getAccessibleName(); this._subtitle.text = this._getSubtitleLabel();