summaryrefslogtreecommitdiffstats
path: root/src/client
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@qt.io>2018-01-30 10:37:24 +0100
committerPaul Olav Tvete <paul.tvete@qt.io>2018-01-31 10:29:53 +0100
commit6c1499b227324e29cece5651fa00c812d9e01709 (patch)
treedb9ce6e6bc8c605bd54514954b91b73834249b6f /src/client
parent7a9d0f9d0a852c727aef5a54ceeb51b7b2dda85d (diff)
parent06230d22488796d92ea130e985d1e0ee2ed05199 (diff)
Merge remote-tracking branch 'qt/5.10' into dev
Diffstat (limited to 'src/client')
-rw-r--r--src/client/qwaylandbuffer.cpp2
-rw-r--r--src/client/qwaylandbuffer_p.h6
-rw-r--r--src/client/qwaylandwindow.cpp2
-rw-r--r--src/client/qwaylandxdgshellv6.cpp5
4 files changed, 9 insertions, 6 deletions
diff --git a/src/client/qwaylandbuffer.cpp b/src/client/qwaylandbuffer.cpp
index 076a0d57d..a0fcc532f 100644
--- a/src/client/qwaylandbuffer.cpp
+++ b/src/client/qwaylandbuffer.cpp
@@ -66,7 +66,7 @@ void QWaylandBuffer::init(wl_buffer *buf)
void QWaylandBuffer::release(void *data, wl_buffer *)
{
- static_cast<QWaylandBuffer *>(data)->mBusy--;
+ static_cast<QWaylandBuffer *>(data)->mBusy = false;
}
const wl_buffer_listener QWaylandBuffer::listener = {
diff --git a/src/client/qwaylandbuffer_p.h b/src/client/qwaylandbuffer_p.h
index b3513d151..9e8cba2e4 100644
--- a/src/client/qwaylandbuffer_p.h
+++ b/src/client/qwaylandbuffer_p.h
@@ -73,14 +73,14 @@ public:
virtual QSize size() const = 0;
virtual int scale() const { return 1; }
- void setBusy() { mBusy++; }
- bool busy() const { return mBusy > 0; }
+ void setBusy() { mBusy = true; }
+ bool busy() const { return mBusy; }
protected:
struct wl_buffer *mBuffer;
private:
- int mBusy;
+ bool mBusy;
static void release(void *data, wl_buffer *);
static const wl_buffer_listener listener;
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index 28e57be5f..2e709440f 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -1050,7 +1050,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 cd81778c7..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();
@@ -169,7 +171,8 @@ void QWaylandXdgSurfaceV6::setType(Qt::WindowType type, QWaylandWindow *transien
setToplevel();
if (transientParent) {
auto parentXdgSurface = static_cast<QWaylandXdgSurfaceV6 *>(transientParent->shellSurface());
- m_toplevel->set_parent(parentXdgSurface->m_toplevel->object());
+ if (parentXdgSurface)
+ m_toplevel->set_parent(parentXdgSurface->m_toplevel->object());
}
}
}