summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@qt.io>2018-09-12 12:34:01 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2018-09-12 12:34:01 +0000
commit1fb9c318f8233781eb80599195f67a75ff2a2e3b (patch)
tree37db01b5fc4d095556efcf950b223a7d18063dfc
parentf669fc9749fce770420e1efece893bb2724a003c (diff)
parentffcfa1cae06ce5dc8cd5c3e8cbb585b8fe62b32c (diff)
Merge "Merge remote-tracking branch 'qt/5.11' into 5.12" into refs/staging/5.12
-rw-r--r--dist/changes-5.11.245
-rw-r--r--src/compositor/compositor_api/qwaylandview.cpp57
-rw-r--r--src/compositor/compositor_api/qwaylandview_p.h2
3 files changed, 80 insertions, 24 deletions
diff --git a/dist/changes-5.11.2 b/dist/changes-5.11.2
new file mode 100644
index 000000000..b831352ef
--- /dev/null
+++ b/dist/changes-5.11.2
@@ -0,0 +1,45 @@
+Qt 5.11.2 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 5.11.0 through 5.11.1.
+
+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.11 series is binary compatible with the 5.10.x series.
+Applications compiled for 5.10 will continue to run with 5.11.
+
+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 5.11.2 Changes *
+****************************************************************************
+
+ - Added support for building QtWayland on macOS.
+
+****************************************************************************
+* Compositor *
+****************************************************************************
+
+ - [QTBUG-70126] Fixed a bug where ShellSurfaceItems for XdgToplevelV6s
+ wouldn't stop resizing.
+ - Close requests for clients using xdg-shell unstable v5 are now handled.
+ - [QTBUG-69643] Fixed a bug where subsurfaces would not be rendered if clients
+ added them before a WaylandQuickItem was created for the parent surface.
+
+****************************************************************************
+* QPA plugin *
+****************************************************************************
+
+ - Fixed the window decorations sometimes not updating on some compositors.
+ - Fixed a bug where a window that was hidden and then shown on different
+ screen would still think it was on the first screen.
+ - Fixed a bug where a buffer was committed multiple times.
+ - Fixed a memory leak when destroying toplevel windows on xdg-shell unstable
+ v6.
diff --git a/src/compositor/compositor_api/qwaylandview.cpp b/src/compositor/compositor_api/qwaylandview.cpp
index 477b45897..127593770 100644
--- a/src/compositor/compositor_api/qwaylandview.cpp
+++ b/src/compositor/compositor_api/qwaylandview.cpp
@@ -55,8 +55,9 @@ void QWaylandViewPrivate::markSurfaceAsDestroyed(QWaylandSurface *surface)
Q_Q(QWaylandView);
Q_ASSERT(surface == this->surface);
- q->setSurface(nullptr);
+ setSurface(nullptr);
emit q->surfaceDestroyed();
+ clearFrontBuffer();
}
/*!
@@ -132,38 +133,46 @@ QWaylandSurface *QWaylandView::surface() const
return d->surface;
}
-void QWaylandView::setSurface(QWaylandSurface *newSurface)
-{
- Q_D(QWaylandView);
- if (d->surface == newSurface)
- return;
-
- if (d->surface) {
- QWaylandSurfacePrivate::get(d->surface)->derefView(this);
- if (d->output)
- QWaylandOutputPrivate::get(d->output)->removeView(this, d->surface);
+void QWaylandViewPrivate::setSurface(QWaylandSurface *newSurface)
+{
+ Q_Q(QWaylandView);
+ if (surface) {
+ QWaylandSurfacePrivate::get(surface)->derefView(q);
+ if (output)
+ QWaylandOutputPrivate::get(output)->removeView(q, surface);
}
- d->surface = newSurface;
+ surface = newSurface;
- if (!d->bufferLocked) {
- d->currentBuffer = QWaylandBufferRef();
- d->currentDamage = QRegion();
- }
+ nextBuffer = QWaylandBufferRef();
+ nextBufferCommitted = false;
+ nextDamage = QRegion();
- d->nextBuffer = QWaylandBufferRef();
- d->nextBufferCommitted = false;
- d->nextDamage = QRegion();
+ if (surface) {
+ QWaylandSurfacePrivate::get(surface)->refView(q);
+ if (output)
+ QWaylandOutputPrivate::get(output)->addView(q, surface);
+ }
+}
- if (d->surface) {
- QWaylandSurfacePrivate::get(d->surface)->refView(this);
- if (d->output)
- QWaylandOutputPrivate::get(d->output)->addView(this, d->surface);
+void QWaylandViewPrivate::clearFrontBuffer()
+{
+ if (!bufferLocked) {
+ currentBuffer = QWaylandBufferRef();
+ currentDamage = QRegion();
}
+}
- emit surfaceChanged();
+void QWaylandView::setSurface(QWaylandSurface *newSurface)
+{
+ Q_D(QWaylandView);
+ if (d->surface == newSurface)
+ return;
+ d->setSurface(newSurface);
+ d->clearFrontBuffer();
+ emit surfaceChanged();
}
/*!
diff --git a/src/compositor/compositor_api/qwaylandview_p.h b/src/compositor/compositor_api/qwaylandview_p.h
index b9cb0d07b..e7f521afe 100644
--- a/src/compositor/compositor_api/qwaylandview_p.h
+++ b/src/compositor/compositor_api/qwaylandview_p.h
@@ -74,6 +74,8 @@ public:
{ }
void markSurfaceAsDestroyed(QWaylandSurface *surface);
+ void setSurface(QWaylandSurface *newSurface);
+ void clearFrontBuffer();
QObject *renderObject = nullptr;
QWaylandSurface *surface = nullptr;