From ea614c822c0075b939cc8a56bbc53aaf9c68228d Mon Sep 17 00:00:00 2001 From: Fabien Freling Date: Tue, 19 Oct 2010 13:36:13 +0200 Subject: Enable the unified toolbar with the raster engine only in the Cocoa port. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Tor Arne Vestbø --- src/gui/kernel/qwidget.cpp | 4 ++-- src/gui/painting/qunifiedtoolbarsurface_mac.cpp | 4 ++++ src/gui/painting/qunifiedtoolbarsurface_mac_p.h | 4 ++++ src/gui/painting/qwindowsurface_raster.cpp | 8 ++++++-- src/gui/widgets/qmainwindow.cpp | 2 ++ src/gui/widgets/qmainwindowlayout_mac.mm | 2 ++ 6 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index a75fc38..a773e7a 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -5322,12 +5322,12 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP if (rgn.isEmpty()) return; -#ifdef Q_WS_MAC +#if defined(Q_WS_MAC) && defined(QT_MAC_USE_COCOA) // We disable the rendering of QToolBar in the backingStore if // it's supposed to be in the unified toolbar on Mac OS X. if (backingStore && isInUnifiedToolbar) return; -#endif // Q_WS_MAC +#endif // Q_WS_MAC && QT_MAC_USE_COCOA Q_Q(QWidget); diff --git a/src/gui/painting/qunifiedtoolbarsurface_mac.cpp b/src/gui/painting/qunifiedtoolbarsurface_mac.cpp index 722355e..b90b061 100644 --- a/src/gui/painting/qunifiedtoolbarsurface_mac.cpp +++ b/src/gui/painting/qunifiedtoolbarsurface_mac.cpp @@ -39,6 +39,8 @@ ** ****************************************************************************/ +#ifdef QT_MAC_USE_COCOA + #include "qunifiedtoolbarsurface_mac_p.h" #include #include @@ -231,3 +233,5 @@ void QUnifiedToolbarSurface::prepareBuffer(QImage::Format format, QWidget *widge } QT_END_NAMESPACE + +#endif // QT_MAC_USE_COCOA diff --git a/src/gui/painting/qunifiedtoolbarsurface_mac_p.h b/src/gui/painting/qunifiedtoolbarsurface_mac_p.h index d7805e8..c2ec854 100644 --- a/src/gui/painting/qunifiedtoolbarsurface_mac_p.h +++ b/src/gui/painting/qunifiedtoolbarsurface_mac_p.h @@ -53,6 +53,8 @@ // We mean it. // +#ifdef QT_MAC_USE_COCOA + #include #include #include @@ -92,4 +94,6 @@ private: QT_END_NAMESPACE +#endif // QT_MAC_USE_COCOA + #endif // QUNIFIEDTOOLBARSURFACE_MAC_P_H diff --git a/src/gui/painting/qwindowsurface_raster.cpp b/src/gui/painting/qwindowsurface_raster.cpp index 99f8597..217723f 100644 --- a/src/gui/painting/qwindowsurface_raster.cpp +++ b/src/gui/painting/qwindowsurface_raster.cpp @@ -251,6 +251,7 @@ void QRasterWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoi #ifdef Q_WS_MAC +#ifdef QT_MAC_USE_COCOA // Unified toolbar hack. QMainWindow* mWindow = qobject_cast(widget->window()); if (mWindow) { @@ -267,6 +268,7 @@ void QRasterWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoi } } } +#endif // QT_MAC_USE_COCOA Q_UNUSED(offset); // Get a context for the widget. @@ -338,7 +340,8 @@ void QRasterWindowSurface::setGeometry(const QRect &rect) prepareBuffer(QNativeImage::systemFormat(), window()); } d->inSetGeometry = false; -#ifdef Q_WS_MAC + +#if defined(Q_WS_MAC) && defined(QT_MAC_USE_COCOA) QMainWindow* mWindow = qobject_cast(window()); if (mWindow) { QMainWindowLayout *mLayout = qobject_cast(mWindow->layout()); @@ -354,7 +357,8 @@ void QRasterWindowSurface::setGeometry(const QRect &rect) } } } -#endif // Q_WS_MAC +#endif // Q_WS_MAC && QT_MAC_USE_COCOA + } // from qwindowsurface.cpp diff --git a/src/gui/widgets/qmainwindow.cpp b/src/gui/widgets/qmainwindow.cpp index 861cfaa..d4118bd 100644 --- a/src/gui/widgets/qmainwindow.cpp +++ b/src/gui/widgets/qmainwindow.cpp @@ -1524,10 +1524,12 @@ void QMainWindow::setUnifiedTitleAndToolBarOnMac(bool set) d->useHIToolBar = set; createWinId(); // We need the hiview for down below. +#ifdef QT_MAC_USE_COCOA // Activate the unified toolbar with the raster engine. if (windowSurface()) { d->layout->unifiedSurface = new QUnifiedToolbarSurface(this); } +#endif // QT_MAC_USE_COCOA d->layout->updateHIToolBarStatus(); // Enabling the unified toolbar clears the opaque size grip setting, update it. diff --git a/src/gui/widgets/qmainwindowlayout_mac.mm b/src/gui/widgets/qmainwindowlayout_mac.mm index 21f6067..126cc4a 100644 --- a/src/gui/widgets/qmainwindowlayout_mac.mm +++ b/src/gui/widgets/qmainwindowlayout_mac.mm @@ -452,7 +452,9 @@ void QMainWindowLayout::insertIntoMacToolbar(QToolBar *before, QToolBar *toolbar for (int i = 0; i < beforeIndex; ++i) { offset.setX(offset.x() + qtoolbarsInUnifiedToolbarList.at(i)->size().width()); } +#ifdef QT_MAC_USE_COCOA unifiedSurface->insertToolbar(toolbar, offset); +#endif // QT_MAC_USE_COCOA } #ifndef QT_MAC_USE_COCOA -- cgit v0.12