VirtualBox

Changeset 65554 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Jan 31, 2017 4:52:46 PM (8 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:8636: X11: Runtime UI: Mini-toolbar: Restore the mini-toolbar minimization/restoring technique, required after r113198.

File:
1 edited

Legend:

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

    r65552 r65554  
    973973    }
    974974
    975 #ifdef VBOX_WS_X11
    976     /* If that's window event: */
    977     if (pWatched == this)
    978     {
    979         switch (pEvent->type())
    980         {
    981             case QEvent::WindowStateChange:
    982             {
    983                 /* Watch for window state changes: */
    984                 QWindowStateChangeEvent *pChangeEvent = static_cast<QWindowStateChangeEvent*>(pEvent);
    985                 LogRel2(("GUI: UIMiniToolBar::eventFilter: Window state changed from %d to %d\n",
    986                          (int)pChangeEvent->oldState(), (int)windowState()));
    987                 if (   windowState() != Qt::WindowMinimized
    988                     && pChangeEvent->oldState() == Qt::WindowMinimized)
    989                 {
    990                     /* Asynchronously call for sltShow(): */
    991                     LogRel2(("GUI: UIMiniToolBar::eventFilter: Window restored\n"));
    992                     QMetaObject::invokeMethod(this, "sltShow", Qt::QueuedConnection);
    993                 }
    994                 break;
    995             }
    996             default:
    997                 break;
    998         }
    999     }
    1000 #endif /* VBOX_WS_X11 */
    1001 
    1002975    /* If that's parent window event: */
    1003976    if (pWatched == m_pParent)
     
    10531026                LogRel2(("GUI: UIMiniToolBar::eventFilter: Parent window state changed from %d to %d\n",
    10541027                         (int)pChangeEvent->oldState(), (int)m_pParent->windowState()));
    1055                 if (m_pParent->windowState() & Qt::WindowMinimized)
     1028
     1029                if (   m_pParent->windowState() & Qt::WindowMinimized
     1030                    && !m_fIsParentMinimized)
    10561031                {
    10571032                    /* Mark parent window minimized, isMinimized() is not enough due to Qt5vsX11 fight: */
    1058                     LogRel2(("GUI: UIMiniToolBar::eventFilter: Parent window minimized\n"));
     1033                    LogRel2(("GUI: UIMiniToolBar::eventFilter: Parent window is minimized\n"));
    10591034                    m_fIsParentMinimized = true;
    10601035                }
    10611036                else
    1062                 if (m_pParent->windowState() == Qt::WindowFullScreen)
     1037                if (m_fIsParentMinimized)
    10631038                {
    1064                     /* Mark parent window non-minimized, isMinimized() is not enough due to Qt5vsX11 fight: */
    1065                     LogRel2(("GUI: UIMiniToolBar::eventFilter: Parent window is full-screen\n"));
    1066                     m_fIsParentMinimized = false;
     1039                    switch (m_geometryType)
     1040                    {
     1041                        case GeometryType_Available:
     1042                        {
     1043                            if (   windowState() == Qt::WindowMaximized
     1044                                && pChangeEvent->oldState() == Qt::WindowNoState)
     1045                            {
     1046                                /* Mark parent window non-minimized, isMinimized() is not enough due to Qt5vsX11 fight: */
     1047                                LogRel2(("GUI: UIMiniToolBar::eventFilter: Parent window is maximized\n"));
     1048                                m_fIsParentMinimized = false;
     1049                            }
     1050                            break;
     1051                        }
     1052                        case GeometryType_Full:
     1053                        {
     1054                            if (   windowState() == Qt::WindowFullScreen
     1055                                && pChangeEvent->oldState() == Qt::WindowNoState)
     1056                            {
     1057                                /* Mark parent window non-minimized, isMinimized() is not enough due to Qt5vsX11 fight: */
     1058                                LogRel2(("GUI: UIMiniToolBar::eventFilter: Parent window is full-screen\n"));
     1059                                m_fIsParentMinimized = false;
     1060                            }
     1061                            break;
     1062                        }
     1063                    }
    10671064                }
    10681065                break;
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