Commit 120fb3e0 authored by Vlad Zahorodnii's avatar Vlad Zahorodnii
Browse files

[kstyle] Unregister a shadow when it's destroyed

Since lifetime of a KWindowShadow doesn't strictly match the lifetime
of the associated widget, we need to unregister the shadow when it's
destroyed in order to prevent accessing or deleting dangling pointers

CCBUG: 416854

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: plasma-devel

Tags: #plasma

Differential Revision:
parent 7eed738e
......@@ -297,7 +297,11 @@ namespace Oxygen
// we want the shadow to be deleted after the decorated window is destroyed
if( !shadow )
{ shadow = new KWindowShadow( widget->windowHandle() ); }
shadow = new KWindowShadow( widget->windowHandle() );
connect( shadow, &QObject::destroyed, this, [this, widget] { _shadows.remove( widget ); } );
if( shadow->isCreated() )
{ shadow->destroy(); }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment