* keyboard.c (cancel_hourglass_unwind): New function.

(command_loop_1): Cancel hourglass with unwind-protect.
This commit is contained in:
Jan Djärv 2003-02-23 22:11:20 +00:00
parent 60a653f1cd
commit 0af912f093
2 changed files with 29 additions and 8 deletions

View file

@ -1,3 +1,8 @@
2003-02-23 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* keyboard.c (cancel_hourglass_unwind): New function.
(command_loop_1): Cancel hourglass with unwind-protect.
2003-02-23 Richard M. Stallman <rms@gnu.org>
* callint.c (fix_command): New subroutine, from Fcall_interactively.

View file

@ -1353,6 +1353,15 @@ static int read_key_sequence P_ ((Lisp_Object *, int, Lisp_Object,
void safe_run_hooks P_ ((Lisp_Object));
static void adjust_point_for_property P_ ((int, int));
/* Cancel hourglass from protect_unwind.
ARG is not used. */
static Lisp_Object
cancel_hourglass_unwind (arg)
Lisp_Object arg;
{
cancel_hourglass ();
}
Lisp_Object
command_loop_1 ()
{
@ -1724,16 +1733,22 @@ command_loop_1 ()
/* Here for a command that isn't executed directly */
{
#ifdef HAVE_X_WINDOWS
if (display_hourglass_p
&& NILP (Vexecuting_macro))
start_hourglass ();
int scount = SPECPDL_INDEX ();
if (display_hourglass_p
&& NILP (Vexecuting_macro))
{
record_unwind_protect (cancel_hourglass_unwind, Qnil);
start_hourglass ();
}
#endif
nonundocount = 0;
if (NILP (current_kboard->Vprefix_arg))
Fundo_boundary ();
Fcommand_execute (Vthis_command, Qnil, Qnil, Qnil);
nonundocount = 0;
if (NILP (current_kboard->Vprefix_arg))
Fundo_boundary ();
Fcommand_execute (Vthis_command, Qnil, Qnil, Qnil);
#ifdef HAVE_X_WINDOWS
/* Do not check display_hourglass_p here, because
@ -1742,8 +1757,9 @@ command_loop_1 ()
But don't cancel the hourglass within a macro
just because a command in the macro finishes. */
if (NILP (Vexecuting_macro))
cancel_hourglass ();
unbind_to (scount, Qnil);
#endif
}
}
directly_done: ;
current_kboard->Vlast_prefix_arg = Vcurrent_prefix_arg;