Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp	(revision 27445)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp	(revision 27446)
@@ -365,9 +365,21 @@
 #endif
 
-    /* Including mini tool-bar area: */
+    /* Mini tool-bar: */
     if (m_pMiniToolBar)
     {
+        /* Get mini-toolbar mask: */
         QRegion toolBarRegion(m_pMiniToolBar->mask());
+
+        /* Shift mask according global position: */
         toolBarRegion.translate(m_pMiniToolBar->mapToGlobal(toolBarRegion.boundingRect().topLeft()) - QPoint(1, 0));
+
+        /* Shift mask according available geometry: */
+        int iScreen = static_cast<UIMachineLogicSeamless*>(machineLogic())->hostScreenForGuestScreen(m_uScreenId);
+        QRect screenArea = QApplication::desktop()->screenGeometry(iScreen);
+        QRect workingArea = vboxGlobal().availableGeometry(iScreen);
+        QPoint workingAreaOffset(screenArea.topLeft() - workingArea.topLeft());
+        toolBarRegion.translate(workingAreaOffset);
+
+        /* Including mini tool-bar mask: */
         region += toolBarRegion;
     }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/VBoxMiniToolBar.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/VBoxMiniToolBar.cpp	(revision 27445)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/VBoxMiniToolBar.cpp	(revision 27446)
@@ -225,6 +225,6 @@
             case AlignTop:
             {
-                if (((mPositionY == screen.y()) && mSlideToScreen) ||
-                    ((mPositionY == screen.y() - height() + 1) && !mSlideToScreen))
+                if (((mPositionY == 0) && mSlideToScreen) ||
+                    ((mPositionY == - height() + 1) && !mSlideToScreen))
                 {
                     mScrollTimer.stop();
@@ -241,6 +241,6 @@
             case AlignBottom:
             {
-                if (((mPositionY == screen.y() + screen.height() - height()) && mSlideToScreen) ||
-                    ((mPositionY == screen.y() + screen.height() - 1) && !mSlideToScreen))
+                if (((mPositionY == screen.height() - height()) && mSlideToScreen) ||
+                    ((mPositionY == screen.height() - 1) && !mSlideToScreen))
                 {
                     mScrollTimer.stop();
@@ -392,10 +392,10 @@
         case AlignTop:
         {
-            mPositionY = screen.y() - height() + 1;
+            mPositionY = - height() + 1;
             break;
         }
         case AlignBottom:
         {
-            mPositionY = screen.y() + screen.height() - 1;
+            mPositionY = screen.height() - 1;
             break;
         }
