diff options
| author | Gerd Moellmann | 2001-02-21 13:55:14 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2001-02-21 13:55:14 +0000 |
| commit | 0af913d7b6948157d69db11d5f9c80dc5d92ee3f (patch) | |
| tree | c1968add8575583a16ff356819ff89bd04943fc4 /src | |
| parent | 2533c408d26998afb7f2a726962c4b2eeaa10f11 (diff) | |
| download | emacs-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.c | 162 | ||||
| -rw-r--r-- | src/xfns.c | 168 |
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. */ |
| 147 | Lisp_Object Vx_no_window_manager; | 147 | Lisp_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 | ||
| 151 | int display_busy_cursor_p; | 151 | int 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 | ||
| 156 | Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape; | 156 | Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape; |
| 157 | Lisp_Object Vx_busy_pointer_shape, Vx_window_horizontal_drag_shape; | 157 | Lisp_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 | ||
| 12137 | static struct atimer *busy_cursor_atimer; | 12137 | static 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 | ||
| 12141 | static int busy_cursor_shown_p; | 12141 | static 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 | ||
| 12145 | static Lisp_Object Vbusy_cursor_delay; | 12145 | static 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 | ||
| 12154 | static void show_busy_cursor P_ ((struct atimer *)); | 12154 | static void show_hourglass P_ ((struct atimer *)); |
| 12155 | static void hide_busy_cursor P_ ((void)); | 12155 | static 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 | ||
| 12160 | void | 12160 | void |
| 12161 | start_busy_cursor () | 12161 | start_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 | ||
| 12193 | void | 12193 | void |
| 12194 | cancel_busy_cursor () | 12194 | cancel_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 | ||
| 12215 | static void | 12215 | static void |
| 12216 | show_busy_cursor (timer) | 12216 | show_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 | ||
| 12267 | static void | 12268 | static void |
| 12268 | hide_busy_cursor () | 12269 | hide_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\ |
| 13642 | This variable takes effect when you create a new frame\n\ | 13644 | This variable takes effect when you create a new frame\n\ |
| 13643 | or when you set the mouse color."); | 13645 | or 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\ |
| 13652 | Value must be an integer or float."); | 13654 | Value 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 | ||
| 136 | Lisp_Object Vx_resource_class; | 136 | Lisp_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 | ||
| 140 | int display_busy_cursor_p; | 140 | int 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 | ||
| 145 | Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape; | 145 | Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape; |
| 146 | Lisp_Object Vx_busy_pointer_shape; | 146 | Lisp_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 | ||
| 10193 | static struct atimer *busy_cursor_atimer; | 10193 | static 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 | ||
| 10197 | static int busy_cursor_shown_p; | 10197 | static 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 | ||
| 10201 | static Lisp_Object Vbusy_cursor_delay; | 10201 | static 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 | ||
| 10210 | static void show_busy_cursor P_ ((struct atimer *)); | 10210 | static void show_hourglass P_ ((struct atimer *)); |
| 10211 | static void hide_busy_cursor P_ ((void)); | 10211 | static 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 | ||
| 10216 | void | 10216 | void |
| 10217 | start_busy_cursor () | 10217 | start_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 | ||
| 10247 | void | 10247 | void |
| 10248 | cancel_busy_cursor () | 10248 | cancel_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 | ||
| 10269 | static void | 10269 | static void |
| 10270 | show_busy_cursor (timer) | 10270 | show_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 | ||
| 10329 | static void | 10330 | static void |
| 10330 | hide_busy_cursor () | 10331 | hide_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\ |
| 11407 | This variable takes effect when you create a new frame\n\ | 11409 | This variable takes effect when you create a new frame\n\ |
| 11408 | or when you set the mouse color."); | 11410 | or 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\ |
| 11417 | Value must be an integer or float."); | 11419 | Value 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); |