summaryrefslogtreecommitdiffstats
path: root/src/compositor
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 /src/compositor
parent2a47c83674a8e19b287cc731cbe814ca411f269f (diff)
parent391c71b4488d69f3a0b16171b01f569fbc9ec07b (diff)
Merge remote-tracking branch 'origin/5.8' into dev
Diffstat (limited to 'src/compositor')
-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
4 files changed, 7 insertions, 4 deletions
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)