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
+ sodipodi:nodetypes="sssssssss" />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();