summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2018-01-18 18:04:03 +0100
committerLiang Qi <liang.qi@qt.io>2018-01-18 18:04:03 +0100
commit06230d22488796d92ea130e985d1e0ee2ed05199 (patch)
tree85829879b207a1a53db04e877ec2ae66294009db
parent8ab1765b0f9640eb410864971cb4336adc7b30ab (diff)
parent6793a0a907f3aa92f8f8bd5448505c152d0e3a3d (diff)
Merge remote-tracking branch 'origin/5.9' into 5.10
-rw-r--r--dist/changes-5.9.435
-rw-r--r--src/client/qwaylandwindow.cpp2
-rw-r--r--src/client/qwaylandxdgshellv6.cpp2
-rw-r--r--src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp2
-rw-r--r--src/plugins/hardwareintegration/client/wayland-egl/wayland-egl.pro2
-rw-r--r--tests/auto/client/client/tst_client.cpp37
6 files changed, 78 insertions, 2 deletions
diff --git a/dist/changes-5.9.4 b/dist/changes-5.9.4
new file mode 100644
index 000000000..70a2f54db
--- /dev/null
+++ b/dist/changes-5.9.4
@@ -0,0 +1,35 @@
+Qt 5.9.4 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 5.9.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.9 series is binary compatible with the 5.8.x series.
+Applications compiled for 5.8 will continue to run with 5.9. Exception:
+between Qt 5.8.0 and 5.9.0 the QWaylandQuickOutput class was changed
+in a binary incompatible way.
+
+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 QPA Plugin 5.9.4 Changes *
+****************************************************************************
+
+ - [QTBUG-64631] Fix freeze on resize with Weston and Qt Wayland Compositors
+
+****************************************************************************
+* Qt Wayland Compositor API 5.9.4 Changes *
+****************************************************************************
+
+ - Fix memory leak when client attached a new Wayland buffer.
+
+ - [QTBUG-64841] Fix decoding of multi-planar surfaces (YUV video)
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index cff380e8f..6661d8e7e 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -1031,7 +1031,7 @@ QVariant QWaylandWindow::property(const QString &name, const QVariant &defaultVa
void QWaylandWindow::requestUpdate()
{
- if (!mFrameCallback)
+ if (!mWaitingForFrameSync)
QPlatformWindow::requestUpdate();
else
mUpdateRequested = true;
diff --git a/src/client/qwaylandxdgshellv6.cpp b/src/client/qwaylandxdgshellv6.cpp
index d9302ed57..1a60d6533 100644
--- a/src/client/qwaylandxdgshellv6.cpp
+++ b/src/client/qwaylandxdgshellv6.cpp
@@ -125,6 +125,8 @@ QWaylandXdgSurfaceV6::QWaylandXdgSurfaceV6(QWaylandXdgShellV6 *shell, ::zxdg_sur
QWaylandXdgSurfaceV6::~QWaylandXdgSurfaceV6()
{
+ if (m_toplevel)
+ zxdg_toplevel_v6_destroy(m_toplevel->object());
if (m_popup)
zxdg_popup_v6_destroy(m_popup->object());
destroy();
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
index 2a9e39ed6..f4dd6f492 100644
--- a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
@@ -407,7 +407,7 @@ bool QWaylandGLContext::makeCurrent(QPlatformSurface *surface)
window->createDecoration();
if (eglSurface == EGL_NO_SURFACE) {
- window->updateSurface(true);
+ window->updateSurface(window->isExposed());
eglSurface = window->eglSurface();
}
diff --git a/src/plugins/hardwareintegration/client/wayland-egl/wayland-egl.pro b/src/plugins/hardwareintegration/client/wayland-egl/wayland-egl.pro
index d85c5efaa..409cd37d7 100644
--- a/src/plugins/hardwareintegration/client/wayland-egl/wayland-egl.pro
+++ b/src/plugins/hardwareintegration/client/wayland-egl/wayland-egl.pro
@@ -7,6 +7,8 @@ OTHER_FILES += \
SOURCES += main.cpp
+TARGET = qt-plugin-wayland-egl
+
PLUGIN_TYPE = wayland-graphics-integration-client
PLUGIN_CLASS_NAME = QWaylandEglClientBufferPlugin
load(qt_plugin)
diff --git a/tests/auto/client/client/tst_client.cpp b/tests/auto/client/client/tst_client.cpp
index 3897bd3b1..aed601d8a 100644
--- a/tests/auto/client/client/tst_client.cpp
+++ b/tests/auto/client/client/tst_client.cpp
@@ -35,6 +35,8 @@
#include <QMimeData>
#include <QPixmap>
#include <QDrag>
+#include <QWindow>
+#include <QOpenGLWindow>
#include <QtTest/QtTest>
#include <QtWaylandClient/private/qwaylandintegration_p.h>
@@ -112,6 +114,25 @@ public:
QPoint mousePressPos;
};
+class TestGlWindow : public QOpenGLWindow
+{
+ Q_OBJECT
+
+public:
+ TestGlWindow();
+
+protected:
+ void paintGL() override;
+};
+
+TestGlWindow::TestGlWindow()
+{}
+
+void TestGlWindow::paintGL()
+{
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
class tst_WaylandClient : public QObject
{
Q_OBJECT
@@ -149,6 +170,7 @@ private slots:
void dontCrashOnMultipleCommits();
void hiddenTransientParent();
void hiddenPopupParent();
+ void glWindow();
private:
MockCompositor *compositor;
@@ -409,6 +431,21 @@ void tst_WaylandClient::hiddenPopupParent()
QTRY_VERIFY(compositor->surface());
}
+void tst_WaylandClient::glWindow()
+{
+ QSKIP("Skipping GL tests, as not supported by all CI systems: See https://bugreports.qt.io/browse/QTBUG-65802");
+
+ QScopedPointer<TestGlWindow> testWindow(new TestGlWindow);
+ testWindow->show();
+ QSharedPointer<MockSurface> surface;
+ QTRY_VERIFY(surface = compositor->surface());
+
+ //confirm we don't crash when we delete an already hidden GL window
+ //QTBUG-65553
+ testWindow->setVisible(false);
+ QTRY_VERIFY(!compositor->surface());
+}
+
int main(int argc, char **argv)
{
setenv("XDG_RUNTIME_DIR", ".", 1);