TouchpadConfigContainer::m_plugin is null, because TouchpadBackend::implementation() does not have m_mode properly set. setMode() is supposed to be called in XlibBackend::findTouchpad(), but this goes through the list of touchpads, which can be none, and calls setMode() on each such touchpad.
So setMode() is never actually called and m_mode is (implicitly!) initialized to WaylandLibinput (since it does not get set in TouchpadBackend constructor). Then getMode() does not return any of the expected cases in isPlatformX11() branch, which means m_plugin stays a nullptr and then there is a crash in TouchpadConfigContainer::sizeHint().
I believe this bug is triggered for X11 on systems which do not actually have a touchpad. I think the problem is:
Since
https:/ /github. com/KDE/ plasma- desktop/ commit/ ce84d6ab4babc80 707f4e4c1deb02c fe3ac5b7bb
TouchpadConfigC ontainer: :m_plugin is null, because TouchpadBackend ::implementatio n() does not have m_mode properly set. setMode() is supposed to be called in XlibBackend: :findTouchpad( ), but this goes through the list of touchpads, which can be none, and calls setMode() on each such touchpad.
So setMode() is never actually called and m_mode is (implicitly!) initialized to WaylandLibinput (since it does not get set in TouchpadBackend constructor). Then getMode() does not return any of the expected cases in isPlatformX11() branch, which means m_plugin stays a nullptr and then there is a crash in TouchpadConfigC ontainer: :sizeHint( ).