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

[kstyle] Unregister a shadow when it's destroyed

Summary:
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
afterwards.

CCBUG: 416854

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D26967
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