diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2012-06-22 14:17:42 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2012-06-22 14:17:42 -0700 |
commit | d35af63cd671563fd188c3b0a1ef30067027c7aa (patch) | |
tree | c9e01847ccf788e23794684da9331c3e0defd0d3 /src/xdisp.c | |
parent | f143bfe38b43ad0a9d817f05c25e418982dca06f (diff) | |
download | emacs-d35af63cd671563fd188c3b0a1ef30067027c7aa.tar.gz |
Support higher-resolution time stamps.
Fixes: debbugs:9000
Diffstat (limited to 'src/xdisp.c')
-rw-r--r-- | src/xdisp.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index a0739eb5522..0050d644931 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -29077,18 +29077,20 @@ start_hourglass (void) { #if defined (HAVE_WINDOW_SYSTEM) EMACS_TIME delay; - int secs = DEFAULT_HOURGLASS_DELAY, usecs = 0; cancel_hourglass (); - if (NUMBERP (Vhourglass_delay)) - { - double duration = extract_float (Vhourglass_delay); - if (0 < duration) - duration_to_sec_usec (duration, &secs, &usecs); - } + if (INTEGERP (Vhourglass_delay) + && XINT (Vhourglass_delay) > 0) + EMACS_SET_SECS_NSECS (delay, + min (XINT (Vhourglass_delay), TYPE_MAXIMUM (time_t)), + 0); + else if (FLOATP (Vhourglass_delay) + && XFLOAT_DATA (Vhourglass_delay) > 0) + delay = EMACS_TIME_FROM_DOUBLE (XFLOAT_DATA (Vhourglass_delay)); + else + EMACS_SET_SECS_NSECS (delay, DEFAULT_HOURGLASS_DELAY, 0); - EMACS_SET_SECS_USECS (delay, secs, usecs); hourglass_atimer = start_atimer (ATIMER_RELATIVE, delay, show_hourglass, NULL); #endif |