From 62b0865492d863cd000814054681ba6a97972cd5 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Wed, 2 Nov 2016 11:56:40 +0100 Subject: [PATCH] make sure OSD doesn't have Dialog flag an OSD can't be a Dialog, as qt xcb would attempt to set a transient parent for it, same as panels, which in turn will make for invisible osd on autohide panels Change-Id: I5afea6d4bfa0bfee8b3453e78a1c214a3a0894ec reviewed-by: Martin Graesslin CCMAIL:distributions@kde.org BUG:370433 --- src/plasmaquick/dialog.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/plasmaquick/dialog.cpp b/src/plasmaquick/dialog.cpp index 9afdf6032..6e2041aa7 100644 --- a/src/plasmaquick/dialog.cpp +++ b/src/plasmaquick/dialog.cpp @@ -1037,6 +1037,11 @@ void Dialog::setType(WindowType type) } else { setFlags(Qt::FramelessWindowHint | flags()); } + //an OSD can't be a Dialog, as qt xcb would attempt to set a transient parent for it + //see bug 370433 + if (type == OnScreenDisplay) { + setFlags((flags() & ~Qt::Dialog) | Qt::Window); + } if (d->backgroundHints == Dialog::NoBackground) { d->frameSvgItem->setImagePath(QString());