VirtualBox

Ignore:
Timestamp:
Jul 17, 2007 4:12:36 PM (17 years ago)
Author:
vboxsync
Message:

Seamless Mode beta version committed:

  1. Menu item "Seamless Mode" is added into VM menu and linked to "GUI/Seamless" xml-config parameter.
  2. This menu item could be toggled on/off (the starting value is loading from config at startup) but disabled at startup until the guest additions notifies the host about this feature is supported.
  3. After that this mode is activated automatically (in case it was set "on" in config) and can be toggled on/off by the user with Host+S key-shortcut.

Due to any callback to guest additions are not supported yet (afaik) the Seamless Mode's starting screen could be correct (only one guest status-bar displayed) and incorrect sometimes (whole guest desktop). It becomes correct after any guest region update (for example, in case of any guest window is created, moved or resized).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp

    r3483 r3674  
    231231    GuestAdditionsEvent (const QString &aOsTypeId,
    232232                         const QString &aAddVersion,
    233                          bool aAddActive) :
     233                         bool aAddActive,
     234                         bool aSeamlessActive) :
    234235        QEvent ((QEvent::Type) VBoxDefs::AdditionsStateChangeEventType),
    235         mOsTypeId (aOsTypeId), mAddVersion (aAddVersion), mAddActive (aAddActive) {}
     236        mOsTypeId (aOsTypeId), mAddVersion (aAddVersion),
     237        mAddActive (aAddActive), mSeamlessActive (aSeamlessActive) {}
    236238    const QString &osTypeId() const { return mOsTypeId; }
    237239    const QString &additionVersion() const { return mAddVersion; }
    238240    bool additionActive() const { return mAddActive; }
     241    bool seamlessActive() const { return mSeamlessActive; }
    239242private:
    240243    QString mOsTypeId;
    241244    QString mAddVersion;
    242245    bool mAddActive;
     246    bool mSeamlessActive;
    243247};
    244248
     
    391395                                     guest.GetOSTypeId(),
    392396                                     guest.GetAdditionsVersion(),
    393                                      guest.GetAdditionsActive()));
     397                                     guest.GetAdditionsActive(),
     398                                     guest.GetSeamlessSupport()));
    394399        return S_OK;
    395400    }
     
    935940                 * full screen */
    936941                if (!mainwnd->isTrueFullscreen() &&
     942                    !mainwnd->isTrueSeamless() &&
    937943                    !topLevelWidget()->isMaximized())
    938944                    normalizeGeometry (true /* adjustPosition */);
     
    955961            }
    956962#endif /* Q_WS_MAC */
     963
     964            case VBoxDefs::SetRegionEventType:
     965            {
     966                VBoxSetRegionEvent *sre = (VBoxSetRegionEvent*) e;
     967                mainwnd->setMask (sre->region());
     968                return true;
     969            }
    957970
    958971            case VBoxDefs::MousePointerChangeEventType:
     
    10221035                maybeRestrictMinimumSize();
    10231036
    1024                 emit additionsStateChanged (ge->additionVersion(), ge->additionActive());
     1037                emit additionsStateChanged (ge->additionVersion(),
     1038                                            ge->additionActive(),
     1039                                            ge->seamlessActive());
    10251040                return true;
    10261041            }
     
    12611276                     * variable should be set to true here in case of mainwnd is
    12621277                     * maximized or in fullscreen state. */
    1263                     if (mainwnd->isMaximized() || mainwnd->isTrueFullscreen())
     1278                    if (mainwnd->isMaximized() || mainwnd->isTrueFullscreen()
     1279                                               || mainwnd->isTrueSeamless())
    12641280                        ignore_mainwnd_resize = true;
    12651281                }
     
    12731289                if (!mainwnd->isMinimized() &&
    12741290                    !mainwnd->isMaximized() &&
    1275                     !mainwnd->isTrueFullscreen())
     1291                    !mainwnd->isTrueFullscreen() &&
     1292                    !mainwnd->isTrueSeamless())
    12761293                    QTimer::singleShot (0, this, SLOT (exitFullScreen()));
    12771294            }
     
    18241841}
    18251842
     1843bool VBoxConsoleView::isInSeamlessMode()
     1844{
     1845    return mainwnd->isTrueSeamless();
     1846}
     1847
    18261848/**
    18271849 *  Called on exit from fullscreen or from maximized mode.
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette