VirtualBox

Changeset 4128 in vbox


Ignore:
Timestamp:
Aug 13, 2007 11:40:37 AM (18 years ago)
Author:
vboxsync
Message:

2079: Create seamless mode for Windows guests:

Fixing crash during exiting the Seamless Mode after VM was restored (with Seamless activated).
It's a timing problem caused due to the Finalize Open View procedure is not finished yet when the additions are notify the host they have seamless support. So the host entering the Seamless Mode just before the Open View is finished resulting temporary "progressbar" object pointer is stored in hidden children array. When the user leaves the Seamless Mode this pointer is used during show all the hidden children.

Location:
trunk/src/VBox/Frontends/VirtualBox
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/include/VBoxConsoleWnd.h

    r4098 r4128  
    302302    QColor erase_color;
    303303
     304    bool mIsOpenViewFinished : 1;
    304305    bool mIsFirstTimeStarted : 1;
    305306    bool mIsAutoSaveMedia : 1;
  • trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.cpp

    r4099 r4128  
    219219    , was_max (false)
    220220    , console_style (0)
     221    , mIsOpenViewFinished (false)
    221222    , mIsFirstTimeStarted (false)
    222223    , mIsAutoSaveMedia (true)
     
    993994#endif
    994995
     996    /* If seamless mode should be enabled then check if it is enabled
     997     * currently and re-enable it if seamless is supported */
     998    if (vmSeamlessAction->isOn() && mIsSeamlessSupported)
     999        vmSeamless (true);
     1000    mIsOpenViewFinished = true;
    9951001    LogFlowFuncLeave();
    9961002}
     
    28532859void VBoxConsoleWnd::updateAdditionsState (const QString &aVersion,
    28542860                                           bool aActive,
    2855                                            bool aSeamless)
     2861                                           bool aSeamlessSupported)
    28562862{
    28572863    vmAutoresizeGuestAction->setEnabled (aActive);
    2858     vmSeamlessAction->setEnabled (aSeamless);
    2859     mIsSeamlessSupported = aSeamless;
    2860     if (aSeamless && vmSeamlessAction->isOn())
    2861         vmSeamless (true);
     2864    vmSeamlessAction->setEnabled (aSeamlessSupported);
     2865    mIsSeamlessSupported = aSeamlessSupported;
     2866    /* If seamless mode should be enabled then check if it is enabled
     2867     * currently and re-enable it if open-view procedure is finished */
     2868    if (vmSeamlessAction->isOn() && mIsOpenViewFinished)
     2869        aSeamlessSupported ? vmSeamless (true) : vmSeamless (false);
    28622870
    28632871    /* Check the GA version only in case of additions are active */
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