emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Hourglass only for X-windows?


From: Lennart Borgman
Subject: Re: Hourglass only for X-windows?
Date: Mon, 28 Feb 2005 01:20:35 +0100

----- Original Message ----- 
From: "Eli Zaretskii" <address@hidden>
> > From: "Lennart Borgman" <address@hidden>
> > I am trying to understand the implementation around hourglass cursors.
When
> > I look through eval.c, fns.c, keyboard.c, lread.c and minibuf.c I see in
> > many places something like:
> >
> >     #ifdef HAVE_X_WINDOWS
> >       if (display_hourglass_p)
> >         cancel_hourglass ();
> >     #endif
> >
> > Is this really correct?
>
> Yes, I think so.
>
> > It looks like displaying an hourglass cursor should only happen if x
> > windows is available.
>
> What other systems?  If you refer to Windows, then please see
> w32fns.c, where the timer-related hourglass code is ifdef'ed away
> (probably because Windows doesn't emulate well Posix timers that raise
> asynchronous signals).  The Windows implementation of hourglass
> cursor, if I understand it correctly, is synchronous, i.e. the
> redisplay code and the idle loop set and reset it.
>
> Of other non-X ports, the MSDOS port doesn't support this feature at
> all (you cannot change the Windows mouse pointer shape from a DOS
> program running on Windows, and doing so on plain DOS involves
> undesirable complications).
>
> As for MacOS X, I don't know.
>
> > Maybe it would be better to remove these ifdefs and require every Emacs
> > implementation to compile the lines? Does not most systems actually have
the
> > possibility to display hourglass cursors? If they do not could the
> > implementation not just supply some dummies for the required functions?
>
> That'd not be a good idea, I think: firing SIGALRM signals by the
> timers complicates things (e.g., you get to handle the problem of
> interrupted system calls), so it shouldn't be done without a good
> reason.

There is clearly something I do not understand here. I do not mean the
implementation details (though I do not understand them ;-). However I can
not see how hourglass support can be implemented at all if those places
where you hide or show the hourglass is ifdef:ed away. Both start_hourglass
and cancel_hourglass are ifdef:ed away (unless HAVE_X_WINDOW is defined). Am
I perhaps misunderstanding when HAVE_X_WINDOW is defined? Can you (or
someone else) please explain this a bit more?

I was trying to see if hourglass support could be implemented for w32. It is
really needed for a first class application like Emacs!





reply via email to

[Prev in Thread] Current Thread [Next in Thread]