https://bugs.kde.org/show_bug.cgi?id=377808

Kai Uwe Broulik <k...@privat.broulik.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|plasma-b...@kde.org         |aleix...@kde.org
     Ever confirmed|0                           |1
          Component|generic-wayland             |Multi-screen support
                 CC|                            |plasma-b...@kde.org
             Status|UNCONFIRMED                 |CONFIRMED
           Severity|normal                      |crash

--- Comment #8 from Kai Uwe Broulik <k...@privat.broulik.de> ---
I can reproduce:

1.) have two screens, calling it Left and Right here. Make Left the primary.
2.) quit plasmashell
3.) now unplug the cable for Left, kscreen will remove the screen and Right
will become primary
4.) start plasmashell (it is important that plasmashell started with one screen
only, otherwise it works fine, ie. just plugging it out and back in is fine)
5.) plug the cable back in, kscreen will restore the previous screen config,
leading to Left becoming primary again
6.) boom

>From what I can tell, crashes in shellcorona.cpp:730 QScreen *oldPrimary =
m_desktopViewforId.value(0)->screen();

It calls reconsiderOutputs() which might remove and delete a view (at one point
we only have one in the above scenario), so m_desktopViewforId is now empty,
afterwards we do m_desktopViewforId.value(0)->screen() which returns a nullptr
and we crash.

I tried doing moving reconsiderOutputs() first and then check if
m_desktopViewForId.contains(0), while it won't crash anymore it also resulted
in views and panels being messed up. It seems we need to be able to deal with
m_desktopViewForId being empty and oldScreen being nullptr (this variable is
used a couple of times in that function, actually, so might be again Pandora's
box to fix :/)

(also crashes on X11, re-assigning to "Multi Screen")

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to