Index: trunk/src/VBox/Frontends/VirtualBox/include/VBoxConsoleView.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/include/VBoxConsoleView.h	(revision 8291)
+++ trunk/src/VBox/Frontends/VirtualBox/include/VBoxConsoleView.h	(revision 8292)
@@ -109,5 +109,5 @@
     void mouseStateChanged (int state);
     void machineStateChanged (KMachineState state);
-    void additionsStateChanged (const QString &, bool, bool);
+    void additionsStateChanged (const QString &, bool, bool, bool);
     void mediaChanged (VBoxDefs::DiskType aType);
     void networkStateChange();
Index: trunk/src/VBox/Frontends/VirtualBox/include/VBoxConsoleWnd.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/include/VBoxConsoleWnd.h	(revision 8291)
+++ trunk/src/VBox/Frontends/VirtualBox/include/VBoxConsoleWnd.h	(revision 8292)
@@ -175,5 +175,5 @@
     void updateMachineState (KMachineState state);
     void updateMouseState (int state);
-    void updateAdditionsState (const QString&, bool, bool);
+    void updateAdditionsState (const QString&, bool, bool, bool);
     void updateNetworkAdarptersState();
     void updateUsbState();
@@ -325,4 +325,5 @@
     bool mIsSeamless : 1;
     bool mIsSeamlessSupported : 1;
+    bool mIsGraphicsSupported : 1;
     int normal_wflags;
     bool was_max : 1;
Index: trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp	(revision 8291)
+++ trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp	(revision 8292)
@@ -235,12 +235,15 @@
                          const QString &aAddVersion,
                          bool aAddActive,
-                         bool aSupportsSeamless) :
+                         bool aSupportsSeamless,
+                         bool aSupportsGraphics) :
         QEvent ((QEvent::Type) VBoxDefs::AdditionsStateChangeEventType),
         mOsTypeId (aOsTypeId), mAddVersion (aAddVersion),
-        mAddActive (aAddActive), mSupportsSeamless (aSupportsSeamless) {}
+        mAddActive (aAddActive), mSupportsSeamless (aSupportsSeamless),
+        mSupportsGraphics (aSupportsGraphics) {}
     const QString &osTypeId() const { return mOsTypeId; }
     const QString &additionVersion() const { return mAddVersion; }
     bool additionActive() const { return mAddActive; }
     bool supportsSeamless() const { return mSupportsSeamless; }
+    bool supportsGraphics() const { return mSupportsGraphics; }
 private:
     QString mOsTypeId;
@@ -248,4 +251,5 @@
     bool mAddActive;
     bool mSupportsSeamless;
+    bool mSupportsGraphics;
 };
 
@@ -438,5 +442,6 @@
                                      guest.GetAdditionsVersion(),
                                      guest.GetAdditionsActive(),
-                                     guest.GetSupportsSeamless()));
+                                     guest.GetSupportsSeamless(),
+                                     guest.GetSupportsGraphics()));
         return S_OK;
     }
@@ -1180,5 +1185,6 @@
                 emit additionsStateChanged (ge->additionVersion(),
                                             ge->additionActive(),
-                                            ge->supportsSeamless());
+                                            ge->supportsSeamless(),
+                                            ge->supportsGraphics());
                 return true;
             }
Index: trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.cpp	(revision 8291)
+++ trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.cpp	(revision 8292)
@@ -120,4 +120,5 @@
     , mIsSeamless (false)
     , mIsSeamlessSupported (false)
+    , mIsGraphicsSupported (false)
     , normal_wflags (getWFlags())
     , was_max (false)
@@ -798,6 +799,6 @@
     connect (console, SIGNAL (machineStateChanged (KMachineState)),
              this, SLOT (updateMachineState (KMachineState)));
-    connect (console, SIGNAL (additionsStateChanged (const QString&, bool, bool)),
-             this, SLOT (updateAdditionsState (const QString &, bool, bool)));
+    connect (console, SIGNAL (additionsStateChanged (const QString&, bool, bool, bool)),
+             this, SLOT (updateAdditionsState (const QString &, bool, bool, bool)));
     connect (console, SIGNAL (mediaChanged (VBoxDefs::DiskType)),
              this, SLOT (updateMediaState (VBoxDefs::DiskType)));
@@ -943,5 +944,5 @@
     /* If seamless mode should be enabled then check if it is enabled
      * currently and re-enable it if seamless is supported */
-    if (vmSeamlessAction->isOn() && mIsSeamlessSupported)
+    if (vmSeamlessAction->isOn() && mIsSeamlessSupported && mIsGraphicsSupported)
         toggleFullscreenMode (true, true);
     mIsOpenViewFinished = true;
@@ -1063,5 +1064,5 @@
 #endif
 
-    vmSeamlessAction->setEnabled (mIsSeamlessSupported);
+    vmSeamlessAction->setEnabled (mIsSeamlessSupported && mIsGraphicsSupported);
     vmFullscreenAction->setEnabled (true);
 
@@ -2032,5 +2033,5 @@
         mIsFullscreen = aOn;
         vmAdjustWindowAction->setEnabled (!aOn);
-        vmSeamlessAction->setEnabled (!aOn && mIsSeamlessSupported);
+        vmSeamlessAction->setEnabled (!aOn && mIsSeamlessSupported && mIsGraphicsSupported);
     }
 
@@ -2283,5 +2284,5 @@
 {
     /* check if it is possible to enter/leave seamless mode */
-    if (mIsSeamlessSupported || !aOn)
+    if (mIsSeamlessSupported && mIsGraphicsSupported || !aOn)
     {
         bool ok = toggleFullscreenMode (aOn, true /* aSeamless */);
@@ -3228,14 +3229,20 @@
 void VBoxConsoleWnd::updateAdditionsState (const QString &aVersion,
                                            bool aActive,
-                                           bool aSeamlessSupported)
+                                           bool aSeamlessSupported,
+                                           bool aGraphicsSupported)
 {
     vmAutoresizeGuestAction->setEnabled (aActive);
-    if (mIsSeamlessSupported != aSeamlessSupported)
-    {
-        vmSeamlessAction->setEnabled (aSeamlessSupported);
+    if (  (mIsSeamlessSupported != aSeamlessSupported)
+        || (mIsGraphicsSupported != aGraphicsSupported))
+    {
+        vmSeamlessAction->setEnabled (aSeamlessSupported && aGraphicsSupported);
         mIsSeamlessSupported = aSeamlessSupported;
+        mIsGraphicsSupported = aGraphicsSupported;
         /* If seamless mode should be enabled then check if it is enabled
          * currently and re-enable it if open-view procedure is finished */
-        if (vmSeamlessAction->isOn() && mIsOpenViewFinished && aSeamlessSupported)
+        if (   vmSeamlessAction->isOn()
+            && mIsOpenViewFinished
+            && aSeamlessSupported
+            && aGraphicsSupported)
             toggleFullscreenMode (true, true);
     }
Index: trunk/src/VBox/Frontends/VirtualBox4/include/VBoxConsoleView.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/VBoxConsoleView.h	(revision 8291)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/VBoxConsoleView.h	(revision 8292)
@@ -126,5 +126,5 @@
     void mouseStateChanged (int state);
     void machineStateChanged (KMachineState state);
-    void additionsStateChanged (const QString &, bool, bool);
+    void additionsStateChanged (const QString &, bool, bool, bool);
     void mediaChanged (VBoxDefs::DiskType aType);
     void networkStateChange();
Index: trunk/src/VBox/Frontends/VirtualBox4/include/VBoxConsoleWnd.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/VBoxConsoleWnd.h	(revision 8291)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/VBoxConsoleWnd.h	(revision 8292)
@@ -175,5 +175,5 @@
     void updateMachineState (KMachineState state);
     void updateMouseState (int state);
-    void updateAdditionsState (const QString&, bool, bool);
+    void updateAdditionsState (const QString&, bool, bool, bool);
     void updateNetworkAdarptersState();
     void updateUsbState();
@@ -328,4 +328,5 @@
     bool mIsSeamless : 1;
     bool mIsSeamlessSupported : 1;
+    bool mIsGraphicsSupported : 1;
     bool was_max : 1;
     QObjectList hidden_children;
Index: trunk/src/VBox/Frontends/VirtualBox4/src/VBoxConsoleView.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/VBoxConsoleView.cpp	(revision 8291)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/VBoxConsoleView.cpp	(revision 8292)
@@ -228,12 +228,15 @@
                          const QString &aAddVersion,
                          bool aAddActive,
-                         bool aSupportsSeamless) :
+                         bool aSupportsSeamless,
+                         bool aSupportsGraphics) :
         QEvent ((QEvent::Type) VBoxDefs::AdditionsStateChangeEventType),
         mOsTypeId (aOsTypeId), mAddVersion (aAddVersion),
-        mAddActive (aAddActive), mSupportsSeamless (aSupportsSeamless) {}
+        mAddActive (aAddActive), mSupportsSeamless (aSupportsSeamless),
+        mSupportsGraphics (aSupportsGraphics) {}
     const QString &osTypeId() const { return mOsTypeId; }
     const QString &additionVersion() const { return mAddVersion; }
     bool additionActive() const { return mAddActive; }
     bool supportsSeamless() const { return mSupportsSeamless; }
+    bool supportsGraphics() const { return mSupportsGraphics; }
 private:
     QString mOsTypeId;
@@ -241,4 +244,5 @@
     bool mAddActive;
     bool mSupportsSeamless;
+    bool mSupportsGraphics;
 };
 
@@ -429,5 +433,6 @@
                                      guest.GetAdditionsVersion(),
                                      guest.GetAdditionsActive(),
-                                     guest.GetSupportsSeamless()));
+                                     guest.GetSupportsSeamless(),
+                                     guest.GetSupportsGraphics()));
         return S_OK;
     }
@@ -1198,5 +1203,6 @@
                 emit additionsStateChanged (ge->additionVersion(),
                                             ge->additionActive(),
-                                            ge->supportsSeamless());
+                                            ge->supportsSeamless(),
+                                            ge->supportsGraphics());
                 return true;
             }
Index: trunk/src/VBox/Frontends/VirtualBox4/src/VBoxConsoleWnd.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/VBoxConsoleWnd.cpp	(revision 8291)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/VBoxConsoleWnd.cpp	(revision 8292)
@@ -125,4 +125,5 @@
     , mIsSeamless (false)
     , mIsSeamlessSupported (false)
+    , mIsGraphicsSupported (false)
     , was_max (false)
     , console_style (0)
@@ -808,6 +809,6 @@
     connect (console, SIGNAL (machineStateChanged (KMachineState)),
              this, SLOT (updateMachineState (KMachineState)));
-    connect (console, SIGNAL (additionsStateChanged (const QString&, bool, bool)),
-             this, SLOT (updateAdditionsState (const QString &, bool, bool)));
+    connect (console, SIGNAL (additionsStateChanged (const QString&, bool, bool, bool)),
+             this, SLOT (updateAdditionsState (const QString &, bool, bool, bool)));
     connect (console, SIGNAL (mediaChanged (VBoxDefs::DiskType)),
              this, SLOT (updateMediaState (VBoxDefs::DiskType)));
@@ -952,5 +953,7 @@
     /* If seamless mode should be enabled then check if it is enabled
      * currently and re-enable it if seamless is supported */
-    if (vmSeamlessAction->isChecked() && mIsSeamlessSupported)
+    if (   vmSeamlessAction->isChecked()
+        && mIsSeamlessSupported
+        && mIsGraphicsSupported)
         toggleFullscreenMode (true, true);
     mIsOpenViewFinished = true;
@@ -1072,5 +1075,5 @@
 #endif
 
-    vmSeamlessAction->setEnabled (mIsSeamlessSupported);
+    vmSeamlessAction->setEnabled (mIsSeamlessSupported && mIsGraphicsSupported);
     vmFullscreenAction->setEnabled (true);
 
@@ -2053,5 +2056,5 @@
         mIsFullscreen = aOn;
         vmAdjustWindowAction->setEnabled (!aOn);
-        vmSeamlessAction->setEnabled (!aOn && mIsSeamlessSupported);
+        vmSeamlessAction->setEnabled (!aOn && mIsSeamlessSupported && mIsGraphicsSupported);
     }
 
@@ -2341,5 +2344,5 @@
 {
     /* check if it is possible to enter/leave seamless mode */
-    if (mIsSeamlessSupported || !aOn)
+    if (mIsSeamlessSupported && mIsGraphicsSupported || !aOn)
     {
         bool ok = toggleFullscreenMode (aOn, true /* aSeamless */);
@@ -3272,14 +3275,20 @@
 void VBoxConsoleWnd::updateAdditionsState (const QString &aVersion,
                                            bool aActive,
-                                           bool aSeamlessSupported)
-{
-    vmAutoresizeGuestAction->setEnabled (aActive);
-    if (mIsSeamlessSupported != aSeamlessSupported)
-    {
-        vmSeamlessAction->setEnabled (aSeamlessSupported);
+                                           bool aSeamlessSupported,
+                                           bool aGraphicsSupported)
+{
+    vmAutoresizeGuestAction->setEnabled (aActive && aGraphicsSupported);
+    if (   (mIsSeamlessSupported != aSeamlessSupported)
+        || (mIsGraphicsSupported != aGraphicsSupported))
+    {
+        vmSeamlessAction->setEnabled (aSeamlessSupported && aGraphicsSupported);
         mIsSeamlessSupported = aSeamlessSupported;
+        mIsGraphicsSupported = aGraphicsSupported;
         /* If seamless mode should be enabled then check if it is enabled
          * currently and re-enable it if open-view procedure is finished */
-        if (vmSeamlessAction->isChecked() && mIsOpenViewFinished && aSeamlessSupported)
+        if (   vmSeamlessAction->isChecked()
+            && mIsOpenViewFinished
+            && aSeamlessSupported
+            && aGraphicsSupported)
             toggleFullscreenMode (true, true);
     }
