Index: /trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp	(revision 83698)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp	(revision 83699)
@@ -751,4 +751,5 @@
     int   m_iRightMargin;
     int   m_iBottomMargin;
+    int   m_iBeforeNumPadWidth;
     Mode  m_enmMode;
     bool  m_fHideOSMenuKeys;
@@ -2222,8 +2223,9 @@
     , m_iXSpacing(5)
     , m_iYSpacing(5)
-    , m_iLeftMargin(0)
+    , m_iLeftMargin(10)
     , m_iTopMargin(10)
-    , m_iRightMargin(0)
+    , m_iRightMargin(10)
     , m_iBottomMargin(10)
+    , m_iBeforeNumPadWidth(30)
     , m_enmMode(Mode_Keyboard)
     , m_fHideOSMenuKeys(false)
@@ -2238,14 +2240,14 @@
 QSize UISoftKeyboardWidget::minimumSizeHint() const
 {
+    float fScale = 1;//0.5f;
+    return QSize(fScale * m_minimumSize.width(), fScale * m_minimumSize.height());
+}
+
+QSize UISoftKeyboardWidget::sizeHint() const
+{
     float fScale = 0.5f;
     return QSize(fScale * m_minimumSize.width(), fScale * m_minimumSize.height());
 }
 
-QSize UISoftKeyboardWidget::sizeHint() const
-{
-    float fScale = 0.5f;
-    return QSize(fScale * m_minimumSize.width(), fScale * m_minimumSize.height());
-}
-
 void UISoftKeyboardWidget::paintEvent(QPaintEvent *pEvent) /* override */
 {
@@ -2260,5 +2262,5 @@
 
     if (!m_fHideNumPad)
-        m_fScaleFactorX = width() / (float) m_iInitialWidth;
+        m_fScaleFactorX = width() / (float) (m_iInitialWidth + m_iBeforeNumPadWidth);
     else
         m_fScaleFactorX = width() / (float) m_iInitialWidthNoNumPad;
@@ -2305,6 +2307,4 @@
             else
                 painter.translate(key.keyGeometry().x(), key.keyGeometry().y());
-
-            int m_iBeforeNumPadWidth = 0;
 
             if (key.keyboardRegion() == KeyboardRegion_NumPad)
@@ -2350,5 +2350,5 @@
                 painter.translate(-key.keyGeometry().x(), -key.keyGeometry().y());
             if (key.keyboardRegion() == KeyboardRegion_NumPad)
-                painter.translate(- m_iBeforeNumPadWidth, 0);
+                painter.translate(-m_iBeforeNumPadWidth, 0);
         }
     }
@@ -3019,6 +3019,6 @@
                 if (j < row.keys().size() - 1)
                     iXNoNumPad += m_iXSpacing;
-                if (key.spaceWidthAfter() != 0)
-                    iXNoNumPad += key.spaceWidthAfter();
+                if (key.spaceWidthAfter() != 0 && j != row.keys().size() - 1)
+                    iXNoNumPad += (m_iXSpacing + key.spaceWidthAfter());
             }
         }
@@ -3027,4 +3027,5 @@
         iMaxWidth = qMax(iMaxWidth, iX);
         iMaxWidthNoNumPad = qMax(iMaxWidthNoNumPad, iXNoNumPad);
+
         iY += iRowHeight;
         if (i < rows.size() - 1)
