diff options
author | Liang Qi <liang.qi@qt.io> | 2016-12-12 09:49:15 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-12-12 09:49:16 +0100 |
commit | 9fd54bac3075eb74413776657464027a277d43cf (patch) | |
tree | ae74789b061df42fef2fd9d97446cd0b34a9a083 /src | |
parent | 2a47c83674a8e19b287cc731cbe814ca411f269f (diff) | |
parent | 391c71b4488d69f3a0b16171b01f569fbc9ec07b (diff) |
Merge remote-tracking branch 'origin/5.8' into dev
Change-Id: Idd91b55bc2b1e3506d9385b3352aeda06de6d4bc
Diffstat (limited to 'src')
-rw-r--r-- | src/3rdparty/protocol/qt_attribution.json | 4 | ||||
-rw-r--r-- | src/client/global/qwaylandclientextension.h | 1 | ||||
-rw-r--r-- | src/client/qwaylandintegration.cpp | 5 | ||||
-rw-r--r-- | src/compositor/compositor_api/qwaylandquickitem.cpp | 7 | ||||
-rw-r--r-- | src/compositor/doc/qtwaylandcompositor.qdocconf | 1 | ||||
-rw-r--r-- | src/compositor/extensions/qwaylandwlshellintegration.cpp | 2 | ||||
-rw-r--r-- | src/compositor/extensions/qwaylandxdgshellv5.cpp | 1 |
7 files changed, 17 insertions, 4 deletions
diff --git a/src/3rdparty/protocol/qt_attribution.json b/src/3rdparty/protocol/qt_attribution.json index 327c408b9..76fd33d37 100644 --- a/src/3rdparty/protocol/qt_attribution.json +++ b/src/3rdparty/protocol/qt_attribution.json @@ -4,6 +4,7 @@ "Name": "Wayland Protocol", "QDocModule": "qtwaylandcompositor", "QtUsage": "Used in the Qt Wayland Compositor, and the Qt Wayland platform plugin.", + "Files": "wayland.xml", "Description": "Wayland is a protocol for a compositor to talk to its clients.", "Homepage": "https://wayland.freedesktop.org", @@ -22,6 +23,7 @@ "Name": "Wayland IVI Extension Protocol", "QDocModule": "qtwaylandcompositor", "QtUsage": "Used in the Qt Wayland Compositor, and the Qt Wayland platform plugin.", + "Files": "ivi-controller.xml ivi-application.xml", "Description": "\"Wayland IVI Extension\" is forked from IVI Layer Management to define a common set of APIs by wayland style protocol and provide reference implementation which can be loaded on Weston.", "Homepage": "http://projects.genivi.org/wayland-ivi-extension", @@ -39,6 +41,7 @@ Copyright (c) 2013 BMW Car IT GmbH" "Name": "Wayland XDG Shell Protocol", "QDocModule": "qtwaylandcompositor", "QtUsage": "Used in the Qt Wayland Compositor, and the Qt Wayland platform plugin.", + "Files": "xdg-shell.xml", "Description": "The XDG-Shell protocol is an extended way to manage surfaces under Wayland compositors.", "Homepage": "https://wayland.freedesktop.org", @@ -58,6 +61,7 @@ Copyright © 2010-2013 Intel Corporation" "Name": "Wayland Text Input Protocol", "QDocModule": "qtwaylandcompositor", "QtUsage": "Used in the Qt Wayland Compositor, and the Qt Wayland platform plugin.", + "Files": "text-input-unstable-v2.xml", "Description": "Adds support for text input and input methods to applications.", "Homepage": "https://wayland.freedesktop.org", diff --git a/src/client/global/qwaylandclientextension.h b/src/client/global/qwaylandclientextension.h index 37345202c..abf753249 100644 --- a/src/client/global/qwaylandclientextension.h +++ b/src/client/global/qwaylandclientextension.h @@ -40,6 +40,7 @@ #include <QObject> #include <QtWaylandClient/qtwaylandclientglobal.h> +struct wl_interface; struct wl_registry; QT_BEGIN_NAMESPACE diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp index f9ee61156..8bd9f4901 100644 --- a/src/client/qwaylandintegration.cpp +++ b/src/client/qwaylandintegration.cpp @@ -217,6 +217,11 @@ void QWaylandIntegration::initialize() int fd = wl_display_get_fd(mDisplay->wl_display()); QSocketNotifier *sn = new QSocketNotifier(fd, QSocketNotifier::Read, mDisplay.data()); QObject::connect(sn, SIGNAL(activated(int)), mDisplay.data(), SLOT(flushRequests())); + + if (mDisplay->screens().isEmpty()) { + qWarning() << "Running on a compositor with no screens is not supported"; + ::exit(EXIT_FAILURE); + } } QPlatformFontDatabase *QWaylandIntegration::fontDatabase() const diff --git a/src/compositor/compositor_api/qwaylandquickitem.cpp b/src/compositor/compositor_api/qwaylandquickitem.cpp index 4c5bf0757..7e44dfae7 100644 --- a/src/compositor/compositor_api/qwaylandquickitem.cpp +++ b/src/compositor/compositor_api/qwaylandquickitem.cpp @@ -1125,9 +1125,12 @@ void QWaylandQuickItem::updateInputMethod(Qt::InputMethodQueries queries) QSGNode *QWaylandQuickItem::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) { Q_D(QWaylandQuickItem); - const bool hasContent = surface() && surface()->hasContent() && d->view->currentBuffer().hasContent(); + const bool bufferHasContent = d->view->currentBuffer().hasContent(); - if (!hasContent || !d->paintEnabled) { + if (d->view->isBufferLocked() && !bufferHasContent && d->paintEnabled) + return oldNode; + + if (!bufferHasContent || !d->paintEnabled) { delete oldNode; return 0; } diff --git a/src/compositor/doc/qtwaylandcompositor.qdocconf b/src/compositor/doc/qtwaylandcompositor.qdocconf index 3954cb22f..73331aa09 100644 --- a/src/compositor/doc/qtwaylandcompositor.qdocconf +++ b/src/compositor/doc/qtwaylandcompositor.qdocconf @@ -44,4 +44,3 @@ Cpp.ignoredirectives += Q_DECLARE_LOGGING_CATEGORY navigation.landingpage = "Qt Wayland Compositor" navigation.qmltypespage = "Qt Wayland Compositor QML Types" navigation.cppclassespage = "Qt Wayland Compositor C++ Classes" -navigation.homepage = "Qt Documentation (Technology Preview)" diff --git a/src/compositor/extensions/qwaylandwlshellintegration.cpp b/src/compositor/extensions/qwaylandwlshellintegration.cpp index 761a9022e..abf5b627c 100644 --- a/src/compositor/extensions/qwaylandwlshellintegration.cpp +++ b/src/compositor/extensions/qwaylandwlshellintegration.cpp @@ -201,7 +201,7 @@ void WlShellIntegration::handlePopupClosed() void WlShellIntegration::handlePopupRemoved() { - if (m_shellSurface->shell()->mappedPopups().isEmpty()) + if (!m_shellSurface || m_shellSurface->shell()->mappedPopups().isEmpty()) QWaylandQuickShellEventFilter::cancelFilter(); isPopup = false; } diff --git a/src/compositor/extensions/qwaylandxdgshellv5.cpp b/src/compositor/extensions/qwaylandxdgshellv5.cpp index fd23865cf..0a86b9f6f 100644 --- a/src/compositor/extensions/qwaylandxdgshellv5.cpp +++ b/src/compositor/extensions/qwaylandxdgshellv5.cpp @@ -222,6 +222,7 @@ void QWaylandXdgShellV5Private::xdg_shell_pong(Resource *resource, uint32_t seri QWaylandXdgSurfaceV5Private::QWaylandXdgSurfaceV5Private() : QWaylandCompositorExtensionPrivate() , xdg_surface() + , m_xdgShell(nullptr) , m_surface(nullptr) , m_parentSurface(nullptr) , m_windowType(UnknownWindowType) |