Skip to content
  • Vlad Zahorodnii's avatar
    [effects/diminactive] Fix initialization of m_activeWindow on reconfigure · defa1061
    Vlad Zahorodnii authored
    Summary:
    The Dim Inactive effect sees the world a little bit differently.
    m_activeWindow is currently active window that can be dimmed later on.
    In most cases, it's the same as effects->activeWindow(). In rare cases,
    it can be nullptr, even when effects->activeWindow() is not equal to nullptr
    (e.g. when active window is a context menu popup).
    
    canDimWindow is a helper that returns true if a given window should be
    dimmed, otherwise it returns false. It has one special case: if a given
    window is equal to m_activeWindow, return false. I.e. don't dim active
    windows.
    
    Currently, if user changes config of this effect, active window becomes
    dimmed.
    
    The reason for that is we hit that special case when deciding whether
    effects->activeWindow() should be m_activeWindow.
    
    This change addresses that problem by resetting m_activeWindow so we
    don't hit that special case.
    
    Test Plan:
    * Opened KCM of this effect;
    * Changed strength;
    * (the KCM window stayed bright after I clicked "Apply" button).
    
    (everything else works as expected)
    
    Reviewers: #kwin, davidedmundson
    
    Reviewed By: #kwin, davidedmundson
    
    Subscribers: kwin
    
    Tags: #kwin
    
    Differential Revision: https://phabricator.kde.org/D14973
    defa1061