From 11f2e7df5762a23e66d1755b34f5f3d07208ae32 Mon Sep 17 00:00:00 2001 From: Johan Klokkhammer Helsing Date: Thu, 3 Oct 2019 10:05:20 +0200 Subject: Compositor: Fix crash when trying to maximize an XdgToplevel with no output Fixes: QTBUG-78969 Change-Id: I4ecde3725b5307251070e331c97d96df328a3772 Reviewed-by: Paul Olav Tvete --- src/compositor/extensions/qwaylandxdgshellintegration.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/compositor/extensions/qwaylandxdgshellintegration.cpp b/src/compositor/extensions/qwaylandxdgshellintegration.cpp index 3de52944b..08e098210 100644 --- a/src/compositor/extensions/qwaylandxdgshellintegration.cpp +++ b/src/compositor/extensions/qwaylandxdgshellintegration.cpp @@ -179,8 +179,12 @@ void XdgToplevelIntegration::handleUnsetMaximized() void XdgToplevelIntegration::handleMaximizedChanged() { if (m_toplevel->maximized()) { - QWaylandOutput *output = m_item->view()->output(); - m_item->moveItem()->setPosition(output->position() + output->availableGeometry().topLeft()); + if (auto *output = m_item->view()->output()) { + m_item->moveItem()->setPosition(output->position() + output->availableGeometry().topLeft()); + } else { + qCWarning(qLcWaylandCompositor) << "The view does not have a corresponding output," + << "ignoring maximized state"; + } } else { m_item->moveItem()->setPosition(windowedGeometry.initialPosition); } @@ -232,7 +236,12 @@ void XdgToplevelIntegration::handleFullscreenChanged() { if (m_toplevel->fullscreen()) { QWaylandOutput *output = m_item->view()->output(); - m_item->moveItem()->setPosition(output->position() + output->geometry().topLeft()); + if (auto *output = m_item->view()->output()) { + m_item->moveItem()->setPosition(output->position() + output->geometry().topLeft()); + } else { + qCWarning(qLcWaylandCompositor) << "The view does not have a corresponding output," + << "ignoring fullscreen state"; + } } else { m_item->moveItem()->setPosition(windowedGeometry.initialPosition); } -- cgit v1.2.3 From 277de587f956dba2a68eb82b9666063ab12c51c4 Mon Sep 17 00:00:00 2001 From: Johan Klokkhammer Helsing Date: Fri, 4 Oct 2019 10:25:09 +0200 Subject: Compositor: Remove unused local variable Was shadowed in 11f2e7df5 when fixing QTBUG-78969. Task-number: QTBUG-78969 Change-Id: I933373b5233ae8b45cdab7c3ffd14a1502486ae8 Reviewed-by: Pier Luigi Fiorini --- src/compositor/extensions/qwaylandxdgshellintegration.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/compositor/extensions/qwaylandxdgshellintegration.cpp b/src/compositor/extensions/qwaylandxdgshellintegration.cpp index 08e098210..f415a5a24 100644 --- a/src/compositor/extensions/qwaylandxdgshellintegration.cpp +++ b/src/compositor/extensions/qwaylandxdgshellintegration.cpp @@ -235,7 +235,6 @@ void XdgToplevelIntegration::handleUnsetFullscreen() void XdgToplevelIntegration::handleFullscreenChanged() { if (m_toplevel->fullscreen()) { - QWaylandOutput *output = m_item->view()->output(); if (auto *output = m_item->view()->output()) { m_item->moveItem()->setPosition(output->position() + output->geometry().topLeft()); } else { -- cgit v1.2.3