diff --git a/kstyle/breezeshadowhelper.cpp b/kstyle/breezeshadowhelper.cpp --- a/kstyle/breezeshadowhelper.cpp +++ b/kstyle/breezeshadowhelper.cpp @@ -142,7 +142,16 @@ void ShadowHelper::unregisterWidget( QWidget* widget ) { if( _widgets.remove( widget ) ) - { uninstallShadows( widget ); } + { + // uninstall the event filter + widget->removeEventFilter( this ); + + // disconnect all signals + disconnect( widget, nullptr, this, nullptr ); + + // uninstall the shadow + uninstallShadows( widget ); + } } //_______________________________________________________