logind: redefine idleness to start at last activity
Before, after the timeout, a session would be timestamped as idle since 'last activity' + 'idle timeout'. Now, it is timestamped as idle since 'last activity'. Before, after all sessions were idle, the seat would be marked with as idle with the timestamp of the oldest idle session. Now it is marked with the timestamp of the youngest idle session. Both changes seem to me to be closer to natural understanding of idleness: the time since last activity counts.
This commit is contained in:
parent
49cb1ecf2d
commit
4a271908f1
|
@ -471,7 +471,7 @@ int seat_get_idle_hint(Seat *s, dual_timestamp *t) {
|
|||
|
||||
if (!ih) {
|
||||
if (!idle_hint) {
|
||||
if (k.monotonic < ts.monotonic)
|
||||
if (k.monotonic > ts.monotonic)
|
||||
ts = k;
|
||||
} else {
|
||||
idle_hint = false;
|
||||
|
|
|
@ -738,7 +738,6 @@ int session_get_idle_hint(Session *s, dual_timestamp *t) {
|
|||
char *p;
|
||||
struct stat st;
|
||||
usec_t u, n;
|
||||
bool b;
|
||||
int k;
|
||||
|
||||
assert(s);
|
||||
|
@ -773,12 +772,11 @@ int session_get_idle_hint(Session *s, dual_timestamp *t) {
|
|||
|
||||
u = timespec_load(&st.st_atim);
|
||||
n = now(CLOCK_REALTIME);
|
||||
b = u + IDLE_THRESHOLD_USEC < n;
|
||||
|
||||
if (t)
|
||||
dual_timestamp_from_realtime(t, u + b*IDLE_THRESHOLD_USEC);
|
||||
dual_timestamp_from_realtime(t, u);
|
||||
|
||||
return b;
|
||||
return u + IDLE_THRESHOLD_USEC < n;
|
||||
|
||||
dont_know:
|
||||
if (t)
|
||||
|
|
Loading…
Reference in New Issue