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 | |
parent | 2a47c83674a8e19b287cc731cbe814ca411f269f (diff) | |
parent | 391c71b4488d69f3a0b16171b01f569fbc9ec07b (diff) |
Merge remote-tracking branch 'origin/5.8' into dev
Change-Id: Idd91b55bc2b1e3506d9385b3352aeda06de6d4bc
-rw-r--r-- | dist/changes-5.7.1 | 49 | ||||
-rw-r--r-- | examples/wayland/qwindow-compositor/window.cpp | 3 | ||||
-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 |
9 files changed, 68 insertions, 5 deletions
diff --git a/dist/changes-5.7.1 b/dist/changes-5.7.1 new file mode 100644 index 000000000..d6a7092c2 --- /dev/null +++ b/dist/changes-5.7.1 @@ -0,0 +1,49 @@ +Qt 5.7.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.7.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.7 series is binary compatible with the 5.6.x series. +Applications compiled for 5.6 will continue to run with 5.7. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +Qt Wayland General +------- + +- Build no longer fails with QT_NO_ACCESSIBILITY defined +- Fixed source tarballs not compiling with --developer-build configure flag +- Namespaced builds no longer failing + +Qt Wayland QPA Plugin +------- + +- Fixed window decorations not being removed or added when toggling fullscreen +- Fixed drag and drop from the application to itself when running on Weston +- Improved the HIDPI support +- Fixed a crash when dragging a window with touch input and no pointer +- Fixed a crash on application exit +- Made it use the proper activation mechanism when using xdg_shell +- Fixed returning to the same window size when unmaximizing on xdg shell +- Fixed the window resize area being too big on the bottom and right edges +- Support for EGL_KHR_platform_wayland + +Qt Compositor API Tech Preview +------- + +- Added a minimal-qml example +- ShellSurfaceItem now sends unmaximize configure events with zero width and height for xdg_shell +- Added missing NOTIFY signal for the bufferLocked property +- Fixed touch release events getting stuck in some cases +- Fixed wrong key code of key events when control was pressed +- Popup fixes +- Drag-and-drop fixes diff --git a/examples/wayland/qwindow-compositor/window.cpp b/examples/wayland/qwindow-compositor/window.cpp index a61e4d98a..59ef1d56a 100644 --- a/examples/wayland/qwindow-compositor/window.cpp +++ b/examples/wayland/qwindow-compositor/window.cpp @@ -66,7 +66,8 @@ void Window::setCompositor(Compositor *comp) { void Window::initializeGL() { - QImage backgroundImage = QImage(QLatin1String(":/background.jpg")); + QImage backgroundImage = QImage(QLatin1String(":/background.jpg")).rgbSwapped(); + backgroundImage.invertPixels(); m_backgroundTexture = new QOpenGLTexture(backgroundImage, QOpenGLTexture::DontGenerateMipMaps); m_backgroundTexture->setMinificationFilter(QOpenGLTexture::Nearest); m_backgroundImageSize = backgroundImage.size(); 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) |