D16130: [effects/diminactive] Delete active transitions when window is deleted

Vlad Zagorodniy <[email protected]>
Newsgroups gmane.comp.kde.devel.kwin
Message-ID <[email protected]>
zzag created this revision.
zzag added a reviewer: KWin.
Herald added a project: KWin.
Herald added a subscriber: kwin.
zzag requested review of this revision.

REVISION SUMMARY
  The Dim Inactive effect expects that the windowClosed signal always
  proceeds the windowDeleted signal. But in some cases that's not the case.
  
  If a window gets destroyed before becoming ready for painting, only
  the windowDeleted signal will be emitted. In addition to that, KWin will
  activate that window, which means we'll probably start a transition for
  it.
  
  Because this effect cannot terminate active transitions for such
  windows, KWin can crash in postPaintScreen.
  
  This change addresses the crash in postPaintScreen by adding extra clean
  up stuff in the windowDeleted slot to make sure that there are no
  transitions for deleted windows.
  
  The proper fix would be to not emit windowActivated signal for windows
  that are not ready for painting.
  
  BUG: 399612
  FIXED-IN: 5.14.1

TEST PLAN
  Ran
  
    x <- seq(5, 15, length=1000)
    y <- dnorm(x, mean=10, sd=3)
    plot(x, y, type="l", lwd=1)
  
  in RKWard multiple times.

REPOSITORY
  R108 KWin

BRANCH
  effects-diminactive-fix-crash

REVISION DETAIL
  https://phabricator.kde.org/D16130

AFFECTED FILES
  effects/diminactive/diminactive.cpp

To: zzag, #kwin
Cc: kwin, mkulinski, ragreen, jackyalcine, Pitel, iodelay, bwowk, ZrenBot, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.