# HG changeset patch # User Jason Rumney # Date 1205946203 0 # Node ID 120331bdb39718942243f5e3b23b67f986701219 # Parent e54658ddb61888b47ccdad8eccc8b62c0bdb654b * w32fns.c (hourglass_timer, hourglass_hwnd): New variables. (syms_of_w32fns): Initialize them. (HOURGLASS_ID): New constant. (x_window_to_frame): Don't check hourglass_window. (w32_wnd_proc) : Handle hourglass_timer. (w32_wnd_proc) : Set pending hourglass cursor. (w32_wnd_proc) : Set the hourglass or current cursor. (w32_wnd_proc) : Set frame's current_cursor. Only change the cursor if hourglass is not active. (Fx_create_frame): Initialize frame's current_cursor. (hourglass_atimer): Remove. (hourglass_started): New function. (start_hourglass, cancel_hourglass, hide_hourglass): Adapt to w32. (show_hourglass): Adapt to w32, changing argument to frame. * w32term.h (struct w32_output): Remove hourglass_window. Add current_cursor. * eval.c (call_debugger, Fsignal): * keyboard.c (recursive_edit_1, cmd_error, Ftop_level) (command_loop_1, Fread_key_sequence, Fread_key_sequence_vector) (Fexecute_extended_command, cancel_hourglass_unwind): * minibuf.c (read_minibuf): * fns.c (Fy_or_n_p): Enable hourglass when HAVE_WINDOW_SYSTEM. diff -r e54658ddb618 -r 120331bdb397 src/keyboard.c --- a/src/keyboard.c Wed Mar 19 17:02:46 2008 +0000 +++ b/src/keyboard.c Wed Mar 19 17:03:23 2008 +0000 @@ -935,7 +935,7 @@ specbind (Qstandard_input, Qt); } -#ifdef HAVE_X_WINDOWS +#ifdef HAVE_WINDOW_SYSTEM /* The command loop has started an hourglass timer, so we have to cancel it here, otherwise it will fire because the recursive edit can take some time. Do not check for display_hourglass_p here, @@ -1220,7 +1220,7 @@ Lisp_Object old_level, old_length; char macroerror[50]; -#ifdef HAVE_X_WINDOWS +#ifdef HAVE_WINDOW_SYSTEM if (display_hourglass_p) cancel_hourglass (); #endif @@ -1396,7 +1396,7 @@ doc: /* Exit all recursive editing levels. */) () { -#ifdef HAVE_X_WINDOWS +#ifdef HAVE_WINDOW_SYSTEM if (display_hourglass_p) cancel_hourglass (); #endif @@ -1519,7 +1519,7 @@ /* Cancel hourglass from protect_unwind. ARG is not used. */ -#ifdef HAVE_X_WINDOWS +#ifdef HAVE_WINDOW_SYSTEM static Lisp_Object cancel_hourglass_unwind (arg) Lisp_Object arg; @@ -1891,7 +1891,7 @@ /* Here for a command that isn't executed directly */ { -#ifdef HAVE_X_WINDOWS +#ifdef HAVE_WINDOW_SYSTEM int scount = SPECPDL_INDEX (); if (display_hourglass_p @@ -1907,7 +1907,7 @@ Fundo_boundary (); Fcommand_execute (Vthis_command, Qnil, Qnil, Qnil); -#ifdef HAVE_X_WINDOWS +#ifdef HAVE_WINDOW_SYSTEM /* Do not check display_hourglass_p here, because Fcommand_execute could change it, but we should cancel hourglass cursor anyway. @@ -10273,7 +10273,7 @@ this_single_command_key_start = 0; } -#ifdef HAVE_X_WINDOWS +#ifdef HAVE_WINDOW_SYSTEM if (display_hourglass_p) cancel_hourglass (); #endif @@ -10285,7 +10285,7 @@ #if 0 /* The following is fine for code reading a key sequence and then proceeding with a lenghty computation, but it's not good for code reading keys in a loop, like an input method. */ -#ifdef HAVE_X_WINDOWS +#ifdef HAVE_WINDOW_SYSTEM if (display_hourglass_p) start_hourglass (); #endif @@ -10333,7 +10333,7 @@ this_single_command_key_start = 0; } -#ifdef HAVE_X_WINDOWS +#ifdef HAVE_WINDOW_SYSTEM if (display_hourglass_p) cancel_hourglass (); #endif @@ -10342,7 +10342,7 @@ prompt, ! NILP (dont_downcase_last), ! NILP (can_return_switch_frame), 0); -#ifdef HAVE_X_WINDOWS +#ifdef HAVE_WINDOW_SYSTEM if (display_hourglass_p) start_hourglass (); #endif @@ -10465,7 +10465,7 @@ Lisp_Object saved_keys, saved_last_point_position_buffer; Lisp_Object bindings, value; struct gcpro gcpro1, gcpro2, gcpro3; -#ifdef HAVE_X_WINDOWS +#ifdef HAVE_WINDOW_SYSTEM /* The call to Fcompleting_read wil start and cancel the hourglass, but if the hourglass was already scheduled, this means that no hourglass will be shown for the actual M-x command itself. @@ -10505,7 +10505,7 @@ Qt, Qnil, Qextended_command_history, Qnil, Qnil); -#ifdef HAVE_X_WINDOWS +#ifdef HAVE_WINDOW_SYSTEM if (hstarted) start_hourglass (); #endif