D5910: make shadows work on wayland
    David Edmundson 
    noreply at phabricator.kde.org
       
    Thu May 18 12:11:35 UTC 2017
    
    
  
davidedmundson added a comment.
  We're going to be leaking both Surface and Shadow objects in installWaylandFilter, no?
INLINE COMMENTS
> breezeshadowhelper.cpp:177
> +            QWidget* widget( static_cast<QWidget*>( object ) );
> +            if( event->type() == QEvent::Paint && ( !_widgets.contains(widget) || _widgets.value(widget) == 0 ) )
> +            {
we use Expose everywhere else, why not here? It gets called a lot less
> breezeshadowhelper.cpp:185
> +            {
> +                _widgets.insert( widget, 0 );
> +            }
why not just remove the widget from the list?
> breezeshadowhelper.cpp:464
>          using namespace KWayland::Client;
>          auto s = Surface::fromWindow( widget->windowHandle() );
>          if( !s ) return false;
this is currently leaking?
fromWindow constructs a new QObject
> breezeshadowhelper.cpp:467
>  
>          auto shadow = _shadowManager->createShadow( s, widget );
>          if( !shadow->isValid() ) return false;
this is going to be effectively leaking. on a show/hide/show we'll get now have two of these in memory, just one not attached to anything.
> breezeshadowhelper.cpp:482
>          shadow->commit();
>          s->commit( Surface::CommitFlag::None );
>  
off topic, but why do we have a commit on the surface? We haven't changed the surface, just attaced something to it.
REPOSITORY
  R31 Breeze
REVISION DETAIL
  https://phabricator.kde.org/D5910
To: mart, #plasma, hpereiradacosta
Cc: davidedmundson, plasma-devel, ZrenBot, spstarr, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, lukas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20170518/4d4a27a2/attachment.html>
    
    
More information about the Plasma-devel
mailing list