aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGerd Moellmann2001-02-21 13:55:14 +0000
committerGerd Moellmann2001-02-21 13:55:14 +0000
commit0af913d7b6948157d69db11d5f9c80dc5d92ee3f (patch)
treec1968add8575583a16ff356819ff89bd04943fc4 /src
parent2533c408d26998afb7f2a726962c4b2eeaa10f11 (diff)
downloademacs-0af913d7b6948157d69db11d5f9c80dc5d92ee3f.tar.gz
emacs-0af913d7b6948157d69db11d5f9c80dc5d92ee3f.zip
Rename everything containing *busy_cursor* and similar
to *hourglass*. (syms_of_w32fns): Rename x-busy-pointer-shape to x-hourglass-pointer-shape, display-busy-cursor to display-hourglass, busy-cursor-delay to hourglass-delay.
Diffstat (limited to 'src')
-rw-r--r--src/w32fns.c162
-rw-r--r--src/xfns.c168
2 files changed, 167 insertions, 163 deletions
diff --git a/src/w32fns.c b/src/w32fns.c
index c36823cc229..1ed2533e037 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -146,15 +146,15 @@ Lisp_Object Vx_resource_name;
146/* Non nil if no window manager is in use. */ 146/* Non nil if no window manager is in use. */
147Lisp_Object Vx_no_window_manager; 147Lisp_Object Vx_no_window_manager;
148 148
149/* Non-zero means we're allowed to display a busy cursor. */ 149/* Non-zero means we're allowed to display a hourglass pointer. */
150 150
151int display_busy_cursor_p; 151int display_hourglass_p;
152 152
153/* The background and shape of the mouse pointer, and shape when not 153/* The background and shape of the mouse pointer, and shape when not
154 over text or in the modeline. */ 154 over text or in the modeline. */
155 155
156Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape; 156Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape;
157Lisp_Object Vx_busy_pointer_shape, Vx_window_horizontal_drag_shape; 157Lisp_Object Vx_hourglass_pointer_shape, Vx_window_horizontal_drag_shape;
158 158
159/* The shape when over mouse-sensitive text. */ 159/* The shape when over mouse-sensitive text. */
160 160
@@ -395,7 +395,7 @@ x_window_to_frame (dpyinfo, wdesc)
395 f = XFRAME (frame); 395 f = XFRAME (frame);
396 if (!FRAME_W32_P (f) || FRAME_W32_DISPLAY_INFO (f) != dpyinfo) 396 if (!FRAME_W32_P (f) || FRAME_W32_DISPLAY_INFO (f) != dpyinfo)
397 continue; 397 continue;
398 if (f->output_data.w32->busy_window == wdesc) 398 if (f->output_data.w32->hourglass_window == wdesc)
399 return f; 399 return f;
400 400
401 /* TODO: Check tooltips when supported. */ 401 /* TODO: Check tooltips when supported. */
@@ -2031,14 +2031,14 @@ x_set_mouse_color (f, arg, oldval)
2031 nontext_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f), XC_left_ptr); 2031 nontext_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f), XC_left_ptr);
2032 x_check_errors (FRAME_W32_DISPLAY (f), "bad nontext pointer cursor: %s"); 2032 x_check_errors (FRAME_W32_DISPLAY (f), "bad nontext pointer cursor: %s");
2033 2033
2034 if (!EQ (Qnil, Vx_busy_pointer_shape)) 2034 if (!EQ (Qnil, Vx_hourglass_pointer_shape))
2035 { 2035 {
2036 CHECK_NUMBER (Vx_busy_pointer_shape, 0); 2036 CHECK_NUMBER (Vx_hourglass_pointer_shape, 0);
2037 busy_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f), 2037 hourglass_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f),
2038 XINT (Vx_busy_pointer_shape)); 2038 XINT (Vx_hourglass_pointer_shape));
2039 } 2039 }
2040 else 2040 else
2041 busy_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f), XC_watch); 2041 hourglass_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f), XC_watch);
2042 x_check_errors (FRAME_W32_DISPLAY (f), "bad busy pointer cursor: %s"); 2042 x_check_errors (FRAME_W32_DISPLAY (f), "bad busy pointer cursor: %s");
2043 2043
2044 x_check_errors (FRAME_W32_DISPLAY (f), "bad nontext pointer cursor: %s"); 2044 x_check_errors (FRAME_W32_DISPLAY (f), "bad nontext pointer cursor: %s");
@@ -2098,7 +2098,7 @@ x_set_mouse_color (f, arg, oldval)
2098 &fore_color, &back_color); 2098 &fore_color, &back_color);
2099 XRecolorCursor (FRAME_W32_DISPLAY (f), cross_cursor, 2099 XRecolorCursor (FRAME_W32_DISPLAY (f), cross_cursor,
2100 &fore_color, &back_color); 2100 &fore_color, &back_color);
2101 XRecolorCursor (FRAME_W32_DISPLAY (f), busy_cursor, 2101 XRecolorCursor (FRAME_W32_DISPLAY (f), hourglass_cursor,
2102 &fore_color, &back_color); 2102 &fore_color, &back_color);
2103 } 2103 }
2104 2104
@@ -2114,10 +2114,10 @@ x_set_mouse_color (f, arg, oldval)
2114 XFreeCursor (FRAME_W32_DISPLAY (f), f->output_data.w32->nontext_cursor); 2114 XFreeCursor (FRAME_W32_DISPLAY (f), f->output_data.w32->nontext_cursor);
2115 f->output_data.w32->nontext_cursor = nontext_cursor; 2115 f->output_data.w32->nontext_cursor = nontext_cursor;
2116 2116
2117 if (busy_cursor != f->output_data.w32->busy_cursor 2117 if (hourglass_cursor != f->output_data.w32->hourglass_cursor
2118 && f->output_data.w32->busy_cursor != 0) 2118 && f->output_data.w32->hourglass_cursor != 0)
2119 XFreeCursor (FRAME_W32_DISPLAY (f), f->output_data.w32->busy_cursor); 2119 XFreeCursor (FRAME_W32_DISPLAY (f), f->output_data.w32->hourglass_cursor);
2120 f->output_data.w32->busy_cursor = busy_cursor; 2120 f->output_data.w32->hourglass_cursor = hourglass_cursor;
2121 2121
2122 if (mode_cursor != f->output_data.w32->modeline_cursor 2122 if (mode_cursor != f->output_data.w32->modeline_cursor
2123 && f->output_data.w32->modeline_cursor != 0) 2123 && f->output_data.w32->modeline_cursor != 0)
@@ -12132,97 +12132,97 @@ value.")
12132 ***********************************************************************/ 12132 ***********************************************************************/
12133 12133
12134/* If non-null, an asynchronous timer that, when it expires, displays 12134/* If non-null, an asynchronous timer that, when it expires, displays
12135 a busy cursor on all frames. */ 12135 an hourglass cursor on all frames. */
12136 12136
12137static struct atimer *busy_cursor_atimer; 12137static struct atimer *hourglass_atimer;
12138 12138
12139/* Non-zero means a busy cursor is currently shown. */ 12139/* Non-zero means an hourglass cursor is currently shown. */
12140 12140
12141static int busy_cursor_shown_p; 12141static int hourglass_shown_p;
12142 12142
12143/* Number of seconds to wait before displaying a busy cursor. */ 12143/* Number of seconds to wait before displaying an hourglass cursor. */
12144 12144
12145static Lisp_Object Vbusy_cursor_delay; 12145static Lisp_Object Vhourglass_delay;
12146 12146
12147/* Default number of seconds to wait before displaying a busy 12147/* Default number of seconds to wait before displaying an hourglass
12148 cursor. */ 12148 cursor. */
12149 12149
12150#define DEFAULT_BUSY_CURSOR_DELAY 1 12150#define DEFAULT_HOURGLASS_DELAY 1
12151 12151
12152/* Function prototypes. */ 12152/* Function prototypes. */
12153 12153
12154static void show_busy_cursor P_ ((struct atimer *)); 12154static void show_hourglass P_ ((struct atimer *));
12155static void hide_busy_cursor P_ ((void)); 12155static void hide_hourglass P_ ((void));
12156 12156
12157 12157
12158/* Cancel a currently active busy-cursor timer, and start a new one. */ 12158/* Cancel a currently active hourglass timer, and start a new one. */
12159 12159
12160void 12160void
12161start_busy_cursor () 12161start_hourglass ()
12162{ 12162{
12163#if 0 /* TODO: cursor shape changes. */ 12163#if 0 /* TODO: cursor shape changes. */
12164 EMACS_TIME delay; 12164 EMACS_TIME delay;
12165 int secs, usecs = 0; 12165 int secs, usecs = 0;
12166 12166
12167 cancel_busy_cursor (); 12167 cancel_hourglass ();
12168 12168
12169 if (INTEGERP (Vbusy_cursor_delay) 12169 if (INTEGERP (Vhourglass_delay)
12170 && XINT (Vbusy_cursor_delay) > 0) 12170 && XINT (Vhourglass_delay) > 0)
12171 secs = XFASTINT (Vbusy_cursor_delay); 12171 secs = XFASTINT (Vhourglass_delay);
12172 else if (FLOATP (Vbusy_cursor_delay) 12172 else if (FLOATP (Vhourglass_delay)
12173 && XFLOAT_DATA (Vbusy_cursor_delay) > 0) 12173 && XFLOAT_DATA (Vhourglass_delay) > 0)
12174 { 12174 {
12175 Lisp_Object tem; 12175 Lisp_Object tem;
12176 tem = Ftruncate (Vbusy_cursor_delay, Qnil); 12176 tem = Ftruncate (Vhourglass_delay, Qnil);
12177 secs = XFASTINT (tem); 12177 secs = XFASTINT (tem);
12178 usecs = (XFLOAT_DATA (Vbusy_cursor_delay) - secs) * 1000000; 12178 usecs = (XFLOAT_DATA (Vhourglass_delay) - secs) * 1000000;
12179 } 12179 }
12180 else 12180 else
12181 secs = DEFAULT_BUSY_CURSOR_DELAY; 12181 secs = DEFAULT_HOURGLASS_DELAY;
12182 12182
12183 EMACS_SET_SECS_USECS (delay, secs, usecs); 12183 EMACS_SET_SECS_USECS (delay, secs, usecs);
12184 busy_cursor_atimer = start_atimer (ATIMER_RELATIVE, delay, 12184 hourglass_atimer = start_atimer (ATIMER_RELATIVE, delay,
12185 show_busy_cursor, NULL); 12185 show_hourglass, NULL);
12186#endif 12186#endif
12187} 12187}
12188 12188
12189 12189
12190/* Cancel the busy cursor timer if active, hide a busy cursor if 12190/* Cancel the hourglass cursor timer if active, hide an hourglass
12191 shown. */ 12191 cursor if shown. */
12192 12192
12193void 12193void
12194cancel_busy_cursor () 12194cancel_hourglass ()
12195{ 12195{
12196 if (busy_cursor_atimer) 12196 if (hourglass_atimer)
12197 { 12197 {
12198 cancel_atimer (busy_cursor_atimer); 12198 cancel_atimer (hourglass_atimer);
12199 busy_cursor_atimer = NULL; 12199 hourglass_atimer = NULL;
12200 } 12200 }
12201 12201
12202 if (busy_cursor_shown_p) 12202 if (hourglass_shown_p)
12203 hide_busy_cursor (); 12203 hide_hourglass ();
12204} 12204}
12205 12205
12206 12206
12207/* Timer function of busy_cursor_atimer. TIMER is equal to 12207/* Timer function of hourglass_atimer. TIMER is equal to
12208 busy_cursor_atimer. 12208 hourglass_atimer.
12209 12209
12210 Display a busy cursor on all frames by mapping the frames' 12210 Display an hourglass cursor on all frames by mapping the frames'
12211 busy_window. Set the busy_p flag in the frames' output_data.x 12211 hourglass_window. Set the hourglass_p flag in the frames'
12212 structure to indicate that a busy cursor is shown on the 12212 output_data.x structure to indicate that an hourglass cursor is
12213 frames. */ 12213 shown on the frames. */
12214 12214
12215static void 12215static void
12216show_busy_cursor (timer) 12216show_hourglass (timer)
12217 struct atimer *timer; 12217 struct atimer *timer;
12218{ 12218{
12219#if 0 /* TODO: cursor shape changes. */ 12219#if 0 /* TODO: cursor shape changes. */
12220 /* The timer implementation will cancel this timer automatically 12220 /* The timer implementation will cancel this timer automatically
12221 after this function has run. Set busy_cursor_atimer to null 12221 after this function has run. Set hourglass_atimer to null
12222 so that we know the timer doesn't have to be canceled. */ 12222 so that we know the timer doesn't have to be canceled. */
12223 busy_cursor_atimer = NULL; 12223 hourglass_atimer = NULL;
12224 12224
12225 if (!busy_cursor_shown_p) 12225 if (!hourglass_shown_p)
12226 { 12226 {
12227 Lisp_Object rest, frame; 12227 Lisp_Object rest, frame;
12228 12228
@@ -12233,16 +12233,16 @@ show_busy_cursor (timer)
12233 { 12233 {
12234 struct frame *f = XFRAME (frame); 12234 struct frame *f = XFRAME (frame);
12235 12235
12236 f->output_data.w32->busy_p = 1; 12236 f->output_data.w32->hourglass_p = 1;
12237 12237
12238 if (!f->output_data.w32->busy_window) 12238 if (!f->output_data.w32->hourglass_window)
12239 { 12239 {
12240 unsigned long mask = CWCursor; 12240 unsigned long mask = CWCursor;
12241 XSetWindowAttributes attrs; 12241 XSetWindowAttributes attrs;
12242 12242
12243 attrs.cursor = f->output_data.w32->busy_cursor; 12243 attrs.cursor = f->output_data.w32->hourglass_cursor;
12244 12244
12245 f->output_data.w32->busy_window 12245 f->output_data.w32->hourglass_window
12246 = XCreateWindow (FRAME_X_DISPLAY (f), 12246 = XCreateWindow (FRAME_X_DISPLAY (f),
12247 FRAME_OUTER_WINDOW (f), 12247 FRAME_OUTER_WINDOW (f),
12248 0, 0, 32000, 32000, 0, 0, 12248 0, 0, 32000, 32000, 0, 0,
@@ -12251,24 +12251,25 @@ show_busy_cursor (timer)
12251 mask, &attrs); 12251 mask, &attrs);
12252 } 12252 }
12253 12253
12254 XMapRaised (FRAME_X_DISPLAY (f), f->output_data.w32->busy_window); 12254 XMapRaised (FRAME_X_DISPLAY (f),
12255 f->output_data.w32->hourglass_window);
12255 XFlush (FRAME_X_DISPLAY (f)); 12256 XFlush (FRAME_X_DISPLAY (f));
12256 } 12257 }
12257 12258
12258 busy_cursor_shown_p = 1; 12259 hourglass_shown_p = 1;
12259 UNBLOCK_INPUT; 12260 UNBLOCK_INPUT;
12260 } 12261 }
12261#endif 12262#endif
12262} 12263}
12263 12264
12264 12265
12265/* Hide the busy cursor on all frames, if it is currently shown. */ 12266/* Hide the hourglass cursor on all frames, if it is currently shown. */
12266 12267
12267static void 12268static void
12268hide_busy_cursor () 12269hide_hourglass ()
12269{ 12270{
12270#if 0 /* TODO: cursor shape changes. */ 12271#if 0 /* TODO: cursor shape changes. */
12271 if (busy_cursor_shown_p) 12272 if (hourglass_shown_p)
12272 { 12273 {
12273 Lisp_Object rest, frame; 12274 Lisp_Object rest, frame;
12274 12275
@@ -12279,17 +12280,18 @@ hide_busy_cursor ()
12279 12280
12280 if (FRAME_W32_P (f) 12281 if (FRAME_W32_P (f)
12281 /* Watch out for newly created frames. */ 12282 /* Watch out for newly created frames. */
12282 && f->output_data.x->busy_window) 12283 && f->output_data.x->hourglass_window)
12283 { 12284 {
12284 XUnmapWindow (FRAME_X_DISPLAY (f), f->output_data.x->busy_window); 12285 XUnmapWindow (FRAME_X_DISPLAY (f),
12285 /* Sync here because XTread_socket looks at the busy_p flag 12286 f->output_data.x->hourglass_window);
12286 that is reset to zero below. */ 12287 /* Sync here because XTread_socket looks at the
12288 hourglass_p flag that is reset to zero below. */
12287 XSync (FRAME_X_DISPLAY (f), False); 12289 XSync (FRAME_X_DISPLAY (f), False);
12288 f->output_data.x->busy_p = 0; 12290 f->output_data.x->hourglass_p = 0;
12289 } 12291 }
12290 } 12292 }
12291 12293
12292 busy_cursor_shown_p = 0; 12294 hourglass_shown_p = 0;
12293 UNBLOCK_INPUT; 12295 UNBLOCK_INPUT;
12294 } 12296 }
12295#endif 12297#endif
@@ -13637,20 +13639,20 @@ switches, if present.");
13637 13639
13638 Vx_mode_pointer_shape = Qnil; 13640 Vx_mode_pointer_shape = Qnil;
13639 13641
13640 DEFVAR_LISP ("x-busy-pointer-shape", &Vx_busy_pointer_shape, 13642 DEFVAR_LISP ("x-hourglass-pointer-shape", &Vx_hourglass_pointer_shape,
13641 "The shape of the pointer when Emacs is busy.\n\ 13643 "The shape of the pointer when Emacs is busy.\n\
13642This variable takes effect when you create a new frame\n\ 13644This variable takes effect when you create a new frame\n\
13643or when you set the mouse color."); 13645or when you set the mouse color.");
13644 Vx_busy_pointer_shape = Qnil; 13646 Vx_hourglass_pointer_shape = Qnil;
13645 13647
13646 DEFVAR_BOOL ("display-busy-cursor", &display_busy_cursor_p, 13648 DEFVAR_BOOL ("display-hourglass", &display_hourglass_p,
13647 "Non-zero means Emacs displays a busy cursor on window systems."); 13649 "Non-zero means Emacs displays an hourglass pointer on window systems.");
13648 display_busy_cursor_p = 1; 13650 display_hourglass_p = 1;
13649 13651
13650 DEFVAR_LISP ("busy-cursor-delay", &Vbusy_cursor_delay, 13652 DEFVAR_LISP ("hourglass-delay", &Vhourglass_delay,
13651 "*Seconds to wait before displaying a busy-cursor.\n\ 13653 "*Seconds to wait before displaying an hourglass pointer.\n\
13652Value must be an integer or float."); 13654Value must be an integer or float.");
13653 Vbusy_cursor_delay = make_number (DEFAULT_BUSY_CURSOR_DELAY); 13655 Vhourglass_delay = make_number (DEFAULT_HOURGLASS_DELAY);
13654 13656
13655 DEFVAR_LISP ("x-sensitive-text-pointer-shape", 13657 DEFVAR_LISP ("x-sensitive-text-pointer-shape",
13656 &Vx_sensitive_text_pointer_shape, 13658 &Vx_sensitive_text_pointer_shape,
@@ -13933,8 +13935,8 @@ versions of Windows) characters.");
13933#endif 13935#endif
13934#endif /* TODO */ 13936#endif /* TODO */
13935 13937
13936 busy_cursor_atimer = NULL; 13938 hourglass_atimer = NULL;
13937 busy_cursor_shown_p = 0; 13939 hourglass_shown_p = 0;
13938#ifdef TODO /* Tooltip support not complete. */ 13940#ifdef TODO /* Tooltip support not complete. */
13939 defsubr (&Sx_show_tip); 13941 defsubr (&Sx_show_tip);
13940 defsubr (&Sx_hide_tip); 13942 defsubr (&Sx_hide_tip);
diff --git a/src/xfns.c b/src/xfns.c
index 6c9b40a3297..2460e16bbaf 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -135,15 +135,15 @@ Lisp_Object Vx_resource_name;
135 135
136Lisp_Object Vx_resource_class; 136Lisp_Object Vx_resource_class;
137 137
138/* Non-zero means we're allowed to display a busy cursor. */ 138/* Non-zero means we're allowed to display an hourglass cursor. */
139 139
140int display_busy_cursor_p; 140int display_hourglass_p;
141 141
142/* The background and shape of the mouse pointer, and shape when not 142/* The background and shape of the mouse pointer, and shape when not
143 over text or in the modeline. */ 143 over text or in the modeline. */
144 144
145Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape; 145Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape;
146Lisp_Object Vx_busy_pointer_shape; 146Lisp_Object Vx_hourglass_pointer_shape;
147 147
148/* The shape when over mouse-sensitive text. */ 148/* The shape when over mouse-sensitive text. */
149 149
@@ -321,7 +321,7 @@ x_window_to_frame (dpyinfo, wdesc)
321 f = XFRAME (frame); 321 f = XFRAME (frame);
322 if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo) 322 if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo)
323 continue; 323 continue;
324 if (f->output_data.x->busy_window == wdesc) 324 if (f->output_data.x->hourglass_window == wdesc)
325 return f; 325 return f;
326#ifdef USE_X_TOOLKIT 326#ifdef USE_X_TOOLKIT
327 if ((f->output_data.x->edit_widget 327 if ((f->output_data.x->edit_widget
@@ -365,7 +365,7 @@ x_any_window_to_frame (dpyinfo, wdesc)
365 { 365 {
366 /* This frame matches if the window is any of its widgets. */ 366 /* This frame matches if the window is any of its widgets. */
367 x = f->output_data.x; 367 x = f->output_data.x;
368 if (x->busy_window == wdesc) 368 if (x->hourglass_window == wdesc)
369 found = f; 369 found = f;
370 else if (x->widget) 370 else if (x->widget)
371 { 371 {
@@ -407,7 +407,7 @@ x_non_menubar_window_to_frame (dpyinfo, wdesc)
407 continue; 407 continue;
408 x = f->output_data.x; 408 x = f->output_data.x;
409 /* This frame matches if the window is any of its widgets. */ 409 /* This frame matches if the window is any of its widgets. */
410 if (x->busy_window == wdesc) 410 if (x->hourglass_window == wdesc)
411 return f; 411 return f;
412 else if (x->widget) 412 else if (x->widget)
413 { 413 {
@@ -1402,7 +1402,7 @@ x_set_mouse_color (f, arg, oldval)
1402 Lisp_Object arg, oldval; 1402 Lisp_Object arg, oldval;
1403{ 1403{
1404 Cursor cursor, nontext_cursor, mode_cursor, cross_cursor; 1404 Cursor cursor, nontext_cursor, mode_cursor, cross_cursor;
1405 Cursor busy_cursor, horizontal_drag_cursor; 1405 Cursor hourglass_cursor, horizontal_drag_cursor;
1406 int count; 1406 int count;
1407 unsigned long pixel = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f)); 1407 unsigned long pixel = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f));
1408 unsigned long mask_color = f->output_data.x->background_pixel; 1408 unsigned long mask_color = f->output_data.x->background_pixel;
@@ -1442,15 +1442,15 @@ x_set_mouse_color (f, arg, oldval)
1442 nontext_cursor = XCreateFontCursor (FRAME_X_DISPLAY (f), XC_left_ptr); 1442 nontext_cursor = XCreateFontCursor (FRAME_X_DISPLAY (f), XC_left_ptr);
1443 x_check_errors (FRAME_X_DISPLAY (f), "bad nontext pointer cursor: %s"); 1443 x_check_errors (FRAME_X_DISPLAY (f), "bad nontext pointer cursor: %s");
1444 1444
1445 if (!EQ (Qnil, Vx_busy_pointer_shape)) 1445 if (!EQ (Qnil, Vx_hourglass_pointer_shape))
1446 { 1446 {
1447 CHECK_NUMBER (Vx_busy_pointer_shape, 0); 1447 CHECK_NUMBER (Vx_hourglass_pointer_shape, 0);
1448 busy_cursor = XCreateFontCursor (FRAME_X_DISPLAY (f), 1448 hourglass_cursor = XCreateFontCursor (FRAME_X_DISPLAY (f),
1449 XINT (Vx_busy_pointer_shape)); 1449 XINT (Vx_hourglass_pointer_shape));
1450 } 1450 }
1451 else 1451 else
1452 busy_cursor = XCreateFontCursor (FRAME_X_DISPLAY (f), XC_watch); 1452 hourglass_cursor = XCreateFontCursor (FRAME_X_DISPLAY (f), XC_watch);
1453 x_check_errors (FRAME_X_DISPLAY (f), "bad busy pointer cursor: %s"); 1453 x_check_errors (FRAME_X_DISPLAY (f), "bad hourglass pointer cursor: %s");
1454 1454
1455 x_check_errors (FRAME_X_DISPLAY (f), "bad nontext pointer cursor: %s"); 1455 x_check_errors (FRAME_X_DISPLAY (f), "bad nontext pointer cursor: %s");
1456 if (!EQ (Qnil, Vx_mode_pointer_shape)) 1456 if (!EQ (Qnil, Vx_mode_pointer_shape))
@@ -1504,7 +1504,7 @@ x_set_mouse_color (f, arg, oldval)
1504 &fore_color, &back_color); 1504 &fore_color, &back_color);
1505 XRecolorCursor (FRAME_X_DISPLAY (f), cross_cursor, 1505 XRecolorCursor (FRAME_X_DISPLAY (f), cross_cursor,
1506 &fore_color, &back_color); 1506 &fore_color, &back_color);
1507 XRecolorCursor (FRAME_X_DISPLAY (f), busy_cursor, 1507 XRecolorCursor (FRAME_X_DISPLAY (f), hourglass_cursor,
1508 &fore_color, &back_color); 1508 &fore_color, &back_color);
1509 XRecolorCursor (FRAME_X_DISPLAY (f), horizontal_drag_cursor, 1509 XRecolorCursor (FRAME_X_DISPLAY (f), horizontal_drag_cursor,
1510 &fore_color, &back_color); 1510 &fore_color, &back_color);
@@ -1523,10 +1523,10 @@ x_set_mouse_color (f, arg, oldval)
1523 XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->nontext_cursor); 1523 XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->nontext_cursor);
1524 f->output_data.x->nontext_cursor = nontext_cursor; 1524 f->output_data.x->nontext_cursor = nontext_cursor;
1525 1525
1526 if (busy_cursor != f->output_data.x->busy_cursor 1526 if (hourglass_cursor != f->output_data.x->hourglass_cursor
1527 && f->output_data.x->busy_cursor != 0) 1527 && f->output_data.x->hourglass_cursor != 0)
1528 XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->busy_cursor); 1528 XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->hourglass_cursor);
1529 f->output_data.x->busy_cursor = busy_cursor; 1529 f->output_data.x->hourglass_cursor = hourglass_cursor;
1530 1530
1531 if (mode_cursor != f->output_data.x->modeline_cursor 1531 if (mode_cursor != f->output_data.x->modeline_cursor
1532 && f->output_data.x->modeline_cursor != 0) 1532 && f->output_data.x->modeline_cursor != 0)
@@ -10188,94 +10188,94 @@ value.")
10188 ***********************************************************************/ 10188 ***********************************************************************/
10189 10189
10190/* If non-null, an asynchronous timer that, when it expires, displays 10190/* If non-null, an asynchronous timer that, when it expires, displays
10191 a busy cursor on all frames. */ 10191 an hourglass cursor on all frames. */
10192 10192
10193static struct atimer *busy_cursor_atimer; 10193static struct atimer *hourglass_atimer;
10194 10194
10195/* Non-zero means a busy cursor is currently shown. */ 10195/* Non-zero means an hourglass cursor is currently shown. */
10196 10196
10197static int busy_cursor_shown_p; 10197static int hourglass_shown_p;
10198 10198
10199/* Number of seconds to wait before displaying a busy cursor. */ 10199/* Number of seconds to wait before displaying an hourglass cursor. */
10200 10200
10201static Lisp_Object Vbusy_cursor_delay; 10201static Lisp_Object Vhourglass_delay;
10202 10202
10203/* Default number of seconds to wait before displaying a busy 10203/* Default number of seconds to wait before displaying an hourglass
10204 cursor. */ 10204 cursor. */
10205 10205
10206#define DEFAULT_BUSY_CURSOR_DELAY 1 10206#define DEFAULT_HOURGLASS_DELAY 1
10207 10207
10208/* Function prototypes. */ 10208/* Function prototypes. */
10209 10209
10210static void show_busy_cursor P_ ((struct atimer *)); 10210static void show_hourglass P_ ((struct atimer *));
10211static void hide_busy_cursor P_ ((void)); 10211static void hide_hourglass P_ ((void));
10212 10212
10213 10213
10214/* Cancel a currently active busy-cursor timer, and start a new one. */ 10214/* Cancel a currently active hourglass timer, and start a new one. */
10215 10215
10216void 10216void
10217start_busy_cursor () 10217start_hourglass ()
10218{ 10218{
10219 EMACS_TIME delay; 10219 EMACS_TIME delay;
10220 int secs, usecs = 0; 10220 int secs, usecs = 0;
10221 10221
10222 cancel_busy_cursor (); 10222 cancel_hourglass ();
10223 10223
10224 if (INTEGERP (Vbusy_cursor_delay) 10224 if (INTEGERP (Vhourglass_delay)
10225 && XINT (Vbusy_cursor_delay) > 0) 10225 && XINT (Vhourglass_delay) > 0)
10226 secs = XFASTINT (Vbusy_cursor_delay); 10226 secs = XFASTINT (Vhourglass_delay);
10227 else if (FLOATP (Vbusy_cursor_delay) 10227 else if (FLOATP (Vhourglass_delay)
10228 && XFLOAT_DATA (Vbusy_cursor_delay) > 0) 10228 && XFLOAT_DATA (Vhourglass_delay) > 0)
10229 { 10229 {
10230 Lisp_Object tem; 10230 Lisp_Object tem;
10231 tem = Ftruncate (Vbusy_cursor_delay, Qnil); 10231 tem = Ftruncate (Vhourglass_delay, Qnil);
10232 secs = XFASTINT (tem); 10232 secs = XFASTINT (tem);
10233 usecs = (XFLOAT_DATA (Vbusy_cursor_delay) - secs) * 1000000; 10233 usecs = (XFLOAT_DATA (Vhourglass_delay) - secs) * 1000000;
10234 } 10234 }
10235 else 10235 else
10236 secs = DEFAULT_BUSY_CURSOR_DELAY; 10236 secs = DEFAULT_HOURGLASS_DELAY;
10237 10237
10238 EMACS_SET_SECS_USECS (delay, secs, usecs); 10238 EMACS_SET_SECS_USECS (delay, secs, usecs);
10239 busy_cursor_atimer = start_atimer (ATIMER_RELATIVE, delay, 10239 hourglass_atimer = start_atimer (ATIMER_RELATIVE, delay,
10240 show_busy_cursor, NULL); 10240 show_hourglass, NULL);
10241} 10241}
10242 10242
10243 10243
10244/* Cancel the busy cursor timer if active, hide a busy cursor if 10244/* Cancel the hourglass cursor timer if active, hide a busy cursor if
10245 shown. */ 10245 shown. */
10246 10246
10247void 10247void
10248cancel_busy_cursor () 10248cancel_hourglass ()
10249{ 10249{
10250 if (busy_cursor_atimer) 10250 if (hourglass_atimer)
10251 { 10251 {
10252 cancel_atimer (busy_cursor_atimer); 10252 cancel_atimer (hourglass_atimer);
10253 busy_cursor_atimer = NULL; 10253 hourglass_atimer = NULL;
10254 } 10254 }
10255 10255
10256 if (busy_cursor_shown_p) 10256 if (hourglass_shown_p)
10257 hide_busy_cursor (); 10257 hide_hourglass ();
10258} 10258}
10259 10259
10260 10260
10261/* Timer function of busy_cursor_atimer. TIMER is equal to 10261/* Timer function of hourglass_atimer. TIMER is equal to
10262 busy_cursor_atimer. 10262 hourglass_atimer.
10263 10263
10264 Display a busy cursor on all frames by mapping the frames' 10264 Display an hourglass pointer on all frames by mapping the frames'
10265 busy_window. Set the busy_p flag in the frames' output_data.x 10265 hourglass_window. Set the hourglass_p flag in the frames'
10266 structure to indicate that a busy cursor is shown on the 10266 output_data.x structure to indicate that an hourglass cursor is
10267 frames. */ 10267 shown on the frames. */
10268 10268
10269static void 10269static void
10270show_busy_cursor (timer) 10270show_hourglass (timer)
10271 struct atimer *timer; 10271 struct atimer *timer;
10272{ 10272{
10273 /* The timer implementation will cancel this timer automatically 10273 /* The timer implementation will cancel this timer automatically
10274 after this function has run. Set busy_cursor_atimer to null 10274 after this function has run. Set hourglass_atimer to null
10275 so that we know the timer doesn't have to be canceled. */ 10275 so that we know the timer doesn't have to be canceled. */
10276 busy_cursor_atimer = NULL; 10276 hourglass_atimer = NULL;
10277 10277
10278 if (!busy_cursor_shown_p) 10278 if (!hourglass_shown_p)
10279 { 10279 {
10280 Lisp_Object rest, frame; 10280 Lisp_Object rest, frame;
10281 10281
@@ -10295,16 +10295,16 @@ show_busy_cursor (timer)
10295 if (FRAME_OUTER_WINDOW (f)) 10295 if (FRAME_OUTER_WINDOW (f))
10296#endif 10296#endif
10297 { 10297 {
10298 f->output_data.x->busy_p = 1; 10298 f->output_data.x->hourglass_p = 1;
10299 10299
10300 if (!f->output_data.x->busy_window) 10300 if (!f->output_data.x->hourglass_window)
10301 { 10301 {
10302 unsigned long mask = CWCursor; 10302 unsigned long mask = CWCursor;
10303 XSetWindowAttributes attrs; 10303 XSetWindowAttributes attrs;
10304 10304
10305 attrs.cursor = f->output_data.x->busy_cursor; 10305 attrs.cursor = f->output_data.x->hourglass_cursor;
10306 10306
10307 f->output_data.x->busy_window 10307 f->output_data.x->hourglass_window
10308 = XCreateWindow (dpy, FRAME_OUTER_WINDOW (f), 10308 = XCreateWindow (dpy, FRAME_OUTER_WINDOW (f),
10309 0, 0, 32000, 32000, 0, 0, 10309 0, 0, 32000, 32000, 0, 0,
10310 InputOnly, 10310 InputOnly,
@@ -10312,24 +10312,25 @@ show_busy_cursor (timer)
10312 mask, &attrs); 10312 mask, &attrs);
10313 } 10313 }
10314 10314
10315 XMapRaised (dpy, f->output_data.x->busy_window); 10315 XMapRaised (dpy, f->output_data.x->hourglass_window);
10316 XFlush (dpy); 10316 XFlush (dpy);
10317 } 10317 }
10318 } 10318 }
10319 } 10319 }
10320 10320
10321 busy_cursor_shown_p = 1; 10321 hourglass_shown_p = 1;
10322 UNBLOCK_INPUT; 10322 UNBLOCK_INPUT;
10323 } 10323 }
10324} 10324}
10325 10325
10326 10326
10327/* Hide the busy cursor on all frames, if it is currently shown. */ 10327/* Hide the hourglass pointer on all frames, if it is currently
10328 shown. */
10328 10329
10329static void 10330static void
10330hide_busy_cursor () 10331hide_hourglass ()
10331{ 10332{
10332 if (busy_cursor_shown_p) 10333 if (hourglass_shown_p)
10333 { 10334 {
10334 Lisp_Object rest, frame; 10335 Lisp_Object rest, frame;
10335 10336
@@ -10340,17 +10341,18 @@ hide_busy_cursor ()
10340 10341
10341 if (FRAME_X_P (f) 10342 if (FRAME_X_P (f)
10342 /* Watch out for newly created frames. */ 10343 /* Watch out for newly created frames. */
10343 && f->output_data.x->busy_window) 10344 && f->output_data.x->hourglass_window)
10344 { 10345 {
10345 XUnmapWindow (FRAME_X_DISPLAY (f), f->output_data.x->busy_window); 10346 XUnmapWindow (FRAME_X_DISPLAY (f),
10346 /* Sync here because XTread_socket looks at the busy_p flag 10347 f->output_data.x->hourglass_window);
10347 that is reset to zero below. */ 10348 /* Sync here because XTread_socket looks at the
10349 hourglass_p flag that is reset to zero below. */
10348 XSync (FRAME_X_DISPLAY (f), False); 10350 XSync (FRAME_X_DISPLAY (f), False);
10349 f->output_data.x->busy_p = 0; 10351 f->output_data.x->hourglass_p = 0;
10350 } 10352 }
10351 } 10353 }
10352 10354
10353 busy_cursor_shown_p = 0; 10355 hourglass_shown_p = 0;
10354 UNBLOCK_INPUT; 10356 UNBLOCK_INPUT;
10355 } 10357 }
10356} 10358}
@@ -11402,20 +11404,20 @@ or when you set the mouse color.");
11402#endif 11404#endif
11403 Vx_nontext_pointer_shape = Qnil; 11405 Vx_nontext_pointer_shape = Qnil;
11404 11406
11405 DEFVAR_LISP ("x-busy-pointer-shape", &Vx_busy_pointer_shape, 11407 DEFVAR_LISP ("x-hourglass-pointer-shape", &Vx_hourglass_pointer_shape,
11406 "The shape of the pointer when Emacs is busy.\n\ 11408 "The shape of the pointer when Emacs is busy.\n\
11407This variable takes effect when you create a new frame\n\ 11409This variable takes effect when you create a new frame\n\
11408or when you set the mouse color."); 11410or when you set the mouse color.");
11409 Vx_busy_pointer_shape = Qnil; 11411 Vx_hourglass_pointer_shape = Qnil;
11410 11412
11411 DEFVAR_BOOL ("display-busy-cursor", &display_busy_cursor_p, 11413 DEFVAR_BOOL ("display-hourglass", &display_hourglass_p,
11412 "Non-zero means Emacs displays a busy cursor on window systems."); 11414 "Non-zero means Emacs displays an hourglass pointer on window systems.");
11413 display_busy_cursor_p = 1; 11415 display_hourglass_p = 1;
11414 11416
11415 DEFVAR_LISP ("busy-cursor-delay", &Vbusy_cursor_delay, 11417 DEFVAR_LISP ("hourglass-delay", &Vhourglass_delay,
11416 "*Seconds to wait before displaying a busy-cursor.\n\ 11418 "*Seconds to wait before displaying an hourglass pointer.\n\
11417Value must be an integer or float."); 11419Value must be an integer or float.");
11418 Vbusy_cursor_delay = make_number (DEFAULT_BUSY_CURSOR_DELAY); 11420 Vhourglass_delay = make_number (DEFAULT_HOURGLASS_DELAY);
11419 11421
11420#if 0 /* This doesn't really do anything. */ 11422#if 0 /* This doesn't really do anything. */
11421 DEFVAR_LISP ("x-mode-pointer-shape", &Vx_mode_pointer_shape, 11423 DEFVAR_LISP ("x-mode-pointer-shape", &Vx_mode_pointer_shape,
@@ -11583,8 +11585,8 @@ meaning don't clear the cache.");
11583 defsubr (&Simage_size); 11585 defsubr (&Simage_size);
11584 defsubr (&Simage_mask_p); 11586 defsubr (&Simage_mask_p);
11585 11587
11586 busy_cursor_atimer = NULL; 11588 hourglass_atimer = NULL;
11587 busy_cursor_shown_p = 0; 11589 hourglass_shown_p = 0;
11588 11590
11589 defsubr (&Sx_show_tip); 11591 defsubr (&Sx_show_tip);
11590 defsubr (&Sx_hide_tip); 11592 defsubr (&Sx_hide_tip);