diff options
Diffstat (limited to 'src/gtkutil.c')
| -rw-r--r-- | src/gtkutil.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/gtkutil.c b/src/gtkutil.c index 4cf421b6616..51c56e49540 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -1612,16 +1612,16 @@ xg_maybe_add_timer (gpointer data) { struct xg_dialog_data *dd = (struct xg_dialog_data *) data; EMACS_TIME next_time = timer_check (); - long secs = EMACS_SECS (next_time); - long usecs = EMACS_USECS (next_time); dd->timerid = 0; - if (secs >= 0 && usecs >= 0 && secs < ((guint)-1)/1000) + if (EMACS_TIME_VALID_P (next_time)) { - dd->timerid = g_timeout_add (secs * 1000 + usecs/1000, - xg_maybe_add_timer, - dd); + time_t s = EMACS_SECS (next_time); + int per_ms = EMACS_TIME_RESOLUTION / 1000; + int ms = (EMACS_NSECS (next_time) + per_ms - 1) / per_ms; + if (s <= ((guint) -1 - ms) / 1000) + dd->timerid = g_timeout_add (s * 1000 + ms, xg_maybe_add_timer, dd); } return FALSE; } |
