diff --git a/data/gnome-shell-osk-layouts.gresource.xml b/data/gnome-shell-osk-layouts.gresource.xml index efaf47491..57ad33547 100644 --- a/data/gnome-shell-osk-layouts.gresource.xml +++ b/data/gnome-shell-osk-layouts.gresource.xml @@ -44,7 +44,9 @@ my.json nl.json no.json + number.json ph.json + phone.json pl.json pt.json ro.json diff --git a/data/osk-layouts/number.json b/data/osk-layouts/number.json new file mode 100644 index 000000000..db82fb753 --- /dev/null +++ b/data/osk-layouts/number.json @@ -0,0 +1,95 @@ +{ + "levels": [ + { + "level": "", + "mode": "default", + "rows": [ + [ + { + "strings": [ + "7" + ] + }, + { + "strings": [ + "8" + ] + }, + { + "strings": [ + "9" + ] + }, + { + "action": "delete", + "iconName": "edit-clear-symbolic" + } + ], + [ + { + "strings": [ + "4" + ] + }, + { + "strings": [ + "5" + ] + }, + { + "strings": [ + "6" + ] + }, + { + "iconName": "keyboard-enter-symbolic", + "keyval": "0xff0d", + "height": 2 + } + ], + [ + { + "strings": [ + "1" + ] + }, + { + "strings": [ + "2" + ] + }, + { + "strings": [ + "3" + ] + } + ], + [ + { + "strings": [ + "-", + "+", + "E" + ] + }, + { + "strings": [ + "0" + ] + }, + { + "strings": [ + ".", + "," + ] + }, + { + "action": "hide", + "iconName": "keyboard-hide-symbolic" + } + ] + ] + } + ], + "name": "Numeric Keyboard" +} diff --git a/data/osk-layouts/phone.json b/data/osk-layouts/phone.json new file mode 100644 index 000000000..0708d6790 --- /dev/null +++ b/data/osk-layouts/phone.json @@ -0,0 +1,93 @@ +{ + "levels": [ + { + "level": "", + "mode": "default", + "rows": [ + [ + { + "strings": [ + "7" + ] + }, + { + "strings": [ + "8" + ] + }, + { + "strings": [ + "9" + ] + }, + { + "action": "delete", + "iconName": "edit-clear-symbolic" + } + ], + [ + { + "strings": [ + "4" + ] + }, + { + "strings": [ + "5" + ] + }, + { + "strings": [ + "6" + ] + }, + { + "iconName": "keyboard-enter-symbolic", + "keyval": "0xff0d", + "height": 2 + } + ], + [ + { + "strings": [ + "1" + ] + }, + { + "strings": [ + "2" + ] + }, + { + "strings": [ + "3" + ] + } + ], + [ + { + "strings": [ + "*" + ] + }, + { + "strings": [ + "0", + "+" + ] + }, + { + "strings": [ + "#" + ] + }, + { + "action": "hide", + "iconName": "keyboard-hide-symbolic" + } + ] + ] + } + ], + "name": "Phone" +} diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js index 8f460bb52..f6b01c294 100644 --- a/js/ui/keyboard.js +++ b/js/ui/keyboard.js @@ -1391,10 +1391,12 @@ export const Keyboard = GObject.registerClass({ y_expand: true, }); - if (purpose === Clutter.InputContentPurpose.DIGITS || - purpose === Clutter.InputContentPurpose.NUMBER || - purpose === Clutter.InputContentPurpose.PHONE) { + if (purpose === Clutter.InputContentPurpose.DIGITS) { keyboardModel = new KeyboardModel('digits'); + } else if (purpose === Clutter.InputContentPurpose.NUMBER) { + keyboardModel = new KeyboardModel('number'); + } else if (purpose === Clutter.InputContentPurpose.PHONE) { + keyboardModel = new KeyboardModel('phone'); } else { let groups = [groupName]; if (groupName.includes('+'))