VirtualBox

Changeset 76941 in vbox


Ignore:
Timestamp:
Jan 22, 2019 6:26:28 PM (6 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9241: VirtualBox Manager UI: Properly restore saved geometry changes on Windows/macOS hosts.

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

Legend:

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

    r76865 r76941  
    180180            break;
    181181        }
    182         /* Handle every Resize and Move we keep track of the geometry. */
    183         case QEvent::Resize:
    184         {
    185 #ifdef VBOX_WS_X11
    186             /* Prevent handling if fake screen detected: */
    187             if (gpDesktop->isFakeScreenDetected())
    188                 break;
    189 #endif /* VBOX_WS_X11 */
    190 
    191             if (isVisible() && (windowState() & (Qt::WindowMaximized | Qt::WindowMinimized | Qt::WindowFullScreen)) == 0)
    192             {
    193                 QResizeEvent *pResizeEvent = static_cast<QResizeEvent*>(pEvent);
    194                 m_geometry.setSize(pResizeEvent->size());
    195             }
    196             break;
    197         }
    198         case QEvent::Move:
    199         {
    200 #ifdef VBOX_WS_X11
    201             /* Prevent handling if fake screen detected: */
    202             if (gpDesktop->isFakeScreenDetected())
    203                 break;
    204 #endif /* VBOX_WS_X11 */
    205 
    206             if (isVisible() && (windowState() & (Qt::WindowMaximized | Qt::WindowMinimized | Qt::WindowFullScreen)) == 0)
    207             {
    208 #if defined(VBOX_WS_MAC) || defined(VBOX_WS_WIN)
    209                 QMoveEvent *pMoveEvent = static_cast<QMoveEvent*>(pEvent);
    210                 m_geometry.moveTo(pMoveEvent->pos());
    211 #else /* !VBOX_WS_MAC && !VBOX_WS_WIN */
    212                 m_geometry.moveTo(geometry().x(), geometry().y());
    213 #endif /* !VBOX_WS_MAC && !VBOX_WS_WIN */
    214             }
    215             break;
    216         }
    217182        default:
    218183            break;
     
    220185    /* Call to base-class: */
    221186    return QIWithRetranslateUI<QIMainWindow>::event(pEvent);
     187}
     188
     189void UIVirtualBoxManager::moveEvent(QMoveEvent *pEvent)
     190{
     191    /* Call to base-class: */
     192    QIWithRetranslateUI<QIMainWindow>::moveEvent(pEvent);
     193
     194#ifdef VBOX_WS_X11
     195    /* Prevent further handling if fake screen detected: */
     196    if (gpDesktop->isFakeScreenDetected())
     197        break;
     198#endif
     199
     200    /* Prevent handling for yet/already invisible window or if window is in minimized state: */
     201    if (isVisible() && (windowState() & Qt::WindowMinimized) == 0)
     202    {
     203#if defined(VBOX_WS_MAC) || defined(VBOX_WS_WIN)
     204        m_geometry.moveTo(frameGeometry().x(), frameGeometry().y());
     205#else
     206        m_geometry.moveTo(geometry().x(), geometry().y());
     207#endif
     208    }
     209}
     210
     211void UIVirtualBoxManager::resizeEvent(QResizeEvent *pEvent)
     212{
     213    /* Call to base-class: */
     214    QIWithRetranslateUI<QIMainWindow>::resizeEvent(pEvent);
     215
     216#ifdef VBOX_WS_X11
     217    /* Prevent handling if fake screen detected: */
     218    if (gpDesktop->isFakeScreenDetected())
     219        break;
     220#endif
     221
     222    /* Prevent handling for yet/already invisible window or if window is in minimized state: */
     223    if (isVisible() && (windowState() & Qt::WindowMinimized) == 0)
     224    {
     225        QResizeEvent *pResizeEvent = static_cast<QResizeEvent*>(pEvent);
     226        m_geometry.setSize(pResizeEvent->size());
     227    }
    222228}
    223229
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h

    r76815 r76941  
    9191        /** Handles any Qt @a pEvent. */
    9292        virtual bool event(QEvent *pEvent) /* override */;
     93        /** Handles move @a pEvent. */
     94        virtual void moveEvent(QMoveEvent *pEvent) /* override */;
     95        /** Handles resize @a pEvent. */
     96        virtual void resizeEvent(QResizeEvent *pEvent) /* override */;
    9397        /** Handles show @a pEvent. */
    9498        virtual void showEvent(QShowEvent *pEvent) /* override */;
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