VirtualBox

Changeset 61850 in vbox


Ignore:
Timestamp:
Jun 23, 2016 12:46:21 PM (8 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:8422: Runtime UI: Full-screen window: X11 window minimization procedure adjustments according to Qt5 requirements.

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

Legend:

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

    r61748 r61850  
    2323# include <QMenu>
    2424# include <QTimer>
    25 # ifdef VBOX_WS_WIN
     25# if defined(VBOX_WS_WIN) || defined(VBOX_WS_X11)
    2626#  if QT_VERSION >= 0x050000
    2727#   include <QWindow>
    2828#  endif /* QT_VERSION >= 0x050000 */
    29 # endif /* VBOX_WS_WIN */
     29# endif /* VBOX_WS_WIN || VBOX_WS_X11 */
    3030
    3131/* GUI includes: */
     
    196196}
    197197#endif /* VBOX_WS_MAC */
     198
     199#if defined(VBOX_WS_WIN) || defined(VBOX_WS_X11)
     200void UIMachineWindowFullscreen::sltShowMinimized()
     201{
     202# if QT_VERSION < 0x050000
     203    /* Minimize window: */
     204    showMinimized();
     205# else /* QT_VERSION >= 0x050000 */
     206#  if defined(VBOX_WS_WIN)
     207    /* Minimize window: */
     208    showMinimized();
     209#  else /* VBOX_WS_X11 */
     210    /* Minimize window and reset it's state to NONE: */
     211    setWindowState(Qt::WindowNoState);
     212    windowHandle()->showMinimized();
     213#  endif /* VBOX_WS_X11 */
     214# endif /* QT_VERSION >= 0x050000 */
     215}
     216#endif /* VBOX_WS_WIN || VBOX_WS_X11 */
    198217
    199218void UIMachineWindowFullscreen::prepareVisualState()
     
    259278        m_pMiniToolBar->addMenus(actionPool()->menus());
    260279        connect(m_pMiniToolBar, SIGNAL(sigMinimizeAction()),
    261                 this, SLOT(showMinimized()), Qt::QueuedConnection);
     280                this, SLOT(sltShowMinimized()), Qt::QueuedConnection);
    262281        connect(m_pMiniToolBar, SIGNAL(sigExitAction()),
    263282                actionPool()->action(UIActionIndexRT_M_View_T_Fullscreen), SLOT(trigger()));
     
    602621#endif /* VBOX_WS_WIN || VBOX_WS_X11 */
    603622
     623#ifdef VBOX_WS_X11
     624# if QT_VERSION >= 0x050000
     625void UIMachineWindowFullscreen::changeEvent(QEvent *pEvent)
     626{
     627    /* Depending on event type: */
     628    switch (pEvent->type())
     629    {
     630        case QEvent::WindowStateChange:
     631        {
     632            /* Restore necessary mode view on changing state from Minimized to None: */
     633            QWindowStateChangeEvent *pChangeEvent = static_cast<QWindowStateChangeEvent*>(pEvent);
     634            if (pChangeEvent->oldState() == Qt::WindowMinimized && windowState() == Qt::WindowNoState)
     635                showInNecessaryMode();
     636            break;
     637        }
     638    }
     639    /* Call to base-class: */
     640    UIMachineWindow::changeEvent(pEvent);
     641}
     642# endif /* QT_VERSION >= 0x050000 */
     643#endif /* VBOX_WS_X11 */
     644
    604645#ifdef VBOX_WS_WIN
    605646# if QT_VERSION >= 0x050000
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.h

    r61659 r61850  
    7676#endif /* RT_OS_DARWIN */
    7777
     78#if defined(VBOX_WS_WIN) || defined(VBOX_WS_X11)
     79    /** Performs window minimization the tricky way. */
     80    void sltShowMinimized();
     81#endif /* VBOX_WS_WIN || VBOX_WS_X11 */
     82
    7883private:
    7984
     
    101106    void updateAppearanceOf(int iElement);
    102107#endif /* VBOX_WS_WIN || VBOX_WS_X11 */
     108
     109#ifdef VBOX_WS_X11
     110# if QT_VERSION >= 0x050000
     111    /** Handles @a pEvent about state change. */
     112    void changeEvent(QEvent *pEvent);
     113# endif /* QT_VERSION >= 0x050000 */
     114#endif /* VBOX_WS_X11 */
    103115
    104116#ifdef VBOX_WS_WIN
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