Workaround a lack of API from Qt where it will decide to move the panels
around without us being able to control it.
This patch overrides the QWindow::screenDestroyed slot to be able to decide
where to move the Panel or whether it needs to be removed. This is
considered a workaround and should be removed once the new API is in and
released.
See also: https://codereview.qt-project.org/#/c/88351/
BUG: 335710
Cf. ffdeb08a in kde-workspace.git (unfortunately plasma-workspace.git
lost libtaskmanager history) for reference.
CCMAIL:mgraesslin@kde.org
CCMAIL:bhush94@gmail.com
CCMAIL:ivan.cukic@kde.org
When inserting an existing clipboard item again it became marked as a
user selected top because the call sequence to set m_topIsUserSelected
to false was incorrect.
Also when removing a user selected item it didn't get reset causing the
next (not selected) item to be marked as user selected.
The History set the m_top to the value of m_top when removing the last
history item. This would result in a crash if one would access the first
element after removing the last item (invalid pointer).
This ports the workarounds using query pointer from XLib to XCB. At the
same time the build system is adjusted to only link against XCB and
Qt5::X11Extras if we are building for X11 and the define is taken from
config-X11.h instead of setting a define through CMakeLists.txt.
REVIEW: 118637
It had custom (and incorrect) code for reading the window class of the
active window. That's provided by KWindowSystem in a better way without
the need of having windowing system dependent code.
If there are no Shaders Plasma doesn't work. If we detect this we show
a warning (without GL) and exit.
This doesn't really work as Qt has a bug which doesn't allow to detect
whether Shaders are supported and the exit just doesn't work.
REVIEW: 118812