summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-04-05 10:02:08 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-04-05 10:02:09 +0200
commitbfe5e510b90684d016fb0c68114f85708f7cffda (patch)
tree0ae25857ca1f50bd04ea1b405afcf863b082b012 /src
parent6ada4155aff6a106d918ec1b93923bed9617ab27 (diff)
parent4b4870a12cd920cd45c534deae7ca90716398a19 (diff)
Merge remote-tracking branch 'origin/5.11' into dev
Diffstat (limited to 'src')
-rw-r--r--src/gui/kernel/qguiapplication.cpp21
-rw-r--r--src/network/socket/socket.pri2
-rw-r--r--src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp6
-rw-r--r--src/plugins/platforms/cocoa/qcocoabackingstore.mm8
-rw-r--r--src/widgets/kernel/qwidget.cpp2
-rw-r--r--src/widgets/widgets/qlabel.cpp2
6 files changed, 35 insertions, 6 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index 12390928f0..caa8aaca4b 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -591,6 +591,12 @@ static QWindowGeometrySpecification windowGeometrySpecification = Q_WINDOW_GEOME
applications.
\endlist
+ The following parameter is available for \c {-platform cocoa} (on macOS):
+
+ \list
+ \li \c {fontengine=freetype}, uses the FreeType font engine.
+ \endlist
+
For more information about the platform-specific arguments available for
embedded Linux platforms, see \l{Qt for Embedded Linux}.
@@ -1285,6 +1291,21 @@ void QGuiApplicationPrivate::createPlatformIntegration()
#ifdef QT_QPA_DEFAULT_PLATFORM_NAME
platformName = QT_QPA_DEFAULT_PLATFORM_NAME;
#endif
+#if defined(Q_OS_UNIX) && !defined(Q_OS_DARWIN)
+ QByteArray sessionType = qgetenv("XDG_SESSION_TYPE");
+ if (!sessionType.isEmpty()) {
+ if (sessionType == QByteArrayLiteral("x11") && !platformName.contains(QByteArrayLiteral("xcb")))
+ platformName = QByteArrayLiteral("xcb");
+ else if (sessionType == QByteArrayLiteral("wayland") && !platformName.contains(QByteArrayLiteral("wayland")))
+ platformName = QByteArrayLiteral("wayland");
+ }
+#ifdef QT_QPA_DEFAULT_PLATFORM_NAME
+ // Add it as fallback in case XDG_SESSION_TYPE is something wrong
+ if (!platformName.contains(QT_QPA_DEFAULT_PLATFORM_NAME))
+ platformName += QByteArrayLiteral(";" QT_QPA_DEFAULT_PLATFORM_NAME);
+#endif
+#endif
+
QByteArray platformNameEnv = qgetenv("QT_QPA_PLATFORM");
if (!platformNameEnv.isEmpty()) {
platformName = platformNameEnv;
diff --git a/src/network/socket/socket.pri b/src/network/socket/socket.pri
index a8a37492b7..44ff5b7b39 100644
--- a/src/network/socket/socket.pri
+++ b/src/network/socket/socket.pri
@@ -73,7 +73,7 @@ qtConfig(localserver) {
SOURCES += socket/qlocalsocket.cpp \
socket/qlocalserver.cpp
- intergrity|winrt {
+ integrity|winrt {
SOURCES += socket/qlocalsocket_tcp.cpp \
socket/qlocalserver_tcp.cpp
DEFINES += QT_LOCALSOCKET_TCP
diff --git a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp
index 02f92bbb18..f339938f86 100644
--- a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp
+++ b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp
@@ -254,6 +254,12 @@ void QIBusPlatformInputContext::setFocusObject(QObject *object)
if (!d->busConnected)
return;
+ // It would seem natural here to call FocusOut() on the input method if we
+ // transition from an IME accepted focus object to one that does not accept it.
+ // Mysteriously however that is not sufficient to fix bug QTBUG-63066.
+ if (!inputMethodAccepted())
+ return;
+
if (debug)
qDebug() << "setFocusObject" << object;
if (object)
diff --git a/src/plugins/platforms/cocoa/qcocoabackingstore.mm b/src/plugins/platforms/cocoa/qcocoabackingstore.mm
index 3621e5102f..5eb45be04a 100644
--- a/src/plugins/platforms/cocoa/qcocoabackingstore.mm
+++ b/src/plugins/platforms/cocoa/qcocoabackingstore.mm
@@ -163,9 +163,11 @@ void QCocoaBackingStore::flush(QWindow *window, const QRegion &region, const QPo
const qreal devicePixelRatio = m_image.devicePixelRatio();
// If the flushed window is a content view, and not in unified toolbar mode,
- // we can get away with copying the backingstore instead of blending.
- const NSCompositingOperation compositingOperation = static_cast<QCocoaWindow *>(
- window->handle())->isContentView() && !windowHasUnifiedToolbar() ?
+ // and is fully opaque, we can get away with copying the backingstore instead
+ // of blending.
+ QCocoaWindow *cocoaWindow = static_cast<QCocoaWindow *>(window->handle());
+ const NSCompositingOperation compositingOperation = cocoaWindow->isContentView()
+ && cocoaWindow->isOpaque() && !windowHasUnifiedToolbar() ?
NSCompositingOperationCopy : NSCompositingOperationSourceOver;
#ifdef QT_DEBUG
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index c947acd765..8e3263ad92 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -11124,7 +11124,7 @@ void QWidgetPrivate::macUpdateSizeAttribute()
for (int i = 0; i < children.size(); ++i) {
QWidget *w = qobject_cast<QWidget *>(children.at(i));
if (w && (!w->isWindow() || w->testAttribute(Qt::WA_WindowPropagation))
- && !q->testAttribute(Qt::WA_MacMiniSize) // no attribute set? inherit from parent
+ && !w->testAttribute(Qt::WA_MacMiniSize) // no attribute set? inherit from parent
&& !w->testAttribute(Qt::WA_MacSmallSize)
&& !w->testAttribute(Qt::WA_MacNormalSize))
w->d_func()->macUpdateSizeAttribute();
diff --git a/src/widgets/widgets/qlabel.cpp b/src/widgets/widgets/qlabel.cpp
index a6ae61545b..c624187190 100644
--- a/src/widgets/widgets/qlabel.cpp
+++ b/src/widgets/widgets/qlabel.cpp
@@ -1008,7 +1008,7 @@ void QLabel::paintEvent(QPaintEvent *)
: layoutDirection(), QFlag(d->align));
#if QT_CONFIG(movie)
- if (d->movie) {
+ if (d->movie && !d->movie->currentPixmap().isNull()) {
if (d->scaledcontents)
style->drawItemPixmap(&painter, cr, align, d->movie->currentPixmap().scaled(cr.size()));
else