[plasma-framework] src/plasmaquick: make sure OSD doesn't have Dialog flag

Marco Martin notmart at gmail.com
Wed Nov 2 11:02:46 GMT 2016


Hi all,
I forwarded this here because is a bug fix that is potentially relevant for the 
LTS as well, as it was a really annoying bug that many user encountered.
since the fix in in plasma-framework, you may want to pick up the patch if you 
distribute 5.8 lts with older frameworks

-- 
Marco Martin

On Wednesday 02 November 2016, Marco Martin wrote:
> Git commit 62b0865492d863cd000814054681ba6a97972cd5 by Marco Martin.
> Committed on 02/11/2016 at 10:56.
> Pushed by mart into branch 'master'.
> 
> 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 <mgraesslin at kde.org>
> CCMAIL:distributions at kde.org
> BUG:370433
> 
> M  +5    -0    src/plasmaquick/dialog.cpp
> 
> http://commits.kde.org/plasma-framework/62b0865492d863cd000814054681ba6a979
> 72cd5
> 
> diff --git a/src/plasmaquick/dialog.cpp b/src/plasmaquick/dialog.cpp
> index 9afdf60..6e2041a 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());





More information about the Distributions mailing list