Skip to content
  • Vlad Zahorodnii's avatar
    [effects/dialogparent] Fix flickering of parent windows · a281f2bc
    Vlad Zahorodnii authored
    Summary:
    If a modal window is closed and some alternative effect that animates
    the disappearing of windows is enabled(e.g. the Glide effect, or the
    Scale effect), the Dialog Parent effect can cause flickering of the
    parent window because its animation duration doesn't match duration of
    those alternative effects.
    
    Also, if the Fade effect, the Glide effect, and the Scale effect are
    disabled, the Dialog Parent will keep the parent window alive for no
    good reason.
    
    This change addresses that problem by adding keepAlive property to
    `animate` function so scripted effects have more control over lifetime
    of animated windows.
    
    If both a modal window and its parent window are closed at the same time
    (and there is no effect that animates the disappearing of windows), the
    Dialog Parent will stop immediately(because windowDeleted will be
    emitted right after windowClosed signal).
    
    If both a modal window and its parent window are closed at the same time
    (and there is effect that animates the disappearing of windows), the
    Dialog Parent won't reference the latter window. Thus, it won't cause
    flickering. I.e. it will "passively" animate parent windows.
    
    BUG: 355036
    FIXED-IN: 5.15.0
    
    Reviewers: #kwin, davidedmundson
    
    Reviewed By: #kwin, davidedmundson
    
    Subscribers: davidedmundson, kwin
    
    Tags: #kwin
    
    Differential Revision: https://phabricator.kde.org/D14919
    a281f2bc