[gnome-shell/wip/carlosg/osk-updates: 6/33] keyboard: Read key width from model




commit a2674c116689e501df70467194d38ee9137026c7
Author: Carlos Garnacho <carlosg gnome org>
Date:   Thu Apr 14 13:20:49 2022 +0200

    keyboard: Read key width from model
    
    Handle a "width" property to key structs in the JSON files, and
    use that (so far) to give the right width to space keys in layouts.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2278>

 data/osk-layouts/am.json          | 6 +++++-
 data/osk-layouts/ara.json         | 5 ++++-
 data/osk-layouts/at.json          | 4 ++++
 data/osk-layouts/be.json          | 4 ++++
 data/osk-layouts/bg.json          | 6 +++++-
 data/osk-layouts/by.json          | 6 +++++-
 data/osk-layouts/ca.json          | 6 +++++-
 data/osk-layouts/ch+fr.json       | 4 ++++
 data/osk-layouts/ch.json          | 4 ++++
 data/osk-layouts/cz.json          | 6 +++++-
 data/osk-layouts/de.json          | 6 +++++-
 data/osk-layouts/dk.json          | 6 +++++-
 data/osk-layouts/ee.json          | 6 +++++-
 data/osk-layouts/epo.json         | 6 +++++-
 data/osk-layouts/es+cat.json      | 6 +++++-
 data/osk-layouts/es.json          | 6 +++++-
 data/osk-layouts/fi.json          | 6 +++++-
 data/osk-layouts/fr.json          | 6 +++++-
 data/osk-layouts/ge.json          | 5 ++++-
 data/osk-layouts/gr.json          | 6 +++++-
 data/osk-layouts/hr.json          | 6 +++++-
 data/osk-layouts/hu.json          | 6 +++++-
 data/osk-layouts/id.json          | 6 +++++-
 data/osk-layouts/il.json          | 5 ++++-
 data/osk-layouts/in+bolnagri.json | 5 ++++-
 data/osk-layouts/in+mal.json      | 4 ++++
 data/osk-layouts/ir.json          | 3 +++
 data/osk-layouts/is.json          | 6 +++++-
 data/osk-layouts/it.json          | 6 +++++-
 data/osk-layouts/ke.json          | 6 +++++-
 data/osk-layouts/kg.json          | 6 +++++-
 data/osk-layouts/kh.json          | 5 ++++-
 data/osk-layouts/la.json          | 5 ++++-
 data/osk-layouts/latam.json       | 6 +++++-
 data/osk-layouts/lt.json          | 6 +++++-
 data/osk-layouts/lv.json          | 6 +++++-
 data/osk-layouts/mk.json          | 6 +++++-
 data/osk-layouts/mn.json          | 6 +++++-
 data/osk-layouts/my.json          | 6 +++++-
 data/osk-layouts/nl.json          | 6 +++++-
 data/osk-layouts/no.json          | 4 ++++
 data/osk-layouts/ph.json          | 6 +++++-
 data/osk-layouts/pl.json          | 6 +++++-
 data/osk-layouts/pt.json          | 6 +++++-
 data/osk-layouts/ro.json          | 6 +++++-
 data/osk-layouts/rs.json          | 6 +++++-
 data/osk-layouts/ru.json          | 6 +++++-
 data/osk-layouts/se.json          | 6 +++++-
 data/osk-layouts/si.json          | 6 +++++-
 data/osk-layouts/sk.json          | 6 +++++-
 data/osk-layouts/th.json          | 4 ++++
 data/osk-layouts/tr.json          | 6 +++++-
 data/osk-layouts/ua.json          | 6 +++++-
 data/osk-layouts/uk.json          | 6 +++++-
 data/osk-layouts/us.json          | 6 +++++-
 data/osk-layouts/vn.json          | 6 +++++-
 data/osk-layouts/za.json          | 6 +++++-
 js/ui/keyboard.js                 | 5 ++---
 58 files changed, 272 insertions(+), 52 deletions(-)
---
diff --git a/data/osk-layouts/am.json b/data/osk-layouts/am.json
index b5957fda9b..8378a480f1 100644
--- a/data/osk-layouts/am.json
+++ b/data/osk-layouts/am.json
@@ -210,6 +210,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -432,6 +433,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -643,6 +645,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -849,6 +852,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -884,4 +888,4 @@
   ],
   "locale": "hy",
   "name": "Armenian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/ara.json b/data/osk-layouts/ara.json
index d8be7c5adf..858ecbd5f8 100644
--- a/data/osk-layouts/ara.json
+++ b/data/osk-layouts/ara.json
@@ -200,6 +200,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -428,6 +429,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -637,6 +639,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -679,4 +682,4 @@
   ],
   "locale": "ar",
   "name": "Arabic"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/at.json b/data/osk-layouts/at.json
index b61153a6ca..9291521245 100644
--- a/data/osk-layouts/at.json
+++ b/data/osk-layouts/at.json
@@ -178,6 +178,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -376,6 +377,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -593,6 +595,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -786,6 +789,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
diff --git a/data/osk-layouts/be.json b/data/osk-layouts/be.json
index 030c87f96b..94be844221 100644
--- a/data/osk-layouts/be.json
+++ b/data/osk-layouts/be.json
@@ -200,6 +200,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -419,6 +420,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -636,6 +638,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -829,6 +832,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
diff --git a/data/osk-layouts/bg.json b/data/osk-layouts/bg.json
index f82faf2520..a452fb756a 100644
--- a/data/osk-layouts/bg.json
+++ b/data/osk-layouts/bg.json
@@ -168,6 +168,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -356,6 +357,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -573,6 +575,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -765,6 +768,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -786,4 +790,4 @@
   ],
   "locale": "bg",
   "name": "Bulgarian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/by.json b/data/osk-layouts/by.json
index 4c66a77083..5aa936e6b8 100644
--- a/data/osk-layouts/by.json
+++ b/data/osk-layouts/by.json
@@ -174,6 +174,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -368,6 +369,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -585,6 +587,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -777,6 +780,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -798,4 +802,4 @@
   ],
   "locale": "be",
   "name": "Belarusian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/ca.json b/data/osk-layouts/ca.json
index 0a8c69c416..eaebe20b2c 100644
--- a/data/osk-layouts/ca.json
+++ b/data/osk-layouts/ca.json
@@ -193,6 +193,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -406,6 +407,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -623,6 +625,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -815,6 +818,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -836,4 +840,4 @@
   ],
   "locale": "fr-CA",
   "name": "French Canada"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/ch+fr.json b/data/osk-layouts/ch+fr.json
index 998bc59e45..2f1cff87af 100644
--- a/data/osk-layouts/ch+fr.json
+++ b/data/osk-layouts/ch+fr.json
@@ -178,6 +178,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -376,6 +377,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -593,6 +595,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -786,6 +789,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
diff --git a/data/osk-layouts/ch.json b/data/osk-layouts/ch.json
index c95e7f8b0c..c108c1879f 100644
--- a/data/osk-layouts/ch.json
+++ b/data/osk-layouts/ch.json
@@ -178,6 +178,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -376,6 +377,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -593,6 +595,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -786,6 +789,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
diff --git a/data/osk-layouts/cz.json b/data/osk-layouts/cz.json
index d491a595ad..35988275e5 100644
--- a/data/osk-layouts/cz.json
+++ b/data/osk-layouts/cz.json
@@ -200,6 +200,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -420,6 +421,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -637,6 +639,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -829,6 +832,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -850,4 +854,4 @@
   ],
   "locale": "cs",
   "name": "Czech"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/de.json b/data/osk-layouts/de.json
index 0a71ef702d..9f48ba4de1 100644
--- a/data/osk-layouts/de.json
+++ b/data/osk-layouts/de.json
@@ -178,6 +178,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -376,6 +377,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -593,6 +595,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -786,6 +789,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -807,4 +811,4 @@
   ],
   "locale": "de",
   "name": "German"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/dk.json b/data/osk-layouts/dk.json
index 7085fe7a1b..8ce8088340 100644
--- a/data/osk-layouts/dk.json
+++ b/data/osk-layouts/dk.json
@@ -194,6 +194,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -408,6 +409,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -625,6 +627,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -818,6 +821,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -839,4 +843,4 @@
   ],
   "locale": "da",
   "name": "Danish"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/ee.json b/data/osk-layouts/ee.json
index 30179bdb0d..e762a35d9e 100644
--- a/data/osk-layouts/ee.json
+++ b/data/osk-layouts/ee.json
@@ -232,6 +232,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -484,6 +485,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -701,6 +703,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -894,6 +897,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -915,4 +919,4 @@
   ],
   "locale": "et",
   "name": "Estonian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/epo.json b/data/osk-layouts/epo.json
index 9b11969c02..45fed380d7 100644
--- a/data/osk-layouts/epo.json
+++ b/data/osk-layouts/epo.json
@@ -251,6 +251,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -522,6 +523,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -739,6 +741,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -931,6 +934,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -952,4 +956,4 @@
   ],
   "locale": "eo",
   "name": "Esperanto"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/es+cat.json b/data/osk-layouts/es+cat.json
index 93630dce95..57e9b954b1 100644
--- a/data/osk-layouts/es+cat.json
+++ b/data/osk-layouts/es+cat.json
@@ -196,6 +196,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -411,6 +412,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -627,6 +629,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -821,6 +824,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -843,4 +847,4 @@
   ],
   "locale": "ca",
   "name": "Catalan"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/es.json b/data/osk-layouts/es.json
index ec8193c10d..8fd6e06705 100644
--- a/data/osk-layouts/es.json
+++ b/data/osk-layouts/es.json
@@ -194,6 +194,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -408,6 +409,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -625,6 +627,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -821,6 +824,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -845,4 +849,4 @@
   ],
   "locale": "es",
   "name": "Spanish"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/fi.json b/data/osk-layouts/fi.json
index 94793cdda3..c93d73af93 100644
--- a/data/osk-layouts/fi.json
+++ b/data/osk-layouts/fi.json
@@ -184,6 +184,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -388,6 +389,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -605,6 +607,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -798,6 +801,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -819,4 +823,4 @@
   ],
   "locale": "fi",
   "name": "Finnish"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/fr.json b/data/osk-layouts/fr.json
index cf581b50c6..44803c0552 100644
--- a/data/osk-layouts/fr.json
+++ b/data/osk-layouts/fr.json
@@ -202,6 +202,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -424,6 +425,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -641,6 +643,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -834,6 +837,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -855,4 +859,4 @@
   ],
   "locale": "fr",
   "name": "French"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/ge.json b/data/osk-layouts/ge.json
index 60952d1e53..c6a1a33c99 100644
--- a/data/osk-layouts/ge.json
+++ b/data/osk-layouts/ge.json
@@ -158,6 +158,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -375,6 +376,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -567,6 +569,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -588,4 +591,4 @@
   ],
   "locale": "ka",
   "name": "Georgian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/gr.json b/data/osk-layouts/gr.json
index 1c44a80150..4395d9d287 100644
--- a/data/osk-layouts/gr.json
+++ b/data/osk-layouts/gr.json
@@ -159,6 +159,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -338,6 +339,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -555,6 +557,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -748,6 +751,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -769,4 +773,4 @@
   ],
   "locale": "el",
   "name": "Greek"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/hr.json b/data/osk-layouts/hr.json
index e1921e50bd..a800c21f51 100644
--- a/data/osk-layouts/hr.json
+++ b/data/osk-layouts/hr.json
@@ -159,6 +159,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -338,6 +339,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -555,6 +557,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -747,6 +750,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -768,4 +772,4 @@
   ],
   "locale": "hr",
   "name": "Croatian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/hu.json b/data/osk-layouts/hu.json
index 2c829f9781..e66f704c67 100644
--- a/data/osk-layouts/hu.json
+++ b/data/osk-layouts/hu.json
@@ -183,6 +183,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -386,6 +387,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -603,6 +605,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -795,6 +798,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -816,4 +820,4 @@
   ],
   "locale": "hu",
   "name": "Hungarian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/id.json b/data/osk-layouts/id.json
index 488ae78ac6..5e7701a793 100644
--- a/data/osk-layouts/id.json
+++ b/data/osk-layouts/id.json
@@ -147,6 +147,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -314,6 +315,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -531,6 +533,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -723,6 +726,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -744,4 +748,4 @@
   ],
   "locale": "id",
   "name": "Indonesian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/il.json b/data/osk-layouts/il.json
index 2e9a7db8dc..de8a4a364b 100644
--- a/data/osk-layouts/il.json
+++ b/data/osk-layouts/il.json
@@ -171,6 +171,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -388,6 +389,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -582,6 +584,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -604,4 +607,4 @@
   ],
   "locale": "he",
   "name": "Hebrew"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/in+bolnagri.json b/data/osk-layouts/in+bolnagri.json
index a98cb8816b..86835df6d4 100644
--- a/data/osk-layouts/in+bolnagri.json
+++ b/data/osk-layouts/in+bolnagri.json
@@ -196,6 +196,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -414,6 +415,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -607,6 +609,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -628,4 +631,4 @@
   ],
   "locale": "hi",
   "name": "Hindi"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/in+mal.json b/data/osk-layouts/in+mal.json
index 6557fbcd1a..b7e5b5e780 100644
--- a/data/osk-layouts/in+mal.json
+++ b/data/osk-layouts/in+mal.json
@@ -179,6 +179,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -371,6 +372,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -599,6 +601,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -791,6 +794,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
diff --git a/data/osk-layouts/ir.json b/data/osk-layouts/ir.json
index 6f5c3ae789..6826eabfa7 100644
--- a/data/osk-layouts/ir.json
+++ b/data/osk-layouts/ir.json
@@ -200,6 +200,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -431,6 +432,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -641,6 +643,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
diff --git a/data/osk-layouts/is.json b/data/osk-layouts/is.json
index d1acb02da6..c451c8ba13 100644
--- a/data/osk-layouts/is.json
+++ b/data/osk-layouts/is.json
@@ -185,6 +185,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -390,6 +391,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -607,6 +609,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -799,6 +802,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -820,4 +824,4 @@
   ],
   "locale": "is",
   "name": "Icelandic"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/it.json b/data/osk-layouts/it.json
index 9fa38f7aac..88ad78966e 100644
--- a/data/osk-layouts/it.json
+++ b/data/osk-layouts/it.json
@@ -183,6 +183,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -386,6 +387,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -603,6 +605,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -796,6 +799,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -817,4 +821,4 @@
   ],
   "locale": "it",
   "name": "Italian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/ke.json b/data/osk-layouts/ke.json
index 1beb06fd03..0a7250ebba 100644
--- a/data/osk-layouts/ke.json
+++ b/data/osk-layouts/ke.json
@@ -182,6 +182,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -384,6 +385,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -601,6 +603,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -793,6 +796,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -814,4 +818,4 @@
   ],
   "locale": "sw",
   "name": "Swahili"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/kg.json b/data/osk-layouts/kg.json
index f1c190d234..c3de4d1571 100644
--- a/data/osk-layouts/kg.json
+++ b/data/osk-layouts/kg.json
@@ -177,6 +177,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -374,6 +375,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -591,6 +593,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -783,6 +786,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -804,4 +808,4 @@
   ],
   "locale": "ky",
   "name": "Kirghiz"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/kh.json b/data/osk-layouts/kh.json
index a860ffab77..b99ed23de8 100644
--- a/data/osk-layouts/kh.json
+++ b/data/osk-layouts/kh.json
@@ -269,6 +269,7 @@
             ]
           },
           {
+            "width": 7,
             "strings": [
               " "
             ]
@@ -487,6 +488,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -679,6 +681,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -700,4 +703,4 @@
   ],
   "locale": "km",
   "name": "Khmer"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/la.json b/data/osk-layouts/la.json
index 24aec2cde6..b50ef2d303 100644
--- a/data/osk-layouts/la.json
+++ b/data/osk-layouts/la.json
@@ -259,6 +259,7 @@
             ]
           },
           {
+            "width": 7,
             "strings": [
               " "
             ]
@@ -477,6 +478,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -670,6 +672,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -691,4 +694,4 @@
   ],
   "locale": "lo",
   "name": "Lao"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/latam.json b/data/osk-layouts/latam.json
index 7089e57c03..955ead8d36 100644
--- a/data/osk-layouts/latam.json
+++ b/data/osk-layouts/latam.json
@@ -194,6 +194,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -408,6 +409,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -625,6 +627,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -820,6 +823,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -844,4 +848,4 @@
   ],
   "locale": "es-US",
   "name": "Spanish United States"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/lt.json b/data/osk-layouts/lt.json
index ee229d31f5..d0d7533a6f 100644
--- a/data/osk-layouts/lt.json
+++ b/data/osk-layouts/lt.json
@@ -217,6 +217,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -454,6 +455,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -671,6 +673,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -863,6 +866,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -884,4 +888,4 @@
   ],
   "locale": "lt",
   "name": "Lithuanian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/lv.json b/data/osk-layouts/lv.json
index 6eb575f025..c2dcb717a2 100644
--- a/data/osk-layouts/lv.json
+++ b/data/osk-layouts/lv.json
@@ -216,6 +216,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -452,6 +453,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -669,6 +671,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -861,6 +864,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -882,4 +886,4 @@
   ],
   "locale": "lv",
   "name": "Latvian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/mk.json b/data/osk-layouts/mk.json
index b60640dc40..9b0f3e9f95 100644
--- a/data/osk-layouts/mk.json
+++ b/data/osk-layouts/mk.json
@@ -174,6 +174,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -368,6 +369,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -585,6 +587,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -777,6 +780,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -798,4 +802,4 @@
   ],
   "locale": "mk",
   "name": "Macedonian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/mn.json b/data/osk-layouts/mn.json
index 7911102b73..fe8e3cf71c 100644
--- a/data/osk-layouts/mn.json
+++ b/data/osk-layouts/mn.json
@@ -176,6 +176,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -372,6 +373,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -590,6 +592,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -783,6 +786,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -804,4 +808,4 @@
   ],
   "locale": "mn",
   "name": "Mongolian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/my.json b/data/osk-layouts/my.json
index d94d7c4b91..60b1fb52c7 100644
--- a/data/osk-layouts/my.json
+++ b/data/osk-layouts/my.json
@@ -147,6 +147,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -314,6 +315,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -531,6 +533,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -723,6 +726,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -744,4 +748,4 @@
   ],
   "locale": "ms",
   "name": "Malay"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/nl.json b/data/osk-layouts/nl.json
index f886df8d09..22c0aa138f 100644
--- a/data/osk-layouts/nl.json
+++ b/data/osk-layouts/nl.json
@@ -185,6 +185,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -390,6 +391,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -607,6 +609,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -800,6 +803,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -821,4 +825,4 @@
   ],
   "locale": "nl",
   "name": "Dutch"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/no.json b/data/osk-layouts/no.json
index b9bcdd1393..f0d9741f45 100644
--- a/data/osk-layouts/no.json
+++ b/data/osk-layouts/no.json
@@ -194,6 +194,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -408,6 +409,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -625,6 +627,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -818,6 +821,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
diff --git a/data/osk-layouts/ph.json b/data/osk-layouts/ph.json
index aa348c7a93..7d838f4cea 100644
--- a/data/osk-layouts/ph.json
+++ b/data/osk-layouts/ph.json
@@ -147,6 +147,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -314,6 +315,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -531,6 +533,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -723,6 +726,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -744,4 +748,4 @@
   ],
   "locale": "fil",
   "name": "Filipino"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/pl.json b/data/osk-layouts/pl.json
index 7910c02316..ea5e547fc7 100644
--- a/data/osk-layouts/pl.json
+++ b/data/osk-layouts/pl.json
@@ -183,6 +183,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -386,6 +387,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -603,6 +605,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -795,6 +798,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -816,4 +820,4 @@
   ],
   "locale": "pl",
   "name": "Polish"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/pt.json b/data/osk-layouts/pt.json
index a580a32651..e19bbb3876 100644
--- a/data/osk-layouts/pt.json
+++ b/data/osk-layouts/pt.json
@@ -185,6 +185,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -390,6 +391,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -607,6 +609,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -800,6 +803,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -821,4 +825,4 @@
   ],
   "locale": "pt-PT",
   "name": "Portuguese Portugal"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/ro.json b/data/osk-layouts/ro.json
index 156c355c58..f9ea966598 100644
--- a/data/osk-layouts/ro.json
+++ b/data/osk-layouts/ro.json
@@ -167,6 +167,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -354,6 +355,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -571,6 +573,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -763,6 +766,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -784,4 +788,4 @@
   ],
   "locale": "ro",
   "name": "Romanian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/rs.json b/data/osk-layouts/rs.json
index a61187df3d..d9b3ad4da3 100644
--- a/data/osk-layouts/rs.json
+++ b/data/osk-layouts/rs.json
@@ -174,6 +174,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -368,6 +369,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -585,6 +587,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -777,6 +780,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -798,4 +802,4 @@
   ],
   "locale": "sr",
   "name": "Serbian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/ru.json b/data/osk-layouts/ru.json
index 2cf0469df3..0f574b6287 100644
--- a/data/osk-layouts/ru.json
+++ b/data/osk-layouts/ru.json
@@ -174,6 +174,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -368,6 +369,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -585,6 +587,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -777,6 +780,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -798,4 +802,4 @@
   ],
   "locale": "ru",
   "name": "Russian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/se.json b/data/osk-layouts/se.json
index cc24b1439f..a378ffe6a0 100644
--- a/data/osk-layouts/se.json
+++ b/data/osk-layouts/se.json
@@ -211,6 +211,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -442,6 +443,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -659,6 +661,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -852,6 +855,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -873,4 +877,4 @@
   ],
   "locale": "sv",
   "name": "Swedish"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/si.json b/data/osk-layouts/si.json
index dfaf2d6848..e39159f433 100644
--- a/data/osk-layouts/si.json
+++ b/data/osk-layouts/si.json
@@ -152,6 +152,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -324,6 +325,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -541,6 +543,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -734,6 +737,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -755,4 +759,4 @@
   ],
   "locale": "sl",
   "name": "Slovenian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/sk.json b/data/osk-layouts/sk.json
index a6f9075d36..40c68a68a2 100644
--- a/data/osk-layouts/sk.json
+++ b/data/osk-layouts/sk.json
@@ -217,6 +217,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -454,6 +455,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -671,6 +673,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -864,6 +867,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -885,4 +889,4 @@
   ],
   "locale": "sk",
   "name": "Slovak"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/th.json b/data/osk-layouts/th.json
index 9ab336cca6..4f110e9d56 100644
--- a/data/osk-layouts/th.json
+++ b/data/osk-layouts/th.json
@@ -259,6 +259,7 @@
             ]
           },
           {
+            "width": 7,
             "strings": [
               " "
             ]
@@ -532,6 +533,7 @@
             ]
           },
           {
+            "width": 7,
             "strings": [
               " "
             ]
@@ -754,6 +756,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -947,6 +950,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
diff --git a/data/osk-layouts/tr.json b/data/osk-layouts/tr.json
index 2a8012d0a6..24f8d29bb6 100644
--- a/data/osk-layouts/tr.json
+++ b/data/osk-layouts/tr.json
@@ -176,6 +176,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -372,6 +373,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -589,6 +591,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -782,6 +785,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -803,4 +807,4 @@
   ],
   "locale": "tr",
   "name": "Turkish"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/ua.json b/data/osk-layouts/ua.json
index 25ccb44b66..b2b2b0b981 100644
--- a/data/osk-layouts/ua.json
+++ b/data/osk-layouts/ua.json
@@ -175,6 +175,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -370,6 +371,7 @@
             ]
           },
           {
+            "width": 6,
             "strings": [
               " "
             ]
@@ -588,6 +590,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -781,6 +784,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -802,4 +806,4 @@
   ],
   "locale": "uk",
   "name": "Ukrainian"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/uk.json b/data/osk-layouts/uk.json
index 36aa114d9c..2fb23e784f 100644
--- a/data/osk-layouts/uk.json
+++ b/data/osk-layouts/uk.json
@@ -181,6 +181,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -382,6 +383,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -599,6 +601,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -792,6 +795,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -813,4 +817,4 @@
   ],
   "locale": "en-GB",
   "name": "English Great Britain"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/us.json b/data/osk-layouts/us.json
index ec5d98d767..96d67fc2f3 100644
--- a/data/osk-layouts/us.json
+++ b/data/osk-layouts/us.json
@@ -181,6 +181,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -382,6 +383,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -599,6 +601,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -791,6 +794,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -812,4 +816,4 @@
   ],
   "locale": "en",
   "name": "English United States"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/vn.json b/data/osk-layouts/vn.json
index 07b10d2f4e..918aa456e2 100644
--- a/data/osk-layouts/vn.json
+++ b/data/osk-layouts/vn.json
@@ -214,6 +214,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -448,6 +449,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -666,6 +668,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -859,6 +862,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -880,4 +884,4 @@
   ],
   "locale": "vi",
   "name": "Vietnamese"
-}
\ No newline at end of file
+}
diff --git a/data/osk-layouts/za.json b/data/osk-layouts/za.json
index ee154fba5c..a28011a044 100644
--- a/data/osk-layouts/za.json
+++ b/data/osk-layouts/za.json
@@ -188,6 +188,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -396,6 +397,7 @@
             ]
           },
           {
+            "width": 5,
             "strings": [
               " "
             ]
@@ -613,6 +615,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -805,6 +808,7 @@
             ]
           },
           {
+            "width": 3,
             "strings": [
               " "
             ]
@@ -826,4 +830,4 @@
   ],
   "locale": "af",
   "name": "Afrikaans"
-}
\ No newline at end of file
+}
diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
index fc4c0c59ef..a14b3c2c03 100644
--- a/js/ui/keyboard.js
+++ b/js/ui/keyboard.js
@@ -1514,9 +1514,8 @@ var Keyboard = GObject.registerClass({
             const {strings} = key;
             let button = new Key(strings.shift(), strings);
 
-            /* Space key gets special width, dependent on the number of surrounding keys */
-            if (button.key == ' ')
-                button.setWidth(keys.length <= 3 ? 5 : 3);
+            if (key.width !== null)
+                button.setWidth(key.width);
 
             button.connect('pressed', (actor, keyval, str) => {
                 if (!Main.inputMethod.currentFocus ||


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]