diff options
| author | Jan Djärv | 2005-03-10 19:08:31 +0000 |
|---|---|---|
| committer | Jan Djärv | 2005-03-10 19:08:31 +0000 |
| commit | a25e44b279d340849eeb55d1209e5409b664ad04 (patch) | |
| tree | 55e1464e08147cff7eb0b13480b28282d0a486fb /src | |
| parent | 83c31c8df0ee4f1bb4141a8917e20e3ca9ad5630 (diff) | |
| download | emacs-a25e44b279d340849eeb55d1209e5409b664ad04.tar.gz emacs-a25e44b279d340849eeb55d1209e5409b664ad04.zip | |
* keyboard.c (Fexecute_extended_command): Restart hourglass
after call to Fcompleting_read if already started.
Diffstat (limited to 'src')
| -rw-r--r-- | src/keyboard.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/keyboard.c b/src/keyboard.c index f507ea348f1..a1c3334bbb8 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -1350,6 +1350,11 @@ DEFUN ("top-level", Ftop_level, Stop_level, 0, 0, "", | |||
| 1350 | cancel_hourglass (); | 1350 | cancel_hourglass (); |
| 1351 | #endif | 1351 | #endif |
| 1352 | 1352 | ||
| 1353 | /* Unblock input if we enter with input blocked. This may happen if | ||
| 1354 | redisplay traps e.g. during tool-bar update with input blocked. */ | ||
| 1355 | while (INPUT_BLOCKED_P) | ||
| 1356 | UNBLOCK_INPUT; | ||
| 1357 | |||
| 1353 | return Fthrow (Qtop_level, Qnil); | 1358 | return Fthrow (Qtop_level, Qnil); |
| 1354 | } | 1359 | } |
| 1355 | 1360 | ||
| @@ -9711,6 +9716,15 @@ DEFUN ("execute-extended-command", Fexecute_extended_command, Sexecute_extended_ | |||
| 9711 | Lisp_Object saved_keys, saved_last_point_position_buffer; | 9716 | Lisp_Object saved_keys, saved_last_point_position_buffer; |
| 9712 | Lisp_Object bindings, value; | 9717 | Lisp_Object bindings, value; |
| 9713 | struct gcpro gcpro1, gcpro2, gcpro3; | 9718 | struct gcpro gcpro1, gcpro2, gcpro3; |
| 9719 | #ifdef HAVE_X_WINDOWS | ||
| 9720 | /* The call to Fcompleting_read wil start and cancel the hourglass, | ||
| 9721 | but if the hourglass was already scheduled, this means that no | ||
| 9722 | hourglass will be shown for the actual M-x command itself. | ||
| 9723 | So we restart it if it is already scheduled. Note that checking | ||
| 9724 | hourglass_shown_p is not enough, normally the hourglass is not shown, | ||
| 9725 | just scheduled to be shown. */ | ||
| 9726 | int hstarted = hourglass_started (); | ||
| 9727 | #endif | ||
| 9714 | 9728 | ||
| 9715 | saved_keys = Fvector (this_command_key_count, | 9729 | saved_keys = Fvector (this_command_key_count, |
| 9716 | XVECTOR (this_command_keys)->contents); | 9730 | XVECTOR (this_command_keys)->contents); |
| @@ -9742,6 +9756,10 @@ DEFUN ("execute-extended-command", Fexecute_extended_command, Sexecute_extended_ | |||
| 9742 | Qt, Qnil, Qextended_command_history, Qnil, | 9756 | Qt, Qnil, Qextended_command_history, Qnil, |
| 9743 | Qnil); | 9757 | Qnil); |
| 9744 | 9758 | ||
| 9759 | #ifdef HAVE_X_WINDOWS | ||
| 9760 | if (hstarted) start_hourglass (); | ||
| 9761 | #endif | ||
| 9762 | |||
| 9745 | if (STRINGP (function) && SCHARS (function) == 0) | 9763 | if (STRINGP (function) && SCHARS (function) == 0) |
| 9746 | error ("No command name given"); | 9764 | error ("No command name given"); |
| 9747 | 9765 | ||