From 2f894882a8c481b654c8e0717ff83fc0e4e6e92a Mon Sep 17 00:00:00 2001
From: "Tadashi G. Takaoka" <takaoka@google.com>
Date: Wed, 1 Jun 2011 16:16:57 +0900
Subject: [PATCH] Revised phone/number layout for 7 inch tablet

Bug: 4442045
Change-Id: I562d75436aec2057863f6a8252275a5e47ecea6e
---
 .../sym_keyboard_tab_holo.png                 | Bin 0 -> 387 bytes
 java/res/xml-sw600dp/kbd_azerty_rows.xml      |   2 +-
 java/res/xml-sw600dp/kbd_key_styles.xml       |   4 +-
 java/res/xml-sw600dp/kbd_number.xml           |  69 +++++++++---------
 java/res/xml-sw600dp/kbd_phone.xml            |  48 ++++++------
 java/res/xml-sw600dp/kbd_phone_symbols.xml    |  52 +++++++------
 java/res/xml-sw600dp/kbd_qwerty_row3.xml      |   2 +-
 java/res/xml-sw600dp/kbd_qwerty_row4.xml      |  50 +++++++------
 java/res/xml-sw600dp/kbd_qwertz_rows.xml      |   2 +-
 java/res/xml-sw600dp/kbd_ru_rows.xml          |   2 +-
 java/res/xml-sw600dp/kbd_sr_rows.xml          |   2 +-
 java/res/xml-sw600dp/kbd_symbols.xml          |  16 ++--
 java/res/xml-sw600dp/kbd_symbols_shift.xml    |   6 +-
 java/res/xml-sw768dp/kbd_number.xml           |  22 +++---
 java/res/xml-sw768dp/kbd_phone.xml            |  16 ++--
 java/res/xml-sw768dp/kbd_phone_symbols.xml    |  16 ++--
 .../com/android/inputmethod/keyboard/Key.java |  10 +--
 .../inputmethod/keyboard/KeyboardParser.java  |   2 +-
 18 files changed, 162 insertions(+), 159 deletions(-)
 create mode 100644 java/res/drawable-sw768dp-mdpi/sym_keyboard_tab_holo.png

diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_tab_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_tab_holo.png
new file mode 100644
index 0000000000000000000000000000000000000000..5acd12cc4796349c05581243a083e5054737eed9
GIT binary patch
literal 387
zcmV-}0et?6P)<h;3K|Lk000e1NJLTq001cf001xu1^@s6jJZ>#0003>Nkl<ZSi|j@
zu?m7f9EVM7sL+Cnhz22=8iI({UZElA9U5ACji8}d2pS^V8(JEop?9+X!5ti;=oxsw
z@`eu_N<Y5t)c#fw1Qt4$ku;J<@^>X2qDgd!HsKLAnxqhv@sK2KE;S<F#6v1tOi5c_
zM~ISMXf4@jlHwu*!so{=qKYJ0<|myIH)5e!HFwE3XQxnAn<V3&vZ_`|!JZgORcnZn
zNmXGa1&4^LaFU|xGE`Mb(usN4ry;FmR8=L(tb$o2h0sbxQmhR>!^OUZRh^?tGOoyy
zFJeoKQP<>!e-CnZvw9n%mt}Y7ai2U(^%yRaq^Q^BpJ%^V1?h=%BBr5wFfSO-n0hd8
zL9E^+rk-|5R&OoUYedx3DtSy<FL%ijKWSf*ORA^kf43`bj5_iJqhw}5M)FVQlRq=*
hHG_R4X(S6N`2k|7^ih0ixbFY}002ovPDHLkV1mh%qSF8X

literal 0
HcmV?d00001

diff --git a/java/res/xml-sw600dp/kbd_azerty_rows.xml b/java/res/xml-sw600dp/kbd_azerty_rows.xml
index 140aec6f18..e3a8353878 100644
--- a/java/res/xml-sw600dp/kbd_azerty_rows.xml
+++ b/java/res/xml-sw600dp/kbd_azerty_rows.xml
@@ -105,7 +105,7 @@
     >
         <Key
             latin:keyStyle="shiftKeyStyle"
-            latin:keyWidth="11.1%p"
+            latin:keyWidth="10.0%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="w"
diff --git a/java/res/xml-sw600dp/kbd_key_styles.xml b/java/res/xml-sw600dp/kbd_key_styles.xml
index 0612cfd62d..cd42624583 100644
--- a/java/res/xml-sw600dp/kbd_key_styles.xml
+++ b/java/res/xml-sw600dp/kbd_key_styles.xml
@@ -167,8 +167,8 @@
     <key-style
         latin:styleName="tabKeyStyle"
         latin:code="@integer/key_tab"
-        latin:keyLabel="@string/label_tab_key"
-        latin:keyLabelOption="fontNormal"
+        latin:keyIcon="@drawable/sym_keyboard_tab_holo"
+        latin:iconPreview="@drawable/sym_keyboard_tab_holo"
         latin:parentStyle="functionalKeyStyle" />
     <key-style
         latin:styleName="toSymbolKeyStyle"
diff --git a/java/res/xml-sw600dp/kbd_number.xml b/java/res/xml-sw600dp/kbd_number.xml
index 051c1c122f..fd6cc1ad59 100644
--- a/java/res/xml-sw600dp/kbd_number.xml
+++ b/java/res/xml-sw600dp/kbd_number.xml
@@ -23,7 +23,7 @@
     latin:keyboardHeight="@dimen/keyboardHeight"
     latin:maxKeyboardHeight="50%p"
     latin:rowHeight="25%p"
-    latin:keyWidth="12.7%p"
+    latin:keyWidth="16.75%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:popupKeyboardTemplate="@xml/kbd_popup_template"
@@ -41,35 +41,35 @@
             <Row>
                 <Key
                     latin:keyStyle="num1KeyStyle"
-                    latin:keyXPos="29.5%p" />
+                    latin:keyXPos="24.875%p" />
                 <Key
                     latin:keyStyle="num2KeyStyle" />
                 <Key
                     latin:keyStyle="num3KeyStyle" />
                 <Key
                     latin:keyStyle="deleteKeyStyle"
-                    latin:keyXPos="-10.0%p"
+                    latin:keyXPos="-11.0%p"
                     latin:keyWidth="0%p"
                     latin:keyEdgeFlags="right" />
             </Row>
             <Row>
                 <Key
                     latin:keyStyle="num4KeyStyle"
-                    latin:keyXPos="29.5%p" />
+                    latin:keyXPos="24.875%p" />
                 <Key
                     latin:keyStyle="num5KeyStyle" />
                 <Key
                     latin:keyStyle="num6KeyStyle" />
                 <Key
                     latin:keyStyle="returnKeyStyle"
-                    latin:keyXPos="-14.6%p"
+                    latin:keyXPos="-11.0%p"
                     latin:keyWidth="0%p"
                     latin:keyEdgeFlags="right" />
             </Row>
             <Row>
                 <Key
                     latin:keyStyle="num7KeyStyle"
-                    latin:keyXPos="29.5%p" />
+                    latin:keyXPos="24.875%p" />
                 <Key
                     latin:keyStyle="num8KeyStyle" />
                 <Key
@@ -79,17 +79,17 @@
             <Row>
                 <Key
                     latin:keyStyle="tabKeyStyle"
-                    latin:keyWidth="10.0%p"
+                    latin:keyWidth="11.0%p"
                     latin:keyEdgeFlags="left" />
                 <Spacer
-                    latin:keyXPos="29.5%p" />
+                    latin:keyXPos="24.875%p" />
                 <Key
                     latin:keyStyle="num0KeyStyle" />
                 <Spacer />
                 <Key
                     latin:keyStyle="micOrSettingsKeyStyle"
-                    latin:keyXPos="-10.0%p"
-                    latin:keyWidth="0.0%p"
+                    latin:keyXPos="-11.00%p"
+                    latin:keyWidth="0%p"
                     latin:keyEdgeFlags="right" />
             </Row>
         </case>
@@ -99,49 +99,49 @@
             <Row>
                 <Key
                     latin:keyLabel="-"
-                    latin:keyXPos="14.5%p"
-                    latin:keyWidth="9.1%p" />
+                    latin:keyXPos="11.0%p"
+                    latin:keyWidth="9.25%p" />
                 <Key
                     latin:keyLabel="+"
-                    latin:keyWidth="9.1%p" />
+                    latin:keyWidth="9.25%p" />
                 <Key
                     latin:keyLabel="."
-                    latin:keyWidth="9.1%p" />
+                    latin:keyWidth="9.25%p" />
                 <Key
                     latin:keyLabel="1"
-                    latin:keyXPos="43.3%p" />
+                    latin:keyXPos="38.75%p" />
                 <Key
                     latin:keyLabel="2" />
                 <Key
                     latin:keyLabel="3" />
                 <Key
                     latin:keyStyle="deleteKeyStyle"
-                    latin:keyXPos="-10.0%p"
-                    latin:keyWidth="0%p"
+                    latin:keyXPos="-11.00%p"
+                    latin:keyWidth="-11.00%p"
                     latin:keyEdgeFlags="right" />
             </Row>
             <Row>
                 <Key
                     latin:keyLabel="*"
-                    latin:keyXPos="14.5%p"
-                    latin:keyWidth="9.1%p" />
+                    latin:keyXPos="11.0%p"
+                    latin:keyWidth="9.25%p" />
                 <Key
                     latin:keyLabel="/"
-                    latin:keyWidth="9.1%p" />
+                    latin:keyWidth="9.25%p" />
                 <Key
                     latin:keyLabel=","
-                    latin:keyWidth="9.1%p" />
+                    latin:keyWidth="9.25%p" />
                 <Key
                     latin:keyLabel="4"
-                    latin:keyXPos="43.3%p" />
+                    latin:keyXPos="38.75%p" />
                 <Key
                     latin:keyLabel="5" />
                 <Key
                     latin:keyLabel="6" />
                 <Key
                     latin:keyStyle="returnKeyStyle"
-                    latin:keyXPos="-14.6%p"
-                    latin:keyWidth="0%p"
+                    latin:keyXPos="-11.00%p"
+                    latin:keyWidth="-11.00%p"
                     latin:keyEdgeFlags="right" />
             </Row>
             <Row>
@@ -150,17 +150,17 @@
                      edge key. -->
                 <Key
                     latin:keyLabel="("
-                    latin:keyXPos="14.5%p"
-                    latin:keyWidth="9.1%p" />
+                    latin:keyXPos="11.0%p"
+                    latin:keyWidth="9.25%p" />
                 <Key
                     latin:keyLabel=")"
-                    latin:keyWidth="9.1%p" />
+                    latin:keyWidth="9.25%p" />
                 <Key
                     latin:keyLabel="="
-                    latin:keyWidth="9.1%p" />
+                    latin:keyWidth="9.25%p" />
                 <Key
                     latin:keyLabel="7"
-                    latin:keyXPos="43.3%p" />
+                    latin:keyXPos="38.75%p" />
                 <Key
                     latin:keyLabel="8" />
                 <Key
@@ -170,23 +170,22 @@
             <Row>
                 <Key
                     latin:keyStyle="tabKeyStyle"
-                    latin:keyWidth="10.0%p"
+                    latin:keyWidth="11.00%p"
                     latin:keyEdgeFlags="left" />
                 <Key
                     latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle"
-                    latin:keyXPos="14.5%p"
-                    latin:keyWidth="27.2%p" />
+                    latin:keyWidth="27.75%p" />
                 <Key
                     latin:keyLabel="*"
-                    latin:keyXPos="43.3%p" />
+                    latin:keyXPos="38.75%p" />
                 <Key
                     latin:keyLabel="0" />
                 <Key
                     latin:keyLabel="#" />
                 <Key
                     latin:keyStyle="micOrSettingsKeyStyle"
-                    latin:keyXPos="-10.0%p"
-                    latin:keyWidth="0.0%p"
+                    latin:keyXPos="-11.00%p"
+                    latin:keyWidth="-11.00%p"
                     latin:keyEdgeFlags="right" />
             </Row>
         </default>
diff --git a/java/res/xml-sw600dp/kbd_phone.xml b/java/res/xml-sw600dp/kbd_phone.xml
index d13fa851de..b80442584d 100644
--- a/java/res/xml-sw600dp/kbd_phone.xml
+++ b/java/res/xml-sw600dp/kbd_phone.xml
@@ -23,7 +23,7 @@
     latin:keyboardHeight="@dimen/keyboardHeight"
     latin:maxKeyboardHeight="50%p"
     latin:rowHeight="25%p"
-    latin:keyWidth="12.7%p"
+    latin:keyWidth="16.75%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:popupKeyboardTemplate="@xml/kbd_popup_template"
@@ -38,67 +38,67 @@
         <Key
             latin:code="45"
             latin:keyLabel=" - "
-            latin:keyXPos="19.0%p"
-            latin:keyWidth="9.1%p" />
+            latin:keyXPos="15.625%p"
+            latin:keyWidth="9.25%p" />
         <Key
             latin:code="43"
             latin:keyLabel=" + "
-            latin:keyWidth="9.1%p" />
+            latin:keyWidth="9.25%p" />
         <Key
             latin:keyStyle="num1KeyStyle"
-            latin:keyXPos="43.3%p" />
+            latin:keyXPos="38.867%p" />
         <Key
             latin:keyStyle="num2KeyStyle" />
         <Key
             latin:keyStyle="num3KeyStyle" />
         <Key
             latin:keyStyle="deleteKeyStyle"
-            latin:keyXPos="-10.0%p"
-            latin:keyWidth="0%p"
+            latin:keyXPos="-11.00%p"
+            latin:keyWidth="-11.00%p"
             latin:keyEdgeFlags="right" />
     </Row>
     <Row>
         <Key
             latin:code="44"
             latin:keyLabel=" , "
-            latin:keyXPos="19.0%p"
-            latin:keyWidth="9.1%p" />
+            latin:keyXPos="15.625%p"
+            latin:keyWidth="9.25%p" />
         <Key
             latin:code="46"
             latin:keyLabel=" . "
-            latin:keyWidth="9.1%p" />
+            latin:keyWidth="9.25%p" />
         <Key
             latin:keyStyle="num4KeyStyle"
-            latin:keyXPos="43.3%p" />
+            latin:keyXPos="38.867%p" />
         <Key
             latin:keyStyle="num5KeyStyle" />
         <Key
             latin:keyStyle="num6KeyStyle" />
         <Key
             latin:keyStyle="returnKeyStyle"
-            latin:keyXPos="-14.6%p"
-            latin:keyWidth="0%p"
+            latin:keyXPos="-11.00%p"
+            latin:keyWidth="-11.00%p"
             latin:keyEdgeFlags="right" />
     </Row>
     <Row>
         <Key
             latin:keyStyle="moreKeyStyle"
-            latin:keyWidth="10.0%p"
+            latin:keyWidth="11.00%p"
             latin:keyEdgeFlags="left" />
         <!-- There is an empty area below the "More" key and left of the "(" key.  To ignore
              the touch event on the area, "(" is intentionally not marked as a left edge key. -->
         <Key
             latin:code="40"
             latin:keyLabel=" ( "
-            latin:keyXPos="19.0%p"
-            latin:keyWidth="9.1%p" />
+            latin:keyXPos="15.625%p"
+            latin:keyWidth="9.25%p" />
         <Key
             latin:code="41"
             latin:keyLabel=" ) "
-            latin:keyWidth="9.1%p" />
+            latin:keyWidth="9.25%p" />
         <Key
             latin:keyStyle="num7KeyStyle"
-            latin:keyXPos="43.3%p" />
+            latin:keyXPos="38.867%p" />
         <Key
             latin:keyStyle="num8KeyStyle" />
         <Key
@@ -108,23 +108,23 @@
     <Row>
         <Key
             latin:keyStyle="tabKeyStyle"
-            latin:keyWidth="10.0%p"
+            latin:keyWidth="11.00%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle"
-            latin:keyXPos="19.0%p"
-            latin:keyWidth="18.2%p" />
+            latin:keyXPos="15.625%p"
+            latin:keyWidth="18.67%p" />
         <Key
             latin:keyStyle="numStarKeyStyle"
-            latin:keyXPos="43.3%p" />
+            latin:keyXPos="38.867%p" />
         <Key
             latin:keyStyle="num0KeyStyle" />
         <Key
             latin:keyStyle="numPoundKeyStyle" />
         <Key
             latin:keyStyle="micOrSettingsKeyStyle"
-            latin:keyXPos="-10.0%p"
-            latin:keyWidth="0.0%p"
+            latin:keyXPos="-11.00%p"
+            latin:keyWidth="-11.00%p"
             latin:keyEdgeFlags="right" />
     </Row>
 </Keyboard>
diff --git a/java/res/xml-sw600dp/kbd_phone_symbols.xml b/java/res/xml-sw600dp/kbd_phone_symbols.xml
index 895ca63fc0..f84ebd5786 100644
--- a/java/res/xml-sw600dp/kbd_phone_symbols.xml
+++ b/java/res/xml-sw600dp/kbd_phone_symbols.xml
@@ -23,7 +23,7 @@
     latin:keyboardHeight="@dimen/keyboardHeight"
     latin:maxKeyboardHeight="50%p"
     latin:rowHeight="25%p"
-    latin:keyWidth="12.7%p"
+    latin:keyWidth="16.75%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:popupKeyboardTemplate="@xml/kbd_popup_template"
@@ -38,79 +38,78 @@
         <Key
             latin:code="45"
             latin:keyLabel=" - "
-            latin:keyXPos="14.5%p"
-            latin:keyWidth="9.1%p" />
+            latin:keyXPos="11.0%p"
+            latin:keyWidth="9.25%p" />
         <Key
             latin:code="43"
             latin:keyLabel=" + "
-            latin:keyWidth="9.1%p" />
+            latin:keyWidth="9.25%p" />
         <Key
             latin:code="44"
             latin:keyLabel="@string/label_pause_key"
-            latin:keyWidth="9.1%p" />
+            latin:keyWidth="9.25%p" />
         <Key
             latin:keyStyle="num1KeyStyle"
-            latin:keyXPos="43.3%p" />
+            latin:keyXPos="38.867%p" />
         <Key
             latin:keyStyle="num2KeyStyle" />
         <Key
             latin:keyStyle="num3KeyStyle" />
         <Key
             latin:keyStyle="deleteKeyStyle"
-            latin:keyXPos="-10.0%p"
-            latin:keyWidth="0%p"
+            latin:keyXPos="-11.00%p"
+            latin:keyWidth="-11.00%p"
             latin:keyEdgeFlags="right" />
     </Row>
     <Row>
         <Key
             latin:code="44"
             latin:keyLabel=" , "
-            latin:keyXPos="14.5%p"
-            latin:keyWidth="9.1%p" />
+            latin:keyXPos="11.0%p"
+            latin:keyWidth="9.25%p" />
         <Key
             latin:code="46"
             latin:keyLabel=" . "
-            latin:keyWidth="9.1%p" />
+            latin:keyWidth="9.25%p" />
         <Key
             latin:code="59"
             latin:keyLabel="@string/label_wait_key"
-            latin:keyWidth="9.1%p" />
+            latin:keyWidth="9.25%p" />
         <Key
             latin:keyStyle="num4KeyStyle"
-            latin:keyXPos="43.3%p" />
+            latin:keyXPos="38.867%p" />
         <Key
             latin:keyStyle="num5KeyStyle" />
         <Key
             latin:keyStyle="num6KeyStyle" />
         <Key
             latin:keyStyle="returnKeyStyle"
-            latin:keyXPos="-14.6%p"
-            latin:keyWidth="0%p"
+            latin:keyXPos="-11.00%p"
+            latin:keyWidth="-11.00%p"
             latin:keyEdgeFlags="right" />
     </Row>
     <Row>
         <Key
             latin:keyStyle="moreKeyStyle"
-            latin:keyWidth="10.0%p"
+            latin:keyWidth="11.00%p"
             latin:keyEdgeFlags="left" />
         <!-- There is an empty area below the "More" key and left of the "(" key.  To ignore
              the touch event on the area, "(" is intentionally not marked as a left edge key. -->
         <Key
             latin:code="40"
             latin:keyLabel=" ( "
-            latin:keyXPos="14.5%p"
-            latin:keyWidth="9.1%p" />
+            latin:keyWidth="9.25%p" />
         <Key
             latin:code="41"
             latin:keyLabel=" ) "
-            latin:keyWidth="9.1%p" />
+            latin:keyWidth="9.25%p" />
         <Key
             latin:code="78"
             latin:keyLabel=" N "
-            latin:keyWidth="9.1%p" />
+            latin:keyWidth="9.25%p" />
         <Key
             latin:keyStyle="num7KeyStyle"
-            latin:keyXPos="43.3%p" />
+            latin:keyXPos="38.867%p" />
         <Key
             latin:keyStyle="num8KeyStyle" />
         <Key
@@ -120,23 +119,22 @@
     <Row>
         <Key
             latin:keyStyle="tabKeyStyle"
-            latin:keyWidth="10.0%p"
+            latin:keyWidth="11.00%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle"
-            latin:keyXPos="14.5%p"
-            latin:keyWidth="27.2%p" />
+            latin:keyWidth="27.75%p" />
         <Key
             latin:keyStyle="numStarKeyStyle"
-            latin:keyXPos="43.3%p" />
+            latin:keyXPos="38.867%p" />
         <Key
             latin:keyStyle="num0KeyStyle" />
         <Key
             latin:keyStyle="numPoundKeyStyle" />
         <Key
             latin:keyStyle="micOrSettingsKeyStyle"
-            latin:keyXPos="-10.0%p"
-            latin:keyWidth="0.0%p"
+            latin:keyXPos="-11.00%p"
+            latin:keyWidth="-11.00%p"
             latin:keyEdgeFlags="right" />
     </Row>
 </Keyboard>
diff --git a/java/res/xml-sw600dp/kbd_qwerty_row3.xml b/java/res/xml-sw600dp/kbd_qwerty_row3.xml
index 700bcf0058..4118ee197b 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_row3.xml
+++ b/java/res/xml-sw600dp/kbd_qwerty_row3.xml
@@ -26,7 +26,7 @@
     >
         <Key
             latin:keyStyle="shiftKeyStyle"
-            latin:keyWidth="11.1%p"
+            latin:keyWidth="10.0%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="z"
diff --git a/java/res/xml-sw600dp/kbd_qwerty_row4.xml b/java/res/xml-sw600dp/kbd_qwerty_row4.xml
index 648775c97d..56aca137ed 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_row4.xml
+++ b/java/res/xml-sw600dp/kbd_qwerty_row4.xml
@@ -23,7 +23,7 @@
 >
     <!-- This row is intentionally not marked as a bottom row -->
     <Row
-        latin:keyWidth="9.1%p"
+        latin:keyWidth="8.9%p"
     >
         <Key
             latin:keyStyle="toSymbolKeyStyle"
@@ -31,22 +31,19 @@
             latin:keyWidth="13.0%p"
             latin:keyEdgeFlags="left" />
         <Key
-            latin:keyStyle="tabKeyStyle"
-            latin:keyWidth="8.9%p" />
+            latin:keyStyle="tabKeyStyle" />
         <switch>
             <case
                 latin:mode="email"
             >
                 <Key
-                    latin:keyStyle="comKeyStyle"
-                    latin:keyWidth="8.9%p" />
+                    latin:keyStyle="comKeyStyle" />
             </case>
             <case
                 latin:mode="url"
             >
                 <Key
-                    latin:keyStyle="comKeyStyle"
-                    latin:keyWidth="8.9%p" />
+                    latin:keyStyle="comKeyStyle" />
             </case>
             <default>
                 <Key
@@ -54,14 +51,13 @@
                     latin:manualTemporaryUpperCaseCode="64"
                     latin:keyHintIcon="@drawable/key_hint_at_holo"
                     latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_at_large_holo"
-                    latin:popupCharacters="\@"
-                    latin:keyWidth="8.9%p" />
+                    latin:popupCharacters="\@" />
             </default>
         </switch>
         <Key
             latin:keyStyle="spaceKeyStyle"
-            latin:keyXPos="30.8%p"
-            latin:keyWidth="41.0%p" />
+            latin:keyXPos="30.750%p"
+            latin:keyWidth="39.750%p" />
         <switch>
             <case
                 latin:languageCode="ru"
@@ -71,7 +67,8 @@
                         latin:mode="email"
                     >
                         <Key
-                            latin:keyLabel="-" />
+                            latin:keyLabel="-"
+                            latin:keyWidth="9.750%p" />
                     </case>
                     <case
                         latin:mode="url"
@@ -81,7 +78,8 @@
                             latin:manualTemporaryUpperCaseCode="58"
                             latin:keyHintIcon="@drawable/key_hint_colon_holo"
                             latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo"
-                            latin:popupCharacters=":" />
+                            latin:popupCharacters=":"
+                            latin:keyWidth="9.750%p" />
                     </case>
                     <default>
                         <Key
@@ -89,7 +87,8 @@
                             latin:manualTemporaryUpperCaseCode="95"
                             latin:keyHintIcon="@drawable/key_hint_underline_holo"
                             latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_underline_large_holo"
-                            latin:popupCharacters="_" />
+                            latin:popupCharacters="_"
+                            latin:keyWidth="9.750%p" />
                     </default>
                 </switch>
                 <switch>
@@ -97,7 +96,8 @@
                         latin:mode="email"
                     >
                         <Key
-                            latin:keyLabel="_" />
+                            latin:keyLabel="_"
+                            latin:keyWidth="9.750%p" />
                     </case>
                     <default>
                         <Key
@@ -105,7 +105,8 @@
                             latin:manualTemporaryUpperCaseCode="39"
                             latin:keyHintIcon="@drawable/key_hint_quote_holo"
                             latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_quote_large_holo"
-                            latin:popupCharacters="\'" />
+                            latin:popupCharacters="\'"
+                            latin:keyWidth="9.750%p" />
                     </default>
                 </switch>
             </case>
@@ -116,7 +117,8 @@
                         latin:mode="email"
                     >
                         <Key
-                            latin:keyLabel="-" />
+                            latin:keyLabel="-"
+                            latin:keyWidth="9.750%p" />
                     </case>
                     <case
                         latin:mode="url"
@@ -126,7 +128,8 @@
                             latin:manualTemporaryUpperCaseCode="58"
                             latin:keyHintIcon="@drawable/key_hint_colon_holo"
                             latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo"
-                            latin:popupCharacters=":" />
+                            latin:popupCharacters=":"
+                            latin:keyWidth="9.750%p" />
                     </case>
                     <default>
                         <Key
@@ -134,7 +137,8 @@
                             latin:manualTemporaryUpperCaseCode="34"
                             latin:keyHintIcon="@drawable/key_hint_quote_holo"
                             latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_quote_large_holo"
-                            latin:popupCharacters="&quot;" />
+                            latin:popupCharacters="&quot;"
+                            latin:keyWidth="9.750%p" />
                     </default>
                 </switch>
                 <switch>
@@ -142,7 +146,8 @@
                         latin:mode="email"
                     >
                         <Key
-                            latin:keyLabel="_" />
+                            latin:keyLabel="_"
+                            latin:keyWidth="9.750%p" />
                     </case>
                     <default>
                         <Key
@@ -150,7 +155,8 @@
                             latin:manualTemporaryUpperCaseCode="95"
                             latin:keyHintIcon="@drawable/key_hint_underline_holo"
                             latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_underline_large_holo"
-                            latin:popupCharacters="_" />
+                            latin:popupCharacters="_"
+                            latin:keyWidth="9.750%p" />
                     </default>
                 </switch>
             </default>
@@ -158,7 +164,7 @@
         <Key
             latin:keyStyle="micOrSettingsKeyStyle"
             latin:keyXPos="-10.0%p"
-            latin:keyWidth="-10.0%p"
+            latin:keyWidth="0%p"
             latin:keyEdgeFlags="right" />
     </Row>
 </merge>
diff --git a/java/res/xml-sw600dp/kbd_qwertz_rows.xml b/java/res/xml-sw600dp/kbd_qwertz_rows.xml
index 7adfc07f0f..5c2fbf2b9b 100644
--- a/java/res/xml-sw600dp/kbd_qwertz_rows.xml
+++ b/java/res/xml-sw600dp/kbd_qwertz_rows.xml
@@ -71,7 +71,7 @@
     >
         <Key
             latin:keyStyle="shiftKeyStyle"
-            latin:keyWidth="11.1%p"
+            latin:keyWidth="10.0%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="y"
diff --git a/java/res/xml-sw600dp/kbd_ru_rows.xml b/java/res/xml-sw600dp/kbd_ru_rows.xml
index 8b80aaa61c..fb820ccc15 100644
--- a/java/res/xml-sw600dp/kbd_ru_rows.xml
+++ b/java/res/xml-sw600dp/kbd_ru_rows.xml
@@ -95,7 +95,7 @@
     >
         <Key
             latin:keyStyle="shiftKeyStyle"
-            latin:keyWidth="11.1%p"
+            latin:keyWidth="10.0%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="я" />
diff --git a/java/res/xml-sw600dp/kbd_sr_rows.xml b/java/res/xml-sw600dp/kbd_sr_rows.xml
index 225420aa43..09dc2b719b 100644
--- a/java/res/xml-sw600dp/kbd_sr_rows.xml
+++ b/java/res/xml-sw600dp/kbd_sr_rows.xml
@@ -94,7 +94,7 @@
     >
         <Key
             latin:keyStyle="shiftKeyStyle"
-            latin:keyWidth="8.8%p"
+            latin:keyWidth="8.0%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="Ñ•" />
diff --git a/java/res/xml-sw600dp/kbd_symbols.xml b/java/res/xml-sw600dp/kbd_symbols.xml
index 2daaadd02a..f28df55614 100644
--- a/java/res/xml-sw600dp/kbd_symbols.xml
+++ b/java/res/xml-sw600dp/kbd_symbols.xml
@@ -108,7 +108,7 @@
     >
         <Key
             latin:keyStyle="moreKeyStyle"
-            latin:keyWidth="11.1%p"
+            latin:keyWidth="10.0%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="&lt;"
@@ -190,18 +190,18 @@
             latin:keyLabel="\@" />
         <Key
             latin:keyStyle="spaceKeyStyle"
-            latin:keyXPos="30.8%p"
-            latin:keyWidth="41.0%p" />
+            latin:keyXPos="30.750%p"
+            latin:keyWidth="39.750%p" />
         <switch>
             <case
                 latin:languageCode="ru"
             >
                 <Key
                     latin:keyLabel="_"
-                    latin:keyWidth="9.1%p" />
+                    latin:keyWidth="9.750%p" />
                 <Key
                     latin:keyLabel="-"
-                    latin:keyWidth="9.1%p" />
+                    latin:keyWidth="9.750%p" />
             </case>
             <default>
                 <!-- Note: DroidSans doesn't have double-high-reversed-quotation
@@ -210,16 +210,16 @@
                 <Key
                     latin:keyLabel="&quot;"
                     latin:popupCharacters="“,”,«,»,‘,’,‚,‛"
-                    latin:keyWidth="9.1%p" />
+                    latin:keyWidth="9.750%p" />
                 <Key
                     latin:keyLabel="_"
-                    latin:keyWidth="9.1%p" />
+                    latin:keyWidth="9.750%p" />
             </default>
         </switch>
         <Key
             latin:keyStyle="micOrSettingsKeyStyle"
             latin:keyXPos="-10.0%p"
-            latin:keyWidth="-10.0%p"
+            latin:keyWidth="0%p"
             latin:keyEdgeFlags="right" />
     </Row>
 </Keyboard>
diff --git a/java/res/xml-sw600dp/kbd_symbols_shift.xml b/java/res/xml-sw600dp/kbd_symbols_shift.xml
index 111718a4d8..7c6c9a4478 100644
--- a/java/res/xml-sw600dp/kbd_symbols_shift.xml
+++ b/java/res/xml-sw600dp/kbd_symbols_shift.xml
@@ -112,7 +112,7 @@
     >
         <Key
             latin:keyStyle="moreKeyStyle"
-            latin:keyWidth="11.1%p"
+            latin:keyWidth="10.0%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="\\" />
@@ -152,8 +152,8 @@
             latin:keyStyle="tabKeyStyle" />
         <Key
             latin:keyStyle="spaceKeyStyle"
-            latin:keyXPos="30.8%p"
-            latin:keyWidth="41.0%p" />
+            latin:keyXPos="30.750%p"
+            latin:keyWidth="39.750%p" />
         <Key
             latin:keyStyle="micOrSettingsKeyStyle"
             latin:keyXPos="-10.0%p"
diff --git a/java/res/xml-sw768dp/kbd_number.xml b/java/res/xml-sw768dp/kbd_number.xml
index c99ead42e8..8ffee3cfd8 100644
--- a/java/res/xml-sw768dp/kbd_number.xml
+++ b/java/res/xml-sw768dp/kbd_number.xml
@@ -23,7 +23,7 @@
     latin:keyboardHeight="@dimen/keyboardHeight"
     latin:maxKeyboardHeight="50%p"
     latin:rowHeight="25%p"
-    latin:keyWidth="11.954%p"
+    latin:keyWidth="13.250%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:popupKeyboardTemplate="@xml/kbd_popup_template"
@@ -42,7 +42,7 @@
                 <Key
                     latin:keyStyle="tabKeyStyle"
                     latin:keyLabelOption="alignLeft"
-                    latin:keyWidth="7.969%p"
+                    latin:keyWidth="11.172%p"
                     latin:keyEdgeFlags="left" />
                 <Key
                     latin:keyStyle="num1KeyStyle"
@@ -53,7 +53,7 @@
                     latin:keyStyle="num3KeyStyle" />
                 <Key
                     latin:keyStyle="deleteKeyStyle"
-                    latin:keyXPos="-9.219%p"
+                    latin:keyXPos="-11.172%p"
                     latin:keyWidth="0%p"
                     latin:keyEdgeFlags="right" />
             </Row>
@@ -67,7 +67,7 @@
                     latin:keyStyle="num6KeyStyle" />
                 <Key
                     latin:keyStyle="returnKeyStyle"
-                    latin:keyXPos="-15.704%p"
+                    latin:keyXPos="-11.172%p"
                     latin:keyWidth="0%p"
                     latin:keyEdgeFlags="right" />
             </Row>
@@ -101,7 +101,7 @@
                 <Key
                     latin:keyStyle="tabKeyStyle"
                     latin:keyLabelOption="alignLeft"
-                    latin:keyWidth="7.969%p"
+                    latin:keyWidth="11.172%p"
                     latin:keyEdgeFlags="left" />
                 <Key
                     latin:keyLabel="-"
@@ -115,14 +115,14 @@
                     latin:keyWidth="8.047%p" />
                 <Key
                     latin:keyLabel="1"
-                    latin:keyXPos="45.0%p" />
+                    latin:keyXPos="43.125%p" />
                 <Key
                     latin:keyLabel="2" />
                 <Key
                     latin:keyLabel="3" />
                 <Key
                     latin:keyStyle="deleteKeyStyle"
-                    latin:keyXPos="-9.219%p"
+                    latin:keyXPos="-11.172%p"
                     latin:keyWidth="0%p"
                     latin:keyEdgeFlags="right" />
             </Row>
@@ -139,14 +139,14 @@
                     latin:keyWidth="8.047%p" />
                 <Key
                     latin:keyLabel="4"
-                    latin:keyXPos="45.0%p" />
+                    latin:keyXPos="43.125%p" />
                 <Key
                     latin:keyLabel="5" />
                 <Key
                     latin:keyLabel="6" />
                 <Key
                     latin:keyStyle="returnKeyStyle"
-                    latin:keyXPos="-15.704%p"
+                    latin:keyXPos="-11.172%p"
                     latin:keyWidth="0%p"
                     latin:keyEdgeFlags="right" />
             </Row>
@@ -166,7 +166,7 @@
                     latin:keyWidth="8.047%p" />
                 <Key
                     latin:keyLabel="7"
-                    latin:keyXPos="45.0%p" />
+                    latin:keyXPos="43.125%p" />
                 <Key
                     latin:keyLabel="8" />
                 <Key
@@ -194,7 +194,7 @@
                     latin:keyWidth="24.14%p" />
                 <Key
                     latin:keyLabel="*"
-                    latin:keyXPos="45.0%p" />
+                    latin:keyXPos="43.125%p" />
                 <Key
                     latin:keyLabel="0" />
                 <Key
diff --git a/java/res/xml-sw768dp/kbd_phone.xml b/java/res/xml-sw768dp/kbd_phone.xml
index a3dfec099c..8fc5e7d688 100644
--- a/java/res/xml-sw768dp/kbd_phone.xml
+++ b/java/res/xml-sw768dp/kbd_phone.xml
@@ -23,7 +23,7 @@
     latin:keyboardHeight="@dimen/keyboardHeight"
     latin:maxKeyboardHeight="50%p"
     latin:rowHeight="25%p"
-    latin:keyWidth="11.954%p"
+    latin:keyWidth="13.250%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:popupKeyboardTemplate="@xml/kbd_popup_template"
@@ -38,7 +38,7 @@
         <Key
             latin:keyStyle="tabKeyStyle"
             latin:keyLabelOption="alignLeft"
-            latin:keyWidth="7.969%p"
+            latin:keyWidth="11.172%p"
             latin:keyEdgeFlags="left" />
         <!-- To match one character label size with "Tab", I placed spaces around the char '-'
              and '+'. -->
@@ -53,14 +53,14 @@
             latin:keyWidth="8.047%p" />
         <Key
             latin:keyStyle="num1KeyStyle"
-            latin:keyXPos="45.0%p" />
+            latin:keyXPos="43.125%p" />
         <Key
             latin:keyStyle="num2KeyStyle" />
         <Key
             latin:keyStyle="num3KeyStyle" />
         <Key
             latin:keyStyle="deleteKeyStyle"
-            latin:keyXPos="-9.219%p"
+            latin:keyXPos="-11.172%p"
             latin:keyWidth="0%p"
             latin:keyEdgeFlags="right" />
     </Row>
@@ -82,14 +82,14 @@
             latin:keyWidth="8.047%p" />
         <Key
             latin:keyStyle="num4KeyStyle"
-            latin:keyXPos="45.0%p" />
+            latin:keyXPos="43.125%p" />
         <Key
             latin:keyStyle="num5KeyStyle" />
         <Key
             latin:keyStyle="num6KeyStyle" />
         <Key
             latin:keyStyle="returnKeyStyle"
-            latin:keyXPos="-15.704%p"
+            latin:keyXPos="-11.172%p"
             latin:keyWidth="0%p"
             latin:keyEdgeFlags="right" />
     </Row>
@@ -109,7 +109,7 @@
             latin:keyWidth="8.047%p" />
         <Key
             latin:keyStyle="num7KeyStyle"
-            latin:keyXPos="45.0%p" />
+            latin:keyXPos="43.125%p" />
         <Key
             latin:keyStyle="num8KeyStyle" />
         <Key
@@ -136,7 +136,7 @@
             latin:keyWidth="16.084%p" />
         <Key
             latin:keyStyle="numStarKeyStyle"
-            latin:keyXPos="45.0%p" />
+            latin:keyXPos="43.125%p" />
         <Key
             latin:keyStyle="num0KeyStyle" />
         <Key
diff --git a/java/res/xml-sw768dp/kbd_phone_symbols.xml b/java/res/xml-sw768dp/kbd_phone_symbols.xml
index 931c3c934e..449be47ef0 100644
--- a/java/res/xml-sw768dp/kbd_phone_symbols.xml
+++ b/java/res/xml-sw768dp/kbd_phone_symbols.xml
@@ -23,7 +23,7 @@
     latin:keyboardHeight="@dimen/keyboardHeight"
     latin:maxKeyboardHeight="50%p"
     latin:rowHeight="25%p"
-    latin:keyWidth="11.954%p"
+    latin:keyWidth="13.250%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:popupKeyboardTemplate="@xml/kbd_popup_template"
@@ -38,7 +38,7 @@
         <Key
             latin:keyStyle="tabKeyStyle"
             latin:keyLabelOption="alignLeft"
-            latin:keyWidth="7.969%p"
+            latin:keyWidth="11.172%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:code="45"
@@ -57,14 +57,14 @@
              char '-' and '+'. -->
         <Key
             latin:keyStyle="num1KeyStyle"
-            latin:keyXPos="45.0%p" />
+            latin:keyXPos="43.125%p" />
         <Key
             latin:keyStyle="num2KeyStyle" />
         <Key
             latin:keyStyle="num3KeyStyle" />
         <Key
             latin:keyStyle="deleteKeyStyle"
-            latin:keyXPos="-9.219%p"
+            latin:keyXPos="-11.172%p"
             latin:keyWidth="0%p"
             latin:keyEdgeFlags="right" />
     </Row>
@@ -90,14 +90,14 @@
              char ',' and '.'. -->
         <Key
             latin:keyStyle="num4KeyStyle"
-            latin:keyXPos="45.0%p" />
+            latin:keyXPos="43.125%p" />
         <Key
             latin:keyStyle="num5KeyStyle" />
         <Key
             latin:keyStyle="num6KeyStyle" />
         <Key
             latin:keyStyle="returnKeyStyle"
-            latin:keyXPos="-15.704%p"
+            latin:keyXPos="-11.172%p"
             latin:keyWidth="0%p"
             latin:keyEdgeFlags="right" />
     </Row>
@@ -121,7 +121,7 @@
             latin:keyWidth="8.047%p" />
         <Key
             latin:keyStyle="num7KeyStyle"
-            latin:keyXPos="45.0%p" />
+            latin:keyXPos="43.125%p" />
         <Key
             latin:keyStyle="num8KeyStyle" />
         <Key
@@ -148,7 +148,7 @@
             latin:keyWidth="24.14%p" />
         <Key
             latin:keyStyle="numStarKeyStyle"
-            latin:keyXPos="45.0%p" />
+            latin:keyXPos="43.125%p" />
         <Key
             latin:keyStyle="num0KeyStyle" />
         <Key
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index eccd0c822b..98a7f98c24 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -216,11 +216,11 @@ public class Key {
             if (keyXPos < 0) {
                 // If keyXPos is negative, the actual x-coordinate will be k + keyXPos.
                 keyXPos += keyboardWidth;
-                if (keyXPos < x) {
-                    // keyXPos shouldn't be less than x because drawable area for this key starts
-                    // at x. Or, this key will overlaps the adjacent key on its left hand side.
-                    keyXPos = x;
-                }
+            }
+            if (keyXPos < x) {
+                // keyXPos shouldn't be less than x because drawable area for this key starts
+                // at x. Or, this key will overlaps the adjacent key on its left hand side.
+                keyXPos = x;
             }
             if (keyWidth == 0) {
                 // If keyWidth is zero, the actual key width will be determined to fill out the
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java b/java/src/com/android/inputmethod/keyboard/KeyboardParser.java
index 308651a9eb..e599dfdef7 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardParser.java
@@ -549,7 +549,7 @@ public class KeyboardParser {
     }
 
     private void endKey(Key key) {
-        mCurrentX = key.mX + key.mGap + key.mWidth;
+        mCurrentX = key.mX - key.mGap / 2 + key.mWidth + key.mGap;
         if (mCurrentX > mMaxRowWidth)
             mMaxRowWidth = mCurrentX;
     }
-- 
GitLab