VirtualBox

Changeset 52729 in vbox


Ignore:
Timestamp:
Sep 12, 2014 4:19:07 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
96070
Message:

FE/Qt: Mac OS X: Runtime UI: Mini-toolbar: Manual show/hide for compliance with native full-screen feature logic.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineLogicFullscreen.cpp

    r52705 r52729  
    696696void UIMachineLogicFullscreen::revalidateNativeFullScreen(UIMachineWindow *pMachineWindow)
    697697{
     698    /* Make sure that is full-screen machine-window: */
     699    UIMachineWindowFullscreen *pMachineWindowFullscreen = qobject_cast<UIMachineWindowFullscreen*>(pMachineWindow);
     700    AssertPtrReturnVoid(pMachineWindowFullscreen);
     701
    698702    /* Make sure window is not already invalidated: */
    699703    if (m_invalidFullscreenMachineWindows.contains(pMachineWindow))
     
    701705
    702706    /* Ignore window if it is in 'fullscreen transition': */
    703     if (qobject_cast<UIMachineWindowFullscreen*>(pMachineWindow)->isInFullscreenTransition())
     707    if (pMachineWindowFullscreen->isInFullscreenTransition())
    704708        return;
    705709
     
    721725                    "Ask transient machine-window #%d to hide.\n", (int)uScreenID));
    722726
     727            /* Make sure mini-toolbar hidden: */
     728            pMachineWindowFullscreen->setMiniToolbarVisible(false);
     729            /* Make sure window hidden: */
    723730            pMachineWindow->hide();
    724731        }
     
    731738            /* Make sure window have proper geometry and shown: */
    732739            pMachineWindow->showInNecessaryMode();
     740            /* Make sure mini-toolbar shown: */
     741            pMachineWindowFullscreen->setMiniToolbarVisible(true);
    733742        }
    734743    }
     
    751760                setPresentationModeEnabled(true);
    752761
     762                /* Make sure mini-toolbar hidden: */
     763                pMachineWindowFullscreen->setMiniToolbarVisible(false);
    753764                /* Make sure window have proper geometry and shown: */
    754765                pMachineWindow->showInNecessaryMode();
     
    764775                        "Ask machine-window #%d to hide.\n", (int)uScreenID));
    765776
     777                /* Make sure mini-toolbar hidden: */
     778                pMachineWindowFullscreen->setMiniToolbarVisible(false);
     779                /* Make sure window hidden: */
    766780                pMachineWindow->hide();
    767781            }
     
    790804                m_invalidFullscreenMachineWindows << pMachineWindow;
    791805
     806                /* Make sure mini-toolbar hidden: */
     807                pMachineWindowFullscreen->setMiniToolbarVisible(false);
    792808                /* Ask window to exit 'fullscreen' mode: */
    793809                emit sigNotifyAboutNativeFullscreenShouldBeExited(pMachineWindow);
     810                return;
    794811            }
    795812
     
    801818                        "Ask machine-window #%d to adjust guest geometry.\n", (int)uScreenID));
    802819
     820                /* Make sure mini-toolbar shown: */
     821                pMachineWindowFullscreen->setMiniToolbarVisible(true);
    803822                /* Just adjust machine-view size if necessary: */
    804823                pMachineWindow->adjustMachineViewSize();
     824                return;
    805825            }
     826
     827            /* Make sure mini-toolbar shown: */
     828            pMachineWindowFullscreen->setMiniToolbarVisible(true);
    806829        }
    807830    }
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp

    r52727 r52729  
    100100        emit sigNotifyAboutNativeFullscreenFailToEnter();
    101101    }
     102}
     103
     104void UIMachineWindowFullscreen::setMiniToolbarVisible(bool fVisible)
     105{
     106    /* Make sure mini-toolbar exists: */
     107    if (!m_pMiniToolBar)
     108        return;
     109    /* Set mini-toolbar visibility to passed one: */
     110    m_pMiniToolBar->setVisible(fVisible);
    102111}
    103112#endif /* Q_WS_MAC */
     
    329338    AssertPtrReturnVoid(pFullscreenLogic);
    330339
     340#ifdef Q_WS_MAC
     341    /* ML and next using native stuff: */
     342    const bool fSupportsNativeFullScreen = vboxGlobal().osRelease() > MacOSXRelease_Lion;
     343#endif /* Q_WS_MAC */
     344
    331345    /* Make sure this window should be shown and mapped to some host-screen: */
    332346    if (!uisession()->isScreenVisible(m_uScreenId) ||
     
    334348    {
    335349        /* Hide mini-toolbar: */
    336         if (m_pMiniToolBar)
     350        if (   m_pMiniToolBar
     351#ifdef Q_WS_MAC
     352            && !fSupportsNativeFullScreen
     353#endif /* Q_WS_MAC */
     354            )
    337355            m_pMiniToolBar->hide();
    338356        /* Hide window: */
     
    360378    /* ML and next using native stuff, so we can call for simple show(),
    361379     * Lion and previous using Qt stuff, so we should call for showFullScreen(): */
    362     const bool fSupportsNativeFullScreen = vboxGlobal().osRelease() > MacOSXRelease_Lion;
    363380    if (fSupportsNativeFullScreen)
    364381        show();
     
    391408
    392409    /* Show mini-toolbar: */
    393     if (m_pMiniToolBar)
     410    if (   m_pMiniToolBar
     411#ifdef Q_WS_MAC
     412        && !fSupportsNativeFullScreen
     413#endif /* Q_WS_MAC */
     414        )
    394415        m_pMiniToolBar->show();
    395416
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.h

    r52727 r52729  
    5353    /** Mac OS X: Returns whether window is in 'fullscreen' transition. */
    5454    bool isInFullscreenTransition() const { return m_fIsInFullscreenTransition; }
     55    /** Mac OS X: Defines whether mini-toolbar should be @a fVisible. */
     56    void setMiniToolbarVisible(bool fVisible);
    5557#endif /* Q_WS_MAC */
    5658
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp

    r52727 r52729  
    288288    /* Adjust geometry finally: */
    289289    adjustGeometry();
    290 
    291     /* Show: */
    292     show();
    293290}
    294291
Note: See TracChangeset for help on using the changeset viewer.

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