diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-05-23 21:27:07 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-05-23 21:27:07 +0200 |
commit | d3a8bc803cd7c4ce106038bfc4b37cdd6bb8e177 (patch) | |
tree | 3b6db0d4869f334d0eb4559c5ae457995cbe913e /src/platformsupport | |
parent | d934ddc297f6db94dbc548fe01da64350f13577d (diff) | |
parent | 47a7628023610904c6ac52e23fa289f75f349b4e (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
src/corelib/io/qdatastream.cpp
src/corelib/io/qdatastream.h
src/corelib/json/qjsonwriter.cpp
src/plugins/platforms/cocoa/qcocoawindow.mm
src/plugins/platforms/xcb/qxcbkeyboard.cpp
Change-Id: I46fef1455f5a9f2ce1ec394a3c65881093c51b62
Diffstat (limited to 'src/platformsupport')
18 files changed, 39 insertions, 23 deletions
diff --git a/src/platformsupport/cfsocketnotifier/qcfsocketnotifier.cpp b/src/platformsupport/cfsocketnotifier/qcfsocketnotifier.cpp index 5dcd6a4ffd..c33b684d50 100644 --- a/src/platformsupport/cfsocketnotifier/qcfsocketnotifier.cpp +++ b/src/platformsupport/cfsocketnotifier/qcfsocketnotifier.cpp @@ -101,6 +101,7 @@ void qt_mac_remove_socket_from_runloop(const CFSocketRef socket, CFRunLoopSource QCFSocketNotifier::QCFSocketNotifier() :eventDispatcher(0) +, maybeCancelWaitForMoreEvents(0) { } diff --git a/src/platformsupport/cglconvenience/cglconvenience.pri b/src/platformsupport/cglconvenience/cglconvenience.pri index f5e3d543ec..0e86ddb208 100644 --- a/src/platformsupport/cglconvenience/cglconvenience.pri +++ b/src/platformsupport/cglconvenience/cglconvenience.pri @@ -7,5 +7,5 @@ mac:!ios { OBJECTIVE_SOURCES += \ $$PWD/cglconvenience.mm - LIBS += -framework Cocoa -framework OpenGL + LIBS_PRIVATE += -framework Cocoa -framework OpenGL } diff --git a/src/platformsupport/devicediscovery/devicediscovery.pri b/src/platformsupport/devicediscovery/devicediscovery.pri index 9faf6f24dd..9a58eeedfe 100644 --- a/src/platformsupport/devicediscovery/devicediscovery.pri +++ b/src/platformsupport/devicediscovery/devicediscovery.pri @@ -5,7 +5,7 @@ linux:contains(QT_CONFIG, evdev) { SOURCES += $$PWD/qdevicediscovery_udev.cpp INCLUDEPATH += $$QMAKE_INCDIR_LIBUDEV - LIBS += $$QMAKE_LIBS_LIBUDEV + LIBS_PRIVATE += $$QMAKE_LIBS_LIBUDEV } else { SOURCES += $$PWD/qdevicediscovery_static.cpp } diff --git a/src/platformsupport/dnd/qsimpledrag.cpp b/src/platformsupport/dnd/qsimpledrag.cpp index 587e70b0f3..f2ff177055 100644 --- a/src/platformsupport/dnd/qsimpledrag.cpp +++ b/src/platformsupport/dnd/qsimpledrag.cpp @@ -140,7 +140,6 @@ bool QBasicDrag::eventFilter(QObject *o, QEvent *e) QKeyEvent *ke = static_cast<QKeyEvent *>(e); if (ke->key() == Qt::Key_Escape && e->type() == QEvent::KeyPress) { cancel(); - resetDndState(true); disableEventFilter(); exitDndEventLoop(); @@ -154,13 +153,10 @@ bool QBasicDrag::eventFilter(QObject *o, QEvent *e) case QEvent::MouseButtonRelease: disableEventFilter(); - if (canDrop()) { drop(static_cast<QMouseEvent *>(e)); - resetDndState(false); } else { cancel(); - resetDndState(true); } exitDndEventLoop(); return true; // Eat all mouse events @@ -195,7 +191,7 @@ Qt::DropAction QBasicDrag::drag(QDrag *o) return m_executed_drop_action; } -void QBasicDrag::resetDndState(bool /* deleteSource */) +void QBasicDrag::restoreCursor() { if (m_restoreCursor) { #ifndef QT_NO_CURSOR @@ -227,6 +223,7 @@ void QBasicDrag::endDrag() void QBasicDrag::cancel() { disableEventFilter(); + restoreCursor(); m_drag_icon_window->setVisible(false); } @@ -239,6 +236,7 @@ void QBasicDrag::move(const QMouseEvent *) void QBasicDrag::drop(const QMouseEvent *) { disableEventFilter(); + restoreCursor(); m_drag_icon_window->setVisible(false); } diff --git a/src/platformsupport/dnd/qsimpledrag_p.h b/src/platformsupport/dnd/qsimpledrag_p.h index b2d4191b89..10237b36d7 100644 --- a/src/platformsupport/dnd/qsimpledrag_p.h +++ b/src/platformsupport/dnd/qsimpledrag_p.h @@ -88,7 +88,7 @@ protected: private: void enableEventFilter(); void disableEventFilter(); - void resetDndState(bool deleteSource); + void restoreCursor(); void exitDndEventLoop(); bool m_restoreCursor; diff --git a/src/platformsupport/fbconvenience/qfbbackingstore.cpp b/src/platformsupport/fbconvenience/qfbbackingstore.cpp index 2a481835e2..b378434ef2 100644 --- a/src/platformsupport/fbconvenience/qfbbackingstore.cpp +++ b/src/platformsupport/fbconvenience/qfbbackingstore.cpp @@ -51,7 +51,10 @@ QT_BEGIN_NAMESPACE QFbBackingStore::QFbBackingStore(QWindow *window) : QPlatformBackingStore(window) { - (static_cast<QFbWindow *>(window->handle()))->setBackingStore(this); + if (window->handle()) + (static_cast<QFbWindow *>(window->handle()))->setBackingStore(this); + else + (static_cast<QFbScreen *>(window->screen()->handle()))->addBackingStore(this); } QFbBackingStore::~QFbBackingStore() diff --git a/src/platformsupport/fbconvenience/qfbscreen.cpp b/src/platformsupport/fbconvenience/qfbscreen.cpp index 6427b62972..e5b9f09c14 100644 --- a/src/platformsupport/fbconvenience/qfbscreen.cpp +++ b/src/platformsupport/fbconvenience/qfbscreen.cpp @@ -71,6 +71,19 @@ void QFbScreen::initializeCompositor() void QFbScreen::addWindow(QFbWindow *window) { mWindowStack.prepend(window); + if (!mBackingStores.isEmpty()) { + //check if we have a backing store for this window + for (int i = 0; i < mBackingStores.size(); ++i) { + QFbBackingStore *bs = mBackingStores.at(i); + // this gets called during QWindow::create() at a point where the + // invariant (window->handle()->window() == window) is broken + if (bs->window() == window->window()) { + window->setBackingStore(bs); + mBackingStores.removeAt(i); + break; + } + } + } invalidateRectCache(); setDirty(window->geometry()); QWindow *w = topWindow(); diff --git a/src/platformsupport/fbconvenience/qfbscreen_p.h b/src/platformsupport/fbconvenience/qfbscreen_p.h index c7106358d9..01a352e96a 100644 --- a/src/platformsupport/fbconvenience/qfbscreen_p.h +++ b/src/platformsupport/fbconvenience/qfbscreen_p.h @@ -51,6 +51,7 @@ QT_BEGIN_NAMESPACE class QFbWindow; class QFbCursor; class QPainter; +class QFbBackingStore; class QFbScreen : public QObject, public QPlatformScreen { @@ -74,6 +75,8 @@ public: virtual void lower(QFbWindow *window); virtual void topWindowChanged(QWindow *) {} + void addBackingStore(QFbBackingStore *bs) {mBackingStores << bs;} + public slots: virtual void setDirty(const QRect &rect); void setPhysicalSize(const QSize &size); @@ -102,6 +105,7 @@ private: QPainter *mCompositePainter; QList<QPair<QRect, int> > mCachedRects; + QList <QFbBackingStore*> mBackingStores; friend class QFbWindow; bool mIsUpToDate; diff --git a/src/platformsupport/fontdatabases/basic/basic.pri b/src/platformsupport/fontdatabases/basic/basic.pri index 6b5f6d0cb8..88be809cd8 100644 --- a/src/platformsupport/fontdatabases/basic/basic.pri +++ b/src/platformsupport/fontdatabases/basic/basic.pri @@ -1,5 +1,4 @@ DEFINES += QT_NO_FONTCONFIG -QT += gui-private core-private HEADERS += \ $$PWD/qbasicfontdatabase_p.h \ diff --git a/src/platformsupport/fontdatabases/mac/coretext.pri b/src/platformsupport/fontdatabases/mac/coretext.pri index d1abf123aa..f67f00672a 100644 --- a/src/platformsupport/fontdatabases/mac/coretext.pri +++ b/src/platformsupport/fontdatabases/mac/coretext.pri @@ -3,8 +3,8 @@ OBJECTIVE_SOURCES += $$PWD/qfontengine_coretext.mm $$PWD/qcoretextfontdatabase.m ios: \ # On iOS CoreText and CoreGraphics are stand-alone frameworks - LIBS += -framework CoreText -framework CoreGraphics + LIBS_PRIVATE += -framework CoreText -framework CoreGraphics else: \ # On Mac OS they are part of the ApplicationServices umbrella framework, # even in 10.8 where they were also made available stand-alone. - LIBS += -framework ApplicationServices + LIBS_PRIVATE += -framework ApplicationServices diff --git a/src/platformsupport/glxconvenience/glxconvenience.pri b/src/platformsupport/glxconvenience/glxconvenience.pri index 3632f45b54..d325f5adf9 100644 --- a/src/platformsupport/glxconvenience/glxconvenience.pri +++ b/src/platformsupport/glxconvenience/glxconvenience.pri @@ -1,6 +1,6 @@ contains(QT_CONFIG,xlib):contains(QT_CONFIG,xrender) { contains(QT_CONFIG,opengl):!contains(QT_CONFIG,opengles2) { - LIBS += $$QMAKE_LIBS_X11 -lXrender + LIBS_PRIVATE += $$QMAKE_LIBS_X11 -lXrender HEADERS += $$PWD/qglxconvenience_p.h SOURCES += $$PWD/qglxconvenience.cpp } diff --git a/src/platformsupport/input/evdevkeyboard/evdevkeyboard.pri b/src/platformsupport/input/evdevkeyboard/evdevkeyboard.pri index 1797f48d04..c058498ba0 100644 --- a/src/platformsupport/input/evdevkeyboard/evdevkeyboard.pri +++ b/src/platformsupport/input/evdevkeyboard/evdevkeyboard.pri @@ -8,5 +8,5 @@ SOURCES += \ $$PWD/qevdevkeyboardmanager.cpp contains(QT_CONFIG, libudev) { - LIBS += $$QMAKE_LIBS_LIBUDEV + LIBS_PRIVATE += $$QMAKE_LIBS_LIBUDEV } diff --git a/src/platformsupport/input/evdevmouse/evdevmouse.pri b/src/platformsupport/input/evdevmouse/evdevmouse.pri index 16b456683d..7e7a9e1629 100644 --- a/src/platformsupport/input/evdevmouse/evdevmouse.pri +++ b/src/platformsupport/input/evdevmouse/evdevmouse.pri @@ -7,6 +7,6 @@ SOURCES += \ $$PWD/qevdevmousemanager.cpp contains(QT_CONFIG, libudev) { - LIBS += $$QMAKE_LIBS_LIBUDEV + LIBS_PRIVATE += $$QMAKE_LIBS_LIBUDEV } diff --git a/src/platformsupport/input/evdevtablet/evdevtablet.pri b/src/platformsupport/input/evdevtablet/evdevtablet.pri index 02b04d2e05..5ace0df61d 100644 --- a/src/platformsupport/input/evdevtablet/evdevtablet.pri +++ b/src/platformsupport/input/evdevtablet/evdevtablet.pri @@ -5,5 +5,5 @@ SOURCES += \ $$PWD/qevdevtablet.cpp contains(QT_CONFIG, libudev) { - LIBS += $$QMAKE_LIBS_LIBUDEV + LIBS_PRIVATE += $$QMAKE_LIBS_LIBUDEV } diff --git a/src/platformsupport/input/evdevtouch/evdevtouch.pri b/src/platformsupport/input/evdevtouch/evdevtouch.pri index 64c4b9afd9..a6b90937f2 100644 --- a/src/platformsupport/input/evdevtouch/evdevtouch.pri +++ b/src/platformsupport/input/evdevtouch/evdevtouch.pri @@ -5,7 +5,7 @@ SOURCES += \ $$PWD/qevdevtouch.cpp contains(QT_CONFIG, libudev) { - LIBS += $$QMAKE_LIBS_LIBUDEV + LIBS_PRIVATE += $$QMAKE_LIBS_LIBUDEV } # DEFINES += USE_MTDEV diff --git a/src/platformsupport/jniconvenience/jniconvenience.pri b/src/platformsupport/jniconvenience/jniconvenience.pri index ca7c5b1e96..30c672e6ba 100644 --- a/src/platformsupport/jniconvenience/jniconvenience.pri +++ b/src/platformsupport/jniconvenience/jniconvenience.pri @@ -1,6 +1,4 @@ android:!android-no-sdk { - QT += gui-private - HEADERS += $$PWD/qjnihelpers_p.h \ $$PWD/qjniobject_p.h diff --git a/src/platformsupport/linuxaccessibility/linuxaccessibility.pri b/src/platformsupport/linuxaccessibility/linuxaccessibility.pri index 2721002ea5..1b65fb1cad 100644 --- a/src/platformsupport/linuxaccessibility/linuxaccessibility.pri +++ b/src/platformsupport/linuxaccessibility/linuxaccessibility.pri @@ -1,6 +1,6 @@ contains(QT_CONFIG, accessibility-atspi-bridge) { - QT += dbus + QT_FOR_PRIVATE += dbus include(../../3rdparty/atspi2/atspi2.pri) INCLUDEPATH += $$PWD diff --git a/src/platformsupport/platformsupport.pro b/src/platformsupport/platformsupport.pro index 0566e9d3ec..4cb1f2c1bf 100644 --- a/src/platformsupport/platformsupport.pro +++ b/src/platformsupport/platformsupport.pro @@ -2,9 +2,7 @@ TARGET = QtPlatformSupport QT = core-private gui-private CONFIG += static internal_module -mac:LIBS += -lz - -load(qt_module) +mac:LIBS_PRIVATE += -lz DEFINES += QT_NO_CAST_FROM_ASCII PRECOMPILED_HEADER = ../corelib/global/qt_pch.h @@ -23,3 +21,5 @@ include(services/services.pri) include(themes/themes.pri) include(linuxaccessibility/linuxaccessibility.pri) include(jniconvenience/jniconvenience.pri) + +load(qt_module) |