Don't include embedded contrainers in containmentAt(pos)
Do to so means the System Tray applet ends up being placed inside the system tray container, which ends up in a parent loop, causing a stack overflow every time parent() is called recursively This happens whenever one drags a sys tray on the desktop or simply adds a new system tray whilst running. BUG: 361777 We also need to do a hack for Plasma/5.7 in plasma-desktop somehow in all cases where this is used.
This commit is contained in:
parent
c6b35c6b10
commit
3c1eb48018
@ -277,6 +277,9 @@ QObject *ContainmentInterface::containmentAt(int x, int y)
|
|||||||
if (contInterface && contInterface->isVisible()) {
|
if (contInterface && contInterface->isVisible()) {
|
||||||
QWindow *w = contInterface->window();
|
QWindow *w = contInterface->window();
|
||||||
if (w && w->geometry().contains(QPoint(window()->x(), window()->y()) + QPoint(x, y))) {
|
if (w && w->geometry().contains(QPoint(window()->x(), window()->y()) + QPoint(x, y))) {
|
||||||
|
if (c->containmentType() == Plasma::Types::CustomEmbeddedContainment) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (c->containmentType() == Plasma::Types::DesktopContainment) {
|
if (c->containmentType() == Plasma::Types::DesktopContainment) {
|
||||||
desktop = contInterface;
|
desktop = contInterface;
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user