summaryrefslogtreecommitdiffstats
path: root/src/platformsupport
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-05-23 21:27:07 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-05-23 21:27:07 +0200
commitd3a8bc803cd7c4ce106038bfc4b37cdd6bb8e177 (patch)
tree3b6db0d4869f334d0eb4559c5ae457995cbe913e /src/platformsupport
parentd934ddc297f6db94dbc548fe01da64350f13577d (diff)
parent47a7628023610904c6ac52e23fa289f75f349b4e (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')
-rw-r--r--src/platformsupport/cfsocketnotifier/qcfsocketnotifier.cpp1
-rw-r--r--src/platformsupport/cglconvenience/cglconvenience.pri2
-rw-r--r--src/platformsupport/devicediscovery/devicediscovery.pri2
-rw-r--r--src/platformsupport/dnd/qsimpledrag.cpp8
-rw-r--r--src/platformsupport/dnd/qsimpledrag_p.h2
-rw-r--r--src/platformsupport/fbconvenience/qfbbackingstore.cpp5
-rw-r--r--src/platformsupport/fbconvenience/qfbscreen.cpp13
-rw-r--r--src/platformsupport/fbconvenience/qfbscreen_p.h4
-rw-r--r--src/platformsupport/fontdatabases/basic/basic.pri1
-rw-r--r--src/platformsupport/fontdatabases/mac/coretext.pri4
-rw-r--r--src/platformsupport/glxconvenience/glxconvenience.pri2
-rw-r--r--src/platformsupport/input/evdevkeyboard/evdevkeyboard.pri2
-rw-r--r--src/platformsupport/input/evdevmouse/evdevmouse.pri2
-rw-r--r--src/platformsupport/input/evdevtablet/evdevtablet.pri2
-rw-r--r--src/platformsupport/input/evdevtouch/evdevtouch.pri2
-rw-r--r--src/platformsupport/jniconvenience/jniconvenience.pri2
-rw-r--r--src/platformsupport/linuxaccessibility/linuxaccessibility.pri2
-rw-r--r--src/platformsupport/platformsupport.pro6
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)