[effects/translucency] Cancel existing animations before starting new
Summary: It can happen that startAnimation is invoked multiple times for a window. In case it was invoked a second time the previous animation was not cancelled. This resulted in the set-animation to never end. When closing a window, it would stay around as a translucent, non-interactive window zombie. This change ensures that existing animations get cancelled. BUG: 342716 FIXED-IN: 5.8.3 Test Plan: Tested through autotest and manually. Reviewers: #kwin, #plasma Subscribers: plasma-devel, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D3190
This commit is contained in:
parent
37067f538e
commit
94c5704af7
2 changed files with 3 additions and 3 deletions
|
@ -238,12 +238,9 @@ void TranslucencyTest::testDialogClose()
|
||||||
QVERIFY(windowDeletedSpy.isValid());
|
QVERIFY(windowDeletedSpy.isValid());
|
||||||
QVERIFY(windowClosedSpy.wait());
|
QVERIFY(windowClosedSpy.wait());
|
||||||
if (windowDeletedSpy.isEmpty()) {
|
if (windowDeletedSpy.isEmpty()) {
|
||||||
QEXPECT_FAIL("", "BUG 342716", Continue);
|
|
||||||
QVERIFY(windowDeletedSpy.wait());
|
QVERIFY(windowDeletedSpy.wait());
|
||||||
}
|
}
|
||||||
QEXPECT_FAIL("", "BUG 342716", Continue);
|
|
||||||
QCOMPARE(windowDeletedSpy.count(), 1);
|
QCOMPARE(windowDeletedSpy.count(), 1);
|
||||||
QEXPECT_FAIL("", "BUG 342716", Continue);
|
|
||||||
QTRY_VERIFY(!m_translucencyEffect->isActive());
|
QTRY_VERIFY(!m_translucencyEffect->isActive());
|
||||||
xcb_destroy_window(c.data(), w);
|
xcb_destroy_window(c.data(), w);
|
||||||
c.reset();
|
c.reset();
|
||||||
|
|
|
@ -78,6 +78,9 @@ var translucencyEffect = {
|
||||||
to: value / 100.0
|
to: value / 100.0
|
||||||
}]
|
}]
|
||||||
});
|
});
|
||||||
|
if (window.translucencyWindowTypeAnimation !== undefined) {
|
||||||
|
cancel(window.translucencyWindowTypeAnimation);
|
||||||
|
}
|
||||||
window.translucencyWindowTypeAnimation = ids;
|
window.translucencyWindowTypeAnimation = ids;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue