From 8670a9b1279738badf449119f015c84e61284a1e Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Wed, 12 Jun 2019 15:25:58 +0200 Subject: rework reset timeout stuff --- src/loginform.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'src/loginform.cpp') diff --git a/src/loginform.cpp b/src/loginform.cpp index d4f8abd..8badf4e 100644 --- a/src/loginform.cpp +++ b/src/loginform.cpp @@ -92,14 +92,20 @@ void LoginForm::initialize() }); // timer to reset the form to its original state - resetFormTimer.setInterval(Settings::resetForm() != 0 ? - Settings::resetForm() * 1000 : 30000); // default to 30s - connect(&resetFormTimer, &QTimer::timeout, this, [this]() { - long idleTime = static_cast(getIdleTime(QX11Info::display())); - if (idleTime > Settings::resetForm() * 1000l) - resetForm(); - }); - resetFormTimer.start(); + if (Settings::resetForm() != 0) { + resetFormTimer.setInterval(Settings::resetForm()); + connect(&resetFormTimer, &QTimer::timeout, this, [this]() { + int idleTime = static_cast(getIdleTime(QX11Info::display())); + int remaining = Settings::resetForm() * 1000 - idleTime; + if (remaining <= 0) { + resetForm(); + remaining = Settings::resetForm() * 1000; + } + resetFormTimer.start(remaining + 100); + + }); + resetFormTimer.start(); + } if (!Global::testMode()) { ui->hostnameLabel->setText(Global::greeter()->hostname()); -- cgit v1.2.3-55-g7522