VirtualBox

Changeset 3728 in vbox for trunk/src


Ignore:
Timestamp:
Jul 20, 2007 9:18:26 AM (18 years ago)
Author:
vboxsync
Message:
  1. Popup menu for Seamless Mode implemented.
  2. Unifying the full-screen & seamless modes in one method.
  3. Flag mIsSeamlessModeSupported added.
  4. Some minor fixes.
Location:
trunk/src/VBox/Frontends/VirtualBox
Files:
5 edited

Legend:

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

    r3674 r3728  
    9595    void fixModifierState (LONG *codes, uint *count);
    9696
    97     bool isInSeamlessMode();
    98 
    9997signals:
    10098
  • trunk/src/VBox/Frontends/VirtualBox/include/VBoxConsoleWnd.h

    r3674 r3728  
    7171    void refreshView();
    7272
    73     bool isTrueFullscreen() const { return full_screen; }
     73    bool isTrueFullscreen() const { return mIsInFullscreenMode; }
    7474
    7575    bool isTrueSeamless() const { return mIsInSeamlessMode; }
    7676
    7777    void setMouseIntegrationLocked (bool);
     78
     79    void popupSeamlessMenu();
    7880
    7981public slots:
     
    115117    void updateAppearanceOf (int element);
    116118
     119    void toggleFullscreenMode (bool, bool);
     120
    117121private slots:
    118122
     
    175179
    176180private:
     181
     182    QPopupMenu *mSeamlessPopupMenu;
    177183
    178184    QActionGroup *runningActions;
     
    282288
    283289    // variables for dealing with true fullscreen
    284     bool full_screen : 1;
     290    bool mIsInFullscreenMode : 1;
    285291    bool mIsInSeamlessMode : 1;
     292    bool mIsSeamlessModeSupported : 1;
    286293    int normal_wflags;
    287294    bool was_max : 1;
  • trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp

    r3702 r3728  
    965965            {
    966966                VBoxSetRegionEvent *sre = (VBoxSetRegionEvent*) e;
    967                 mainwnd->setMask (sre->region());
     967                if (mainwnd->isTrueSeamless())
     968                    mainwnd->setMask (sre->region());
    968969                return true;
    969970            }
     
    11241125                    else if (ke->key() == Key_Home)
    11251126                    {
    1126                         mainwnd->menuBar()->setFocus();
     1127                        if (mainwnd->isTrueSeamless())
     1128                            mainwnd->popupSeamlessMenu();
     1129                        else
     1130                            mainwnd->menuBar()->setFocus();
    11271131                    }
    11281132                    else
     
    18421846}
    18431847
    1844 bool VBoxConsoleView::isInSeamlessMode()
    1845 {
    1846     return mainwnd->isTrueSeamless();
    1847 }
    1848 
    18491848/**
    18501849 *  Called on exit from fullscreen or from maximized mode.
  • trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.cpp

    r3719 r3728  
    5252#include <qpushbutton.h>
    5353#include <qtoolbutton.h>
     54#include <qcursor.h>
    5455
    5556#include <qeventloop.h>
     
    214215                WFlags aFlags)
    215216    : QMainWindow (aParent, aName, aFlags)
     217    , mSeamlessPopupMenu (0)
    216218#ifdef VBOX_WITH_DEBUGGER_GUI
    217219    , dbgStatisticsAction (NULL)
     
    224226    , machine_state (CEnums::InvalidMachineState)
    225227    , no_auto_close (false)
    226     , full_screen (false)
     228    , mIsInFullscreenMode (false)
    227229    , mIsInSeamlessMode (false)
     230    , mIsSeamlessModeSupported (false)
    228231    , normal_wflags (getWFlags())
    229232    , was_max (false)
     
    373376
    374377    ///// Menubar ///////////////////////////////////////////////////////////
     378
     379    mSeamlessPopupMenu = new QPopupMenu (this, "mSeamlessPopupMenu");
    375380
    376381    /* VM popup menu */
     
    400405    vmDisMouseIntegrMenu = new VBoxSwitchMenu (vmMenu, vmDisableMouseIntegrAction,
    401406                                               true /* inverted toggle state */);
     407    mSeamlessPopupMenu->insertItem (QString::null, vmMenu, vmMenuId);
    402408
    403409    /* Devices popup menu */
     
    439445    devicesMenu->setItemParameter (devicesMountDVDMenuId, 0);
    440446    devicesMenu->setItemParameter (devicesUSBMenuId, 0);
     447    mSeamlessPopupMenu->insertItem (QString::null, devicesMenu, devicesMenuId);
    441448
    442449#ifdef VBOX_WITH_DEBUGGER_GUI
     
    448455        dbgCommandLineAction->addTo (dbgMenu);
    449456        menuBar()->insertItem (QString::null, dbgMenu, dbgMenuId);
     457        mSeamlessPopupMenu->insertItem (QString::null, dbgMenu, dbgMenuId);
    450458    }
    451459    else
     
    462470    helpResetMessagesAction->addTo (helpMenu);
    463471    menuBar()->insertItem( QString::null, helpMenu, helpMenuId );
     472    mSeamlessPopupMenu->insertItem (QString::null, helpMenu, helpMenuId);
    464473
    465474    ///// Status bar ////////////////////////////////////////////////////////
     
    777786            normal_pos = QPoint (x, y);
    778787            normal_size = QSize (w, h);
    779             if (!full_screen && !vmSeamlessAction->isOn())
     788            if (!mIsInFullscreenMode && !vmSeamlessAction->isOn())
    780789            {
    781790                move (normal_pos);
     
    794803            normal_pos = QPoint();
    795804            normal_size = QSize();
    796             if (!full_screen && !vmSeamlessAction->isOn())
     805            if (!mIsInFullscreenMode && !vmSeamlessAction->isOn())
    797806            {
    798807                console->normalizeGeometry (true /* adjustPosition */);
     
    10301039                                 .arg (normal_size.width())
    10311040                                 .arg (normal_size.height());
    1032         if (isMaximized() || (full_screen && was_max)
     1041        if (isMaximized() || (mIsInFullscreenMode && was_max)
    10331042                          || (mIsInSeamlessMode && was_max))
    10341043            winPos += QString (",%1").arg (GUI_LastWindowPosition_Max);
     
    10731082}
    10741083
     1084void VBoxConsoleWnd::popupSeamlessMenu()
     1085{
     1086    mSeamlessPopupMenu->popup (QCursor::pos());
     1087}
     1088
    10751089//
    10761090// Protected Members
     
    10881102        {
    10891103            QResizeEvent *re = (QResizeEvent *) e;
    1090             if (!full_screen && !mIsInSeamlessMode &&
     1104            if (!mIsInFullscreenMode && !mIsInSeamlessMode &&
    10911105                (windowState() & (WindowMaximized | WindowMinimized |
    10921106                                  WindowFullScreen)) == 0)
     
    11011115        case QEvent::Move:
    11021116        {
    1103             if (!full_screen && !mIsInSeamlessMode &&
     1117            if (!mIsInFullscreenMode && !mIsInSeamlessMode &&
    11041118                (windowState() & (WindowMaximized | WindowMinimized |
    11051119                                  WindowFullScreen)) == 0)
     
    14781492    devicesMenu->changeItem (devicesUSBMenuId, tr ("&USB Devices"));
    14791493
     1494    /* main menu & seamless popup menu */
     1495
    14801496    menuBar()->changeItem (vmMenuId, tr ("&Machine"));
     1497    mSeamlessPopupMenu->changeItem (vmMenuId,
     1498        VBoxGlobal::iconSet ("ico16x01.png"), tr ("&Machine"));
    14811499    menuBar()->changeItem (devicesMenuId, tr ("&Devices"));
     1500    mSeamlessPopupMenu->changeItem (devicesMenuId,
     1501        VBoxGlobal::iconSet ("diskim_16px.png"), tr ("&Devices"));
    14821502#ifdef VBOX_WITH_DEBUGGER_GUI
    14831503    if (vboxGlobal().isDebuggerEnabled())
     1504    {
    14841505        menuBar()->changeItem (dbgMenuId, tr ("De&bug"));
     1506        mSeamlessPopupMenu->changeItem (dbgMenuId,
     1507            VBoxGlobal::iconSet ("global_settings_16px.png"), tr ("De&bug"));
     1508    }
    14851509#endif
    14861510    menuBar()->changeItem (helpMenuId, tr ("&Help"));
     1511    mSeamlessPopupMenu->changeItem (helpMenuId,
     1512        VBoxGlobal::iconSet ("help_16px.png"), tr ("&Help"));
    14871513
    14881514    /* status bar widgets */
     
    17601786}
    17611787
    1762 //
    1763 // Private slots
    1764 /////////////////////////////////////////////////////////////////////////////
    1765 
    1766 void VBoxConsoleWnd::vmFullscreen (bool on)
    1767 {
     1788void VBoxConsoleWnd::toggleFullscreenMode (bool aOn, bool aSeamless)
     1789{
     1790    if (aSeamless &&
     1791        (aOn && !mIsSeamlessModeSupported ||
     1792         aOn && mIsInFullscreenMode ||
     1793         !aOn && !mIsInSeamlessMode))
     1794        return;
     1795
    17681796    AssertReturnVoid (console);
    1769     AssertReturnVoid (full_screen != on);
    1770     AssertReturnVoid ((hidden_children.isEmpty() == on));
    1771 
    1772     if (on)
    1773     {
    1774         /* take the Fullscreen hot key from the menu item */
    1775         QString hotKey = vmFullscreenAction->menuText();
     1797    AssertReturnVoid ((hidden_children.isEmpty() == aOn));
     1798    if (aSeamless)
     1799        AssertReturnVoid (mIsInSeamlessMode != aOn);
     1800    else
     1801        AssertReturnVoid (mIsInFullscreenMode != aOn);
     1802
     1803    if (aOn)
     1804    {
     1805        /* take the toggle hot key from the menu item */
     1806        QString hotKey = aSeamless ? vmSeamlessAction->menuText() :
     1807                                     vmFullscreenAction->menuText();
    17761808        hotKey = QStringList::split ('\t', hotKey) [1];
    17771809        Assert (!hotKey.isEmpty());
    17781810        /* get the host key name */
    1779         QString hostKey = QIHotKeyEdit::keyName (vboxGlobal().settings().hostKey());
     1811        QString hostKey = QIHotKeyEdit::keyName (vboxGlobal().settings()
     1812                                                             .hostKey());
    17801813        /* show the info message */
    1781         vboxProblem().remindAboutGoingFullscreen (hotKey, hostKey);
    1782     }
    1783 
    1784     full_screen = on;
    1785 
    1786     vmAdjustWindowAction->setEnabled (!on);
    1787     vmSeamlessAction->setEnabled (!on);
     1814        aSeamless ? vboxProblem().remindAboutGoingSeamless (hotKey, hostKey) :
     1815                    vboxProblem().remindAboutGoingFullscreen (hotKey, hostKey);
     1816    }
     1817
     1818    if (aSeamless)
     1819    {
     1820        /* activate the auto-resize feature required for the seamless mode */
     1821        if (!vmAutoresizeGuestAction->isOn())
     1822            vmAutoresizeGuestAction->setOn (true);
     1823
     1824        /* activate the mouse integration feature for the seamless mode */
     1825        if (vmDisableMouseIntegrAction->isOn())
     1826            vmDisableMouseIntegrAction->setOn (false);
     1827
     1828        vmAdjustWindowAction->setEnabled (!aOn);
     1829        vmFullscreenAction->setEnabled (!aOn);
     1830        vmAutoresizeGuestAction->setEnabled (!aOn);
     1831        vmDisableMouseIntegrAction->setEnabled (!aOn);
     1832    }
     1833    else
     1834    {
     1835        mIsInFullscreenMode = aOn;
     1836        vmAdjustWindowAction->setEnabled (!aOn);
     1837        vmSeamlessAction->setEnabled (!aOn);
     1838    }
    17881839
    17891840    bool wasHidden = isHidden();
    17901841
    1791     if (on)
    1792     {
     1842    if (aOn)
     1843    {
     1844        if (aSeamless)
     1845            mIsInSeamlessMode = true;
     1846
    17931847        /* Save the previous scroll-view minimum size before entering
    1794          * fullscreen state to restore this minimum size before the exiting
    1795          * fullscreen. Required for correct scroll-view and guest display
    1796          * update in SDL mode. */
     1848         * fullscreen/seamless state to restore this minimum size before
     1849         * the exiting fullscreen. Required for correct scroll-view and
     1850         * guest display update in SDL mode. */
    17971851        prev_min_size = console->minimumSize();
    17981852        console->setMinimumSize (0, 0);
     
    18001854        /* memorize the maximized state */
    18011855        was_max = isMaximized();
     1856
    18021857        /* set the correct flags to disable unnecessary frame controls */
    1803         int flags = WType_TopLevel | WStyle_Customize | WStyle_NoBorder |
    1804                     WStyle_StaysOnTop;
    1805         QRect scrGeo = QApplication::desktop()->screenGeometry (this);
     1858        int flags = WType_TopLevel | WStyle_Customize | WStyle_NoBorder;
     1859        if (!aSeamless)
     1860            flags |= WStyle_StaysOnTop;
     1861
     1862        /* let the widget take the whole available desktop space */
     1863        QRect scrGeo = aSeamless ?
     1864            QApplication::desktop()->availableGeometry (this) :
     1865            QApplication::desktop()->screenGeometry (this);
     1866
    18061867        /* hide early to avoid extra flicker */
    18071868        hide();
     
    18211882        }
    18221883        delete list;
    1823         /* reparet to apply new flags and place to the top left corner of the
     1884
     1885        /* reparent to apply new flags and place to the top left corner of the
    18241886         * current desktop */
    18251887        reparent (parentWidget(), flags, QPoint (scrGeo.x(), scrGeo.y()), false);
    18261888        /* reattaching application icon after window reparenting */
    18271889        setIcon (QPixmap::fromMimeSource ("ico40x01.png"));
     1890
    18281891        /* adjust colors and appearance */
    18291892        erase_color = centralWidget()->eraseColor();
     
    18341897        console->setVScrollBarMode (QScrollView::AlwaysOff);
    18351898        console->setHScrollBarMode (QScrollView::AlwaysOff);
     1899
    18361900        /* go fullscreen */
    18371901        resize (scrGeo.size());
    18381902        setMinimumSize (size());
    18391903        setMaximumSize (size());
     1904
    18401905#ifdef Q_WS_MAC
    1841         /* make the apple menu bar go away. */
    1842         OSStatus orc = SetSystemUIMode (kUIModeAllHidden, kUIOptionDisableAppleMenu);
    1843         if (orc)
    1844             LogRel (("Error: Failed to change UI mode (rc=%#x) when changing to fullscreen mode. (=> menu bar trouble)\n", orc));
     1906        if (!aSeamless)
     1907        {
     1908            /* make the apple menu bar go away. */
     1909            OSStatus orc = SetSystemUIMode (kUIModeAllHidden,
     1910                                            kUIOptionDisableAppleMenu);
     1911            if (orc)
     1912                LogRel (("Error: Failed to change UI mode (rc=%#x) when changing to fullscreen mode. (=> menu bar trouble)\n", orc));
     1913        }
    18451914#endif
    18461915    }
     
    18521921        console->setMinimumSize (prev_min_size);
    18531922
     1923#ifdef Q_WS_MAC
     1924        if (!aSeamless)
     1925        {
     1926            SetSystemUIMode (kUIModeNormal, 0);
     1927        }
     1928#endif
     1929
    18541930        /* hide early to avoid extra flicker */
    1855 #ifdef Q_WS_MAC
    1856         SetSystemUIMode (kUIModeNormal, 0);
    1857 #endif
    18581931        hide();
    1859         /* reparet to restore normal flags */
     1932
     1933        /* reparent to restore normal flags */
    18601934        reparent (parentWidget(), normal_wflags, QPoint (0, 0), false);
    18611935        /* reattaching application icon after window reparenting */
    18621936        setIcon (QPixmap::fromMimeSource ("ico40x01.png"));
     1937
    18631938        /* adjust colors and appearance */
    18641939        centralWidget()->setEraseColor (erase_color);
     
    18671942        console->setVScrollBarMode (QScrollView::Auto);
    18681943        console->setHScrollBarMode (QScrollView::Auto);
     1944
    18691945        /* show everything hidden when going fullscreen */
    18701946        for (QObject *obj = hidden_children.first(); obj != NULL;
     
    18721948            ((QWidget *) obj)->show();
    18731949        hidden_children.clear();
     1950
    18741951        /* restore normal values */
    18751952        setMinimumSize (QSize(0, 0));
    18761953        setMaximumSize (QSize (QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
    1877         move (normal_pos);
    1878         resize (normal_size);
     1954
     1955        if (aSeamless)
     1956        {
     1957            if (was_max)
     1958            {
     1959                /* restore the maximized state */
     1960                setWindowState (windowState() | WindowMaximized);
     1961            }
     1962            else
     1963            {
     1964                move (normal_pos);
     1965                resize (normal_size);
     1966                QTimer::singleShot (200, console, SLOT (exitFullScreen()));
     1967            }
     1968        }
     1969        else
     1970        {
     1971            move (normal_pos);
     1972            resize (normal_size);
     1973            /* restore the maximized state */
     1974            if (was_max)
     1975                setWindowState (windowState() | WindowMaximized);
     1976            else
     1977                QTimer::singleShot (0, console, SLOT (exitFullScreen()));
     1978        }
     1979
    18791980        /* let our toplevel widget calculate its sizeHint properly */
    18801981        QApplication::sendPostedEvents (0, QEvent::LayoutHint);
    1881         /* restore the maximized state */
    1882         if (was_max)
    1883             setWindowState (windowState() | WindowMaximized);
    1884         else
    1885             QTimer::singleShot (0, console, SLOT (exitFullScreen()));
     1982
     1983        if (aSeamless)
     1984            mIsInSeamlessMode = false;
    18861985    }
    18871986
     
    18941993}
    18951994
    1896 void VBoxConsoleWnd::vmSeamless (bool on)
    1897 {
    1898     if (on && !vmSeamlessAction->isEnabled() ||
    1899         !on && !mIsInSeamlessMode ||
    1900         on && full_screen)
    1901         return;
    1902 
    1903     AssertReturnVoid (console);
    1904     AssertReturnVoid (mIsInSeamlessMode != on);
    1905     AssertReturnVoid ((hidden_children.isEmpty() == on));
    1906 
    1907     if (on)
    1908     {
    1909         /* take the Seamless hot key from the menu item */
    1910         QString hotKey = vmSeamlessAction->menuText();
    1911         hotKey = QStringList::split ('\t', hotKey) [1];
    1912         Assert (!hotKey.isEmpty());
    1913         /* get the host key name */
    1914         QString hostKey = QIHotKeyEdit::keyName (vboxGlobal().settings().hostKey());
    1915         /* show the info message */
    1916         vboxProblem().remindAboutGoingSeamless (hotKey, hostKey);
    1917     }
    1918 
    1919     /* activate the auto-resize feature required for the seamless mode */
    1920     if (!vmAutoresizeGuestAction->isOn())
    1921         vmAutoresizeGuestAction->setOn (true);
    1922 
    1923     vmAdjustWindowAction->setEnabled (!on);
    1924     vmFullscreenAction->setEnabled (!on);
    1925     vmAutoresizeGuestAction->setEnabled (!on);
    1926 
    1927     bool wasHidden = isHidden();
    1928 
    1929     if (on)
    1930     {
    1931         mIsInSeamlessMode = true;
    1932 
    1933         /* Save the previous scroll-view minimum size before entering
    1934          * seamless state to restore this minimum size before the exiting
    1935          * seamless mode. Required for correct scroll-view and guest display
    1936          * update in SDL mode. */
    1937         prev_min_size = console->minimumSize();
    1938         console->setMinimumSize (0, 0);
    1939 
    1940         /* memorize the maximized state */
    1941         was_max = isMaximized();
    1942         /* set the correct flags to disable unnecessary frame controls */
    1943         int flags = WType_TopLevel | WStyle_Customize | WStyle_NoBorder;
    1944         /* let the widget take the whole available desktop space */
    1945         QRect scrGeo = QApplication::desktop()->availableGeometry (this);
    1946         /* hide early to avoid extra flicker */
    1947         hide();
    1948         /* hide all but the central widget containing the console view */
    1949         QObjectList *list = queryList (NULL, NULL, false, false);
    1950         for (QObject *obj = list->first(); obj != NULL; obj = list->next())
    1951         {
    1952             if (obj->isWidgetType() && obj != centralWidget())
    1953             {
    1954                 QWidget *w = (QWidget *) obj;
    1955                 if (!w->isHidden())
    1956                 {
    1957                     w->hide();
    1958                     hidden_children.append (w);
    1959                 }
    1960             }
    1961         }
    1962         delete list;
    1963         /* reparent to apply new flags and place to the top left corner of the
    1964          * current desktop */
    1965         reparent (parentWidget(), flags, QPoint (scrGeo.x(), scrGeo.y()), false);
    1966         /* reattaching application icon after window reparenting */
    1967         setIcon (QPixmap::fromMimeSource ("ico40x01.png"));
    1968         /* adjust colors and appearance */
    1969         console_style = console->frameStyle();
    1970         console->setFrameStyle (QFrame::NoFrame);
    1971         console->setMaximumSize (console->sizeHint());
    1972         console->setVScrollBarMode (QScrollView::AlwaysOff);
    1973         console->setHScrollBarMode (QScrollView::AlwaysOff);
    1974         /* go full available screen */
    1975         resize (scrGeo.size());
    1976         setMinimumSize (size());
    1977         setMaximumSize (size());
    1978     }
    1979     else
    1980     {
    1981         /* Restore the previous scroll-view minimum size before the exiting
    1982          * seamless mode. Required for correct scroll-view and guest display
    1983          * update in SDL mode. */
    1984         console->setMinimumSize (prev_min_size);
    1985 
    1986         /* hide early to avoid extra flicker */
    1987         hide();
    1988         /* reparent to restore normal flags */
    1989         reparent (parentWidget(), normal_wflags, QPoint (0, 0), false);
    1990         /* reattaching application icon after window reparenting */
    1991         setIcon (QPixmap::fromMimeSource ("ico40x01.png"));
    1992         /* adjust colors and appearance */
    1993         console->setFrameStyle (console_style);
    1994         console->setMaximumSize (console->sizeHint());
    1995         console->setVScrollBarMode (QScrollView::Auto);
    1996         console->setHScrollBarMode (QScrollView::Auto);
    1997         /* show everything hidden when going fullscreen */
    1998         for (QObject *obj = hidden_children.first(); obj != NULL;
    1999              obj = hidden_children.next())
    2000             ((QWidget *) obj)->show();
    2001         hidden_children.clear();
    2002         /* restore normal values */
    2003         setMinimumSize (QSize(0, 0));
    2004         setMaximumSize (QSize (QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
    2005 
    2006         if (was_max)
    2007         {
    2008             /* restore the maximized state */
    2009             setWindowState (windowState() | WindowMaximized);
    2010         }
    2011         else
    2012         {
    2013             move (normal_pos);
    2014             resize (normal_size);
    2015             QTimer::singleShot (0, console, SLOT (exitFullScreen()));
    2016         }
    2017         /* let our toplevel widget calculate its sizeHint properly */
    2018         QApplication::sendPostedEvents (0, QEvent::LayoutHint);
    2019 
    2020         mIsInSeamlessMode = false;
    2021     }
    2022 
    2023     /* VBoxConsoleView loses focus for some reason after reparenting,
    2024      * restore it */
    2025     console->setFocus();
    2026 
    2027     if (!wasHidden)
    2028         show();
     1995//
     1996// Private slots
     1997/////////////////////////////////////////////////////////////////////////////
     1998
     1999void VBoxConsoleWnd::vmFullscreen (bool aOn)
     2000{
     2001    toggleFullscreenMode (aOn, false);
     2002}
     2003
     2004void VBoxConsoleWnd::vmSeamless (bool aOn)
     2005{
     2006    toggleFullscreenMode (aOn, true);
    20292007}
    20302008
     
    27812759    vmAutoresizeGuestAction->setEnabled (aActive);
    27822760    vmSeamlessAction->setEnabled (aSeamless);
     2761    mIsSeamlessModeSupported = aSeamless;
    27832762    if (aSeamless && vmSeamlessAction->isOn())
    27842763        vmSeamless (true);
  • trunk/src/VBox/Frontends/VirtualBox/src/VBoxFrameBuffer.cpp

    r3674 r3728  
    281281    if (!rects)
    282282        return E_POINTER;
    283 
    284     if (!mView->isInSeamlessMode())
    285         return S_OK;
    286283
    287284    QRegion reg;
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