]> cloud.milkyroute.net Git - dolphin.git/commit
Fix loop of FocusIn events
authorElvis Angelaccio <elvis.angelaccio@kde.org>
Sun, 3 Jun 2018 12:53:55 +0000 (14:53 +0200)
committerElvis Angelaccio <elvis.angelaccio@kde.org>
Wed, 13 Jun 2018 19:39:22 +0000 (21:39 +0200)
commit9616edbb66a8efbdd2bbc9be18e24aaf38a45b59
tree5fdd23bdc33c6b37d1a2136e7decc1aff45b4f79
parent2f6635f4e8c25d30b8e9483b0611cf613fc6f043
Fix loop of FocusIn events

Summary:
Commit 43da84eefc7d introduced the risk of entering an endless loop of
`FocusIn`/`FocusOut` events sent to two DolphinSearchBox instances when
opening a second tab (see D11871).

This happens because we deactivate the first tab when we open a new one, but
since the `setActive(true)` is delayed with a QTimer, both the old tab
and the new one become active and receive their own `FocusIn` event
(which starts the loop of focus in/out events).

To prevent this issue, we schedule the searchbox activation only if the
searchbox is not already active.

Test Plan:
- Search something in dolphin
- Open a new tab after the search ends
- Check that dolphin does not eat the CPU

Reviewers: #dolphin, anthonyfieroni

Subscribers: kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D13152
src/search/dolphinsearchbox.cpp