summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-12-12 09:49:15 +0100
committerLiang Qi <liang.qi@qt.io>2016-12-12 09:49:16 +0100
commit9fd54bac3075eb74413776657464027a277d43cf (patch)
treeae74789b061df42fef2fd9d97446cd0b34a9a083
parent2a47c83674a8e19b287cc731cbe814ca411f269f (diff)
parent391c71b4488d69f3a0b16171b01f569fbc9ec07b (diff)
Merge remote-tracking branch 'origin/5.8' into dev
-rw-r--r--dist/changes-5.7.149
-rw-r--r--examples/wayland/qwindow-compositor/window.cpp3
-rw-r--r--src/3rdparty/protocol/qt_attribution.json4
-rw-r--r--src/client/global/qwaylandclientextension.h1
-rw-r--r--src/client/qwaylandintegration.cpp5
-rw-r--r--src/compositor/compositor_api/qwaylandquickitem.cpp7
-rw-r--r--src/compositor/doc/qtwaylandcompositor.qdocconf1
-rw-r--r--src/compositor/extensions/qwaylandwlshellintegration.cpp2
-rw-r--r--src/compositor/extensions/qwaylandxdgshellv5.cpp1
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)