mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-09-20 08:05:40 +00:00
Protect against emitting inactivityDetected() while it'is still processed.
This commit is contained in:
parent
721bec9794
commit
8ad48d6774
@ -67,7 +67,14 @@ bool InactivityTimer::eventFilter(QObject* watched, QEvent* event)
|
|||||||
|
|
||||||
void InactivityTimer::timeout()
|
void InactivityTimer::timeout()
|
||||||
{
|
{
|
||||||
|
// make sure we don't emit the signal a second time while it's still processed
|
||||||
|
if (!m_emitMutx.tryLock()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_active && !m_timer->isActive()) {
|
if (m_active && !m_timer->isActive()) {
|
||||||
Q_EMIT inactivityDetected();
|
Q_EMIT inactivityDetected();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_emitMutx.unlock();
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#ifndef KEEPASSX_INACTIVITYTIMER_H
|
#ifndef KEEPASSX_INACTIVITYTIMER_H
|
||||||
#define KEEPASSX_INACTIVITYTIMER_H
|
#define KEEPASSX_INACTIVITYTIMER_H
|
||||||
|
|
||||||
|
#include <QMutex>
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
|
||||||
#include "core/Global.h"
|
#include "core/Global.h"
|
||||||
@ -46,6 +47,7 @@ private Q_SLOTS:
|
|||||||
private:
|
private:
|
||||||
QTimer* m_timer;
|
QTimer* m_timer;
|
||||||
bool m_active;
|
bool m_active;
|
||||||
|
QMutex m_emitMutx;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KEEPASSX_INACTIVITYTIMER_H
|
#endif // KEEPASSX_INACTIVITYTIMER_H
|
||||||
|
Loading…
Reference in New Issue
Block a user