diff --git a/src/client.c b/src/client.c index 97aa33ba0068d222744500181e9ce67adfa1347f..16709d5db433036592bc23c291b4ac5d31c68c39 100644 --- a/src/client.c +++ b/src/client.c @@ -1586,7 +1586,7 @@ clientGetUserTime (Client * c) if (getNetWMUserTime (display_info, c->window, &c->user_time) && (c->user_time != 0)) { FLAG_SET (c->flags, CLIENT_FLAG_HAS_USER_TIME); - myDisplaySetLastUserTime (display_info, c->user_time); + myDisplayUpdateLastUserTime (display_info, c->user_time); } } diff --git a/src/display.c b/src/display.c index 7bec3515fdfea4eadd16ccfdc73d4b4c3c73ff02..68670b3e7d5a94467d67b1ee31fedb0dfacf1444 100644 --- a/src/display.c +++ b/src/display.c @@ -753,6 +753,18 @@ myDisplaySetLastUserTime (DisplayInfo *display, Time timestamp) display->last_user_time = timestamp; } +void +myDisplayUpdateLastUserTime (DisplayInfo *display, Time timestamp) +{ + g_return_if_fail (display != NULL); + g_return_if_fail (timestamp != (Time) 0); + + if (TIMESTAMP_IS_BEFORE(display->last_user_time, timestamp)) + { + display->last_user_time = timestamp; + } +} + gboolean myDisplayTestXrender (DisplayInfo *display, gdouble min_time) { diff --git a/src/display.h b/src/display.h index 29815e9c8070bd06bf2379aafa3d30772afd4a20..8ff460b7c1fd7dc56b8077c69db47cc82e3c38e9 100644 --- a/src/display.h +++ b/src/display.h @@ -384,6 +384,8 @@ Time myDisplayGetTime (DisplayInfo *, Time myDisplayGetLastUserTime (DisplayInfo *); void myDisplaySetLastUserTime (DisplayInfo *, Time); +void myDisplayUpdateLastUserTime (DisplayInfo *, + Time); gboolean myDisplayTestXrender (DisplayInfo *, gdouble);