Index: /trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp	(revision 81267)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp	(revision 81268)
@@ -171,4 +171,7 @@
     void updateLockKeyStates(bool fCapsLockState, bool fNumLockState, bool fScrollLockState);
     void reset();
+
+    /** Returns the sum totalHeight() of all rows(). */
+    int totalHeight() const;
 
 private:
@@ -319,5 +322,6 @@
     int defaultHeight() const;
 
-    int MaximumHeight() const;
+    /* Return the sum of the maximum key height and m_iSpaceHeightAfter */
+    int totalHeight() const;
 
     QVector<UISoftKeyboardKey> &keys();
@@ -335,5 +339,4 @@
     int m_iDefaultWidth;
     int m_iDefaultHeight;
-    int m_iMaximumHeight;
 
     QVector<UISoftKeyboardKey> m_keys;
@@ -871,4 +874,12 @@
         }
     }
+}
+
+int UISoftKeyboardPhysicalLayout::totalHeight() const
+{
+    int iHeight = 0;
+    for (int i = 0; i < m_rows.size(); ++i)
+        iHeight += m_rows[i].totalHeight();
+    return iHeight;
 }
 
@@ -1398,4 +1409,12 @@
 }
 
+int UISoftKeyboardRow::totalHeight() const
+{
+    int iMaxHeight = 0;
+    for (int i = 0; i < m_keys.size(); ++i)
+        iMaxHeight = qMax(iMaxHeight, m_keys[i].height());
+    return iMaxHeight + m_iSpaceHeightAfter;
+}
+
 void UISoftKeyboardRow::setDefaultHeight(int iHeight)
 {
@@ -2091,5 +2110,8 @@
                 continue;
 
-            painter.translate(key.keyGeometry().x(), key.keyGeometry().y());
+            if (m_fHideMultimediaKeys)
+                painter.translate(key.keyGeometry().x(), key.keyGeometry().y() - m_multiMediaKeysLayout.totalHeight());
+            else
+                painter.translate(key.keyGeometry().x(), key.keyGeometry().y());
 
             if(&key  == m_pKeyBeingEdited)
@@ -2126,5 +2148,9 @@
                 painter.drawEllipse(rectangle);
             }
-            painter.translate(-key.keyGeometry().x(), -key.keyGeometry().y());
+            if (m_fHideMultimediaKeys)
+                painter.translate(-key.keyGeometry().x(), -key.keyGeometry().y() + m_multiMediaKeysLayout.totalHeight());
+            else
+                painter.translate(-key.keyGeometry().x(), -key.keyGeometry().y());
+
         }
     }
@@ -3853,4 +3879,5 @@
         m_pKeyboardWidget->setHideNumPad(fHideNumPad);
         m_pKeyboardWidget->setHideOSMenuKeys(fHideOSMenuKeys);
+       m_pKeyboardWidget->setHideMultimediaKeys(fHideMultimediaKeys);
     }
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/xml/multimedia_keys.xml
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/xml/multimedia_keys.xml	(revision 81267)
+++ /trunk/src/VBox/Frontends/VirtualBox/xml/multimedia_keys.xml	(revision 81268)
@@ -151,5 +151,5 @@
         </key>
         <space>
-            <height>20</height>
+            <height>5</height>
         </space>
     </row>
