Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp	(revision 61849)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp	(revision 61850)
@@ -23,9 +23,9 @@
 # include <QMenu>
 # include <QTimer>
-# ifdef VBOX_WS_WIN
+# if defined(VBOX_WS_WIN) || defined(VBOX_WS_X11)
 #  if QT_VERSION >= 0x050000
 #   include <QWindow>
 #  endif /* QT_VERSION >= 0x050000 */
-# endif /* VBOX_WS_WIN */
+# endif /* VBOX_WS_WIN || VBOX_WS_X11 */
 
 /* GUI includes: */
@@ -196,4 +196,23 @@
 }
 #endif /* VBOX_WS_MAC */
+
+#if defined(VBOX_WS_WIN) || defined(VBOX_WS_X11)
+void UIMachineWindowFullscreen::sltShowMinimized()
+{
+# if QT_VERSION < 0x050000
+    /* Minimize window: */
+    showMinimized();
+# else /* QT_VERSION >= 0x050000 */
+#  if defined(VBOX_WS_WIN)
+    /* Minimize window: */
+    showMinimized();
+#  else /* VBOX_WS_X11 */
+    /* Minimize window and reset it's state to NONE: */
+    setWindowState(Qt::WindowNoState);
+    windowHandle()->showMinimized();
+#  endif /* VBOX_WS_X11 */
+# endif /* QT_VERSION >= 0x050000 */
+}
+#endif /* VBOX_WS_WIN || VBOX_WS_X11 */
 
 void UIMachineWindowFullscreen::prepareVisualState()
@@ -259,5 +278,5 @@
         m_pMiniToolBar->addMenus(actionPool()->menus());
         connect(m_pMiniToolBar, SIGNAL(sigMinimizeAction()),
-                this, SLOT(showMinimized()), Qt::QueuedConnection);
+                this, SLOT(sltShowMinimized()), Qt::QueuedConnection);
         connect(m_pMiniToolBar, SIGNAL(sigExitAction()),
                 actionPool()->action(UIActionIndexRT_M_View_T_Fullscreen), SLOT(trigger()));
@@ -602,4 +621,26 @@
 #endif /* VBOX_WS_WIN || VBOX_WS_X11 */
 
+#ifdef VBOX_WS_X11
+# if QT_VERSION >= 0x050000
+void UIMachineWindowFullscreen::changeEvent(QEvent *pEvent)
+{
+    /* Depending on event type: */
+    switch (pEvent->type())
+    {
+        case QEvent::WindowStateChange:
+        {
+            /* Restore necessary mode view on changing state from Minimized to None: */
+            QWindowStateChangeEvent *pChangeEvent = static_cast<QWindowStateChangeEvent*>(pEvent);
+            if (pChangeEvent->oldState() == Qt::WindowMinimized && windowState() == Qt::WindowNoState)
+                showInNecessaryMode();
+            break;
+        }
+    }
+    /* Call to base-class: */
+    UIMachineWindow::changeEvent(pEvent);
+}
+# endif /* QT_VERSION >= 0x050000 */
+#endif /* VBOX_WS_X11 */
+
 #ifdef VBOX_WS_WIN
 # if QT_VERSION >= 0x050000
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.h	(revision 61849)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.h	(revision 61850)
@@ -76,4 +76,9 @@
 #endif /* RT_OS_DARWIN */
 
+#if defined(VBOX_WS_WIN) || defined(VBOX_WS_X11)
+    /** Performs window minimization the tricky way. */
+    void sltShowMinimized();
+#endif /* VBOX_WS_WIN || VBOX_WS_X11 */
+
 private:
 
@@ -101,4 +106,11 @@
     void updateAppearanceOf(int iElement);
 #endif /* VBOX_WS_WIN || VBOX_WS_X11 */
+
+#ifdef VBOX_WS_X11
+# if QT_VERSION >= 0x050000
+    /** Handles @a pEvent about state change. */
+    void changeEvent(QEvent *pEvent);
+# endif /* QT_VERSION >= 0x050000 */
+#endif /* VBOX_WS_X11 */
 
 #ifdef VBOX_WS_WIN
