Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 52267)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 52275)
@@ -611,5 +611,5 @@
 }
 
-void UIMachineLogic::sltHostScreenCountChanged()
+void UIMachineLogic::sltHostScreenCountChange()
 {
     LogRel(("UIMachineLogic: Host-screen count changed.\n"));
@@ -620,7 +620,16 @@
 }
 
-void UIMachineLogic::sltHostScreenGeometryChanged()
+void UIMachineLogic::sltHostScreenGeometryChange()
 {
     LogRel(("UIMachineLogic: Host-screen geometry changed.\n"));
+
+    /* Make sure all machine-window(s) have proper geometry: */
+    foreach (UIMachineWindow *pMachineWindow, machineWindows())
+        pMachineWindow->showInNecessaryMode();
+}
+
+void UIMachineLogic::sltHostScreenAvailableAreaChange()
+{
+    LogRel(("UIMachineLogic: Host-screen available-area changed.\n"));
 
     /* Make sure all machine-window(s) have proper geometry: */
@@ -805,6 +814,7 @@
 
     /* Host-screen-change updaters: */
-    connect(uisession(), SIGNAL(sigHostScreenCountChanged()), this, SLOT(sltHostScreenCountChanged()));
-    connect(uisession(), SIGNAL(sigHostScreenGeometryChanged()), this, SLOT(sltHostScreenGeometryChanged()));
+    connect(uisession(), SIGNAL(sigHostScreenCountChange()), this, SLOT(sltHostScreenCountChange()));
+    connect(uisession(), SIGNAL(sigHostScreenGeometryChange()), this, SLOT(sltHostScreenGeometryChange()));
+    connect(uisession(), SIGNAL(sigHostScreenAvailableAreaChange()), this, SLOT(sltHostScreenAvailableAreaChange()));
 
     /* Frame-buffer connections: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h	(revision 52267)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h	(revision 52275)
@@ -135,9 +135,13 @@
     virtual void sltShowWindows();
 #endif /* RT_OS_DARWIN */
+    /** Handles guest-screen count change. */
     virtual void sltGuestMonitorChange(KGuestMonitorChangedEventType changeType, ulong uScreenId, QRect screenGeo);
 
-    /* Qt callback handler: */
-    virtual void sltHostScreenCountChanged();
-    virtual void sltHostScreenGeometryChanged();
+    /** Handles host-screen count change. */
+    virtual void sltHostScreenCountChange();
+    /** Handles host-screen geometry change. */
+    virtual void sltHostScreenGeometryChange();
+    /** Handles host-screen available-area change. */
+    virtual void sltHostScreenAvailableAreaChange();
 
 protected:
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 52267)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 52275)
@@ -885,5 +885,5 @@
 
     /* Notify current machine-logic: */
-    emit sigHostScreenCountChanged();
+    emit sigHostScreenCountChange();
 }
 
@@ -896,5 +896,13 @@
 
     /* Notify current machine-logic: */
-    emit sigHostScreenGeometryChanged();
+    emit sigHostScreenGeometryChange();
+}
+
+void UISession::sltHandleHostScreenAvailableAreaChange()
+{
+    LogRelFlow(("UISession: Host-screen available-area changed.\n"));
+
+    /* Notify current machine-logic: */
+    emit sigHostScreenAvailableAreaChange();
 }
 
@@ -1084,5 +1092,5 @@
             this, SLOT(sltHandleHostScreenGeometryChange()));
     connect(QApplication::desktop(), SIGNAL(workAreaResized(int)),
-            this, SLOT(sltHandleHostScreenGeometryChange()));
+            this, SLOT(sltHandleHostScreenAvailableAreaChange()));
 #endif /* !Q_WS_MAC */
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h	(revision 52267)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h	(revision 52275)
@@ -251,7 +251,10 @@
     void sigGuestMonitorChange(KGuestMonitorChangedEventType changeType, ulong uScreenId, QRect screenGeo);
 
-    /* Notifiers: Qt callback stuff: */
-    void sigHostScreenCountChanged();
-    void sigHostScreenGeometryChanged();
+    /** Notifies about host-screen count change. */
+    void sigHostScreenCountChange();
+    /** Notifies about host-screen geometry change. */
+    void sigHostScreenGeometryChange();
+    /** Notifies about host-screen available-area change. */
+    void sigHostScreenAvailableAreaChange();
 
     /* Session signals: */
@@ -291,6 +294,11 @@
     void sltCheckIfHostDisplayChanged();
 #endif /* RT_OS_DARWIN */
+
+    /** Handles host-screen count change. */
     void sltHandleHostScreenCountChange();
+    /** Handles host-screen geometry change. */
     void sltHandleHostScreenGeometryChange();
+    /** Handles host-screen available-area change. */
+    void sltHandleHostScreenAvailableAreaChange();
 
 private:
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineLogicFullscreen.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineLogicFullscreen.cpp	(revision 52267)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineLogicFullscreen.cpp	(revision 52275)
@@ -402,5 +402,5 @@
 void UIMachineLogicFullscreen::sltGuestMonitorChange(KGuestMonitorChangedEventType changeType, ulong uScreenId, QRect screenGeo)
 {
-    LogRel(("UIMachineLogicFullscreen::sltGuestMonitorChange: Guest-screen count changed.\n"));
+    LogRel(("UIMachineLogicFullscreen: Guest-screen count changed.\n"));
 
     /* Update multi-screen layout before any window update: */
@@ -421,7 +421,7 @@
 }
 
-void UIMachineLogicFullscreen::sltHostScreenCountChanged()
-{
-    LogRel(("UIMachineLogicFullscreen::sltHostScreenCountChanged: Host-screen count changed.\n"));
+void UIMachineLogicFullscreen::sltHostScreenCountChange()
+{
+    LogRel(("UIMachineLogicFullscreen: Host-screen count changed.\n"));
 
     /* Update multi-screen layout before any window update: */
@@ -431,11 +431,16 @@
     /* Call to base-class for Lion and previous: */
     if (vboxGlobal().osRelease() <= MacOSXRelease_Lion)
-        UIMachineLogic::sltHostScreenCountChanged();
+        UIMachineLogic::sltHostScreenCountChange();
     /* Revalidate 'fullscreen' windows for ML and next: */
     else revalidateNativeFullScreen();
 #else /* !Q_WS_MAC */
     /* Call to base-class: */
-    UIMachineLogic::sltHostScreenCountChanged();
+    UIMachineLogic::sltHostScreenCountChange();
 #endif /* !Q_WS_MAC */
+}
+
+void UIMachineLogicFullscreen::sltHostScreenAvailableAreaChange()
+{
+    LogRel(("UIMachineLogicFullscreen: Host-screen available-area change ignored.\n"));
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineLogicFullscreen.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineLogicFullscreen.h	(revision 52267)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineLogicFullscreen.h	(revision 52275)
@@ -94,6 +94,10 @@
     void sltScreenLayoutChanged();
 
-    void sltGuestMonitorChange(KGuestMonitorChangedEventType changeType, ulong uScreenId, QRect screenGeo);
-    void sltHostScreenCountChanged();
+    /** Handles guest-screen count change. */
+    virtual void sltGuestMonitorChange(KGuestMonitorChangedEventType changeType, ulong uScreenId, QRect screenGeo);
+    /** Handles host-screen count change. */
+    virtual void sltHostScreenCountChange();
+    /** Handles host-screen available-area change. */
+    virtual void sltHostScreenAvailableAreaChange();
 
 private:
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineLogicSeamless.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineLogicSeamless.cpp	(revision 52267)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineLogicSeamless.cpp	(revision 52275)
@@ -176,5 +176,5 @@
 void UIMachineLogicSeamless::sltGuestMonitorChange(KGuestMonitorChangedEventType changeType, ulong uScreenId, QRect screenGeo)
 {
-    LogRelFlow(("UIMachineLogicSeamless: Guest-screen count changed.\n"));
+    LogRel(("UIMachineLogicSeamless: Guest-screen count changed.\n"));
 
     /* Update multi-screen layout before any window update: */
@@ -187,7 +187,7 @@
 }
 
-void UIMachineLogicSeamless::sltHostScreenCountChanged()
-{
-    LogRelFlow(("UIMachineLogicSeamless: Host-screen count changed.\n"));
+void UIMachineLogicSeamless::sltHostScreenCountChange()
+{
+    LogRel(("UIMachineLogicSeamless: Host-screen count changed.\n"));
 
     /* Update multi-screen layout before any window update: */
@@ -195,5 +195,5 @@
 
     /* Call to base-class: */
-    UIMachineLogic::sltHostScreenCountChanged();
+    UIMachineLogic::sltHostScreenCountChange();
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineLogicSeamless.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineLogicSeamless.h	(revision 52267)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineLogicSeamless.h	(revision 52275)
@@ -57,6 +57,8 @@
     void sltScreenLayoutChanged();
 
-    void sltGuestMonitorChange(KGuestMonitorChangedEventType changeType, ulong uScreenId, QRect screenGeo);
-    void sltHostScreenCountChanged();
+    /** Handles guest-screen count change. */
+    virtual void sltGuestMonitorChange(KGuestMonitorChangedEventType changeType, ulong uScreenId, QRect screenGeo);
+    /** Handles host-screen count change. */
+    virtual void sltHostScreenCountChange();
 
 #ifndef RT_OS_DARWIN
