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>
This commit is contained in:
Carlos Garnacho 2022-04-14 13:20:49 +02:00 committed by Florian Müllner
parent 6898522e63
commit a2674c1166
58 changed files with 272 additions and 52 deletions

View File

@ -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": [
" "
]

View File

@ -200,6 +200,7 @@
]
},
{
"width": 6,
"strings": [
" "
]
@ -428,6 +429,7 @@
]
},
{
"width": 3,
"strings": [
" "
]
@ -637,6 +639,7 @@
]
},
{
"width": 3,
"strings": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -158,6 +158,7 @@
]
},
{
"width": 5,
"strings": [
" "
]
@ -375,6 +376,7 @@
]
},
{
"width": 3,
"strings": [
" "
]
@ -567,6 +569,7 @@
]
},
{
"width": 3,
"strings": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -171,6 +171,7 @@
]
},
{
"width": 5,
"strings": [
" "
]
@ -388,6 +389,7 @@
]
},
{
"width": 3,
"strings": [
" "
]
@ -582,6 +584,7 @@
]
},
{
"width": 3,
"strings": [
" "
]

View File

@ -196,6 +196,7 @@
]
},
{
"width": 6,
"strings": [
" "
]
@ -414,6 +415,7 @@
]
},
{
"width": 3,
"strings": [
" "
]
@ -607,6 +609,7 @@
]
},
{
"width": 3,
"strings": [
" "
]

View File

@ -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": [
" "
]

View File

@ -200,6 +200,7 @@
]
},
{
"width": 6,
"strings": [
" "
]
@ -431,6 +432,7 @@
]
},
{
"width": 3,
"strings": [
" "
]
@ -641,6 +643,7 @@
]
},
{
"width": 3,
"strings": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -269,6 +269,7 @@
]
},
{
"width": 7,
"strings": [
" "
]
@ -487,6 +488,7 @@
]
},
{
"width": 3,
"strings": [
" "
]
@ -679,6 +681,7 @@
]
},
{
"width": 3,
"strings": [
" "
]

View File

@ -259,6 +259,7 @@
]
},
{
"width": 7,
"strings": [
" "
]
@ -477,6 +478,7 @@
]
},
{
"width": 3,
"strings": [
" "
]
@ -670,6 +672,7 @@
]
},
{
"width": 3,
"strings": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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": [
" "
]

View File

@ -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 ||