@@ -379,8 +379,9 @@ void UIMachineWindowFullscreen::placeOnScreen()
/* Map window onto required screen: */
windowHandle()->setScreen(qApp->screens().at(iHostScreen));
- /* Set appropriate window size: */
+ /* Set appropriate window position&size: */
resize(workingArea.size());
+ move(workingArea.topLeft());
#elif defined(VBOX_WS_NIX)
@@ -458,11 +459,17 @@ void UIMachineWindowFullscreen::showInNecessaryMode()
if (fWasMinimized)
setWindowState(Qt::WindowNoState);
+ /* Exit full-screen if necessary: */
+ if (isFullScreen())
+ showNormal();
+
/* Make sure window have appropriate geometry: */
placeOnScreen();
- /* Show window: */
- showFullScreen();
+ /* First of all show window in normal mode
+ * then request full-screen mode async way: */
+ showNormal();
+ QTimer::singleShot(0, this, SLOT(showFullScreen()));
/* Restore minimized state if necessary: */
if (m_fWasMinimized || fWasMinimized)
@@ -862,8 +862,10 @@ void UIMiniToolBar::sltShow()
}
case GeometryType_Full:
{
- /* Show full-screen: */
- showFullScreen();
+ /* First of all show window in normal mode
+ * then request full-screen mode async way: */
+ showNormal();
+ QTimer::singleShot(0, this, SLOT(showFullScreen()));
break;
}
}
@@ -963,17 +965,19 @@ void UIMiniToolBar::sltAdjust()
}
case GeometryType_Full:
{
- /* Map window onto required screen: */
- LogRel(("GUI: Map mini-toolbar for window #%d to screen %d of %d\n",
- m_iWindowIndex, iHostScreen, qApp->screens().size()));
- windowHandle()->setScreen(qApp->screens().at(iHostScreen));
-
/* Set appropriate window size: */
const QSize newSize = workingArea.size();
LogRel(("GUI: Resize mini-toolbar for window #%d to %dx%d\n",
m_iWindowIndex, newSize.width(), newSize.height()));
resize(newSize);
+ /* Map/move window onto required screen: */
+ const QPoint newPosition = workingArea.topLeft();
+ LogRel(("GUI: Map&move mini-toolbar for window #%d to screen %d of %d\n",
+ m_iWindowIndex, iHostScreen, qApp->screens().size()));
+ windowHandle()->setScreen(qApp->screens().at(iHostScreen));
+ move(newPosition);
+
break;
}
}