Fix a crash on x11 on closing laptop lid

On x11 when multiscreen is enabled often kwin crashes on
laptop lid close, for two reasons:
* m_outputLayer going dangling in RenderLayer: fixed by using a QPointer
* m_activeOutput going dangling in Workspace

For the latter, the output disabling was done correctly, but x11client did set the old deleted output
again in X11Client::moveResizeInternal
This is fixed by moving desktopResized() at the bottom of
Workspace::slotOutputDisabled() after the reassign of outputs to
the toplevels
This commit is contained in:
Marco Martin 2022-04-11 11:18:30 +00:00
parent cb877595b2
commit 8947ece98f

View file

@ -8,8 +8,11 @@
#include "kwin_export.h"
#include "outputlayer.h"
#include <QMap>
#include <QObject>
#include <QPointer>
#include <QRegion>
namespace KWin
@ -84,7 +87,7 @@ private:
QRegion m_repaints;
QRect m_boundingRect;
QRect m_geometry;
OutputLayer *m_outputLayer = nullptr;
QPointer<OutputLayer> m_outputLayer;
RenderLayer *m_superlayer = nullptr;
QList<RenderLayer *> m_sublayers;
bool m_effectiveVisible = true;