* keyboard.c (cancel_hourglass_unwind): New function.
(command_loop_1): Cancel hourglass with unwind-protect.
This commit is contained in:
parent
60a653f1cd
commit
0af912f093
2 changed files with 29 additions and 8 deletions
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue