Index: /trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp	(revision 83700)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp	(revision 83701)
@@ -743,6 +743,9 @@
     float m_fScaleFactorY;
     int   m_iInitialHeight;
+    /** This is the width of the keyboard including the numpad but without m_iInitialWidthNoNumPad */
     int   m_iInitialWidth;
     int   m_iInitialWidthNoNumPad;
+    /** This widt is added while drawing the keyboard not to key geometries. */
+    int   m_iBeforeNumPadWidth;
     int   m_iXSpacing;
     int   m_iYSpacing;
@@ -751,5 +754,4 @@
     int   m_iRightMargin;
     int   m_iBottomMargin;
-    int   m_iBeforeNumPadWidth;
     Mode  m_enmMode;
     bool  m_fHideOSMenuKeys;
@@ -2221,4 +2223,5 @@
     , m_iInitialWidth(0)
     , m_iInitialWidthNoNumPad(0)
+    , m_iBeforeNumPadWidth(30)
     , m_iXSpacing(5)
     , m_iYSpacing(5)
@@ -2227,5 +2230,4 @@
     , m_iRightMargin(10)
     , m_iBottomMargin(10)
-    , m_iBeforeNumPadWidth(30)
     , m_enmMode(Mode_Keyboard)
     , m_fHideOSMenuKeys(false)
@@ -2240,5 +2242,5 @@
 QSize UISoftKeyboardWidget::minimumSizeHint() const
 {
-    float fScale = 1;//0.5f;
+    float fScale = 0.5f;
     return QSize(fScale * m_minimumSize.width(), fScale * m_minimumSize.height());
 }
@@ -2996,4 +2998,5 @@
         int iXNoNumPad = m_iLeftMargin;
         int iRowHeight = row.defaultHeight();
+        int iKeyWidth = 0;
         for (int j = 0; j < row.keys().size(); ++j)
         {
@@ -3008,18 +3011,14 @@
             key.setPoints(UIPhysicalLayoutReader::computeKeyVertices(key));
             key.setParentWidget(this);
-            iX += key.width();
+
+            iKeyWidth = key.width();
             if (j < row.keys().size() - 1)
-                iX += m_iXSpacing;
-            if (key.spaceWidthAfter() != 0)
-                iX += (m_iXSpacing + key.spaceWidthAfter());
-
+                iKeyWidth += m_iXSpacing;
+            if (key.spaceWidthAfter() != 0 && j != row.keys().size() - 1)
+                iKeyWidth += (m_iXSpacing + key.spaceWidthAfter());
+
+            iX += iKeyWidth;
             if (key.keyboardRegion() != KeyboardRegion_NumPad)
-            {
-                iXNoNumPad += key.width();
-                if (j < row.keys().size() - 1)
-                    iXNoNumPad += m_iXSpacing;
-                if (key.spaceWidthAfter() != 0 && j != row.keys().size() - 1)
-                    iXNoNumPad += (m_iXSpacing + key.spaceWidthAfter());
-            }
+                iXNoNumPad += iKeyWidth;
         }
         if (row.spaceHeightAfter() != 0)
