Check if next_timeout is in past
When having a long running notification and an additional two shorter notifications arrive. The short notification, which times out later, does not timeout correctly and gets flushed only, when the long running notification is flushed or a Focus* XEvent is sent.
This commit is contained in:
parent
1fc96e9691
commit
2a823eb381
@ -78,7 +78,7 @@ gboolean run(void *data)
|
|||||||
gint64 timeout_at = now + sleep;
|
gint64 timeout_at = now + sleep;
|
||||||
|
|
||||||
if (sleep >= 0) {
|
if (sleep >= 0) {
|
||||||
if (timeout_cnt == 0 || timeout_at < next_timeout) {
|
if (timeout_cnt == 0 || next_timeout < now || timeout_at < next_timeout) {
|
||||||
g_timeout_add(sleep/1000, run, mainloop);
|
g_timeout_add(sleep/1000, run, mainloop);
|
||||||
next_timeout = timeout_at;
|
next_timeout = timeout_at;
|
||||||
timeout_cnt++;
|
timeout_cnt++;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user