diff options
| author | Gerd Moellmann | 2000-12-18 11:36:34 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-12-18 11:36:34 +0000 |
| commit | 5f7a18903e92294a624a9ad34abdeb75cc2feace (patch) | |
| tree | 9d1f6336ee53f53c0381134a74f5644899c95048 /src | |
| parent | c3695f5f58e803366eb99395d20ca5f2383403a4 (diff) | |
| download | emacs-5f7a18903e92294a624a9ad34abdeb75cc2feace.tar.gz emacs-5f7a18903e92294a624a9ad34abdeb75cc2feace.zip | |
(show_busy_cursor): Check for live frames more
thoroughly.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 3 | ||||
| -rw-r--r-- | src/xfns.c | 52 |
2 files changed, 34 insertions, 21 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index cbbfea69bfd..882f3046815 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,5 +1,8 @@ | |||
| 1 | 2000-12-18 Gerd Moellmann <gerd@gnu.org> | 1 | 2000-12-18 Gerd Moellmann <gerd@gnu.org> |
| 2 | 2 | ||
| 3 | * xfns.c (show_busy_cursor): Check for live frames more | ||
| 4 | thoroughly. | ||
| 5 | |||
| 3 | * process.c (wait_reading_process_input): Check for pending | 6 | * process.c (wait_reading_process_input): Check for pending |
| 4 | input when running timers. | 7 | input when running timers. |
| 5 | 8 | ||
diff --git a/src/xfns.c b/src/xfns.c index ab4f288cb01..11c45e7ffde 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -10268,31 +10268,41 @@ show_busy_cursor (timer) | |||
| 10268 | BLOCK_INPUT; | 10268 | BLOCK_INPUT; |
| 10269 | 10269 | ||
| 10270 | FOR_EACH_FRAME (rest, frame) | 10270 | FOR_EACH_FRAME (rest, frame) |
| 10271 | if (FRAME_X_P (XFRAME (frame))) | 10271 | { |
| 10272 | { | 10272 | struct frame *f = XFRAME (frame); |
| 10273 | struct frame *f = XFRAME (frame); | 10273 | |
| 10274 | 10274 | if (FRAME_LIVE_P (f) && FRAME_X_P (f) && FRAME_X_DISPLAY (f)) | |
| 10275 | f->output_data.x->busy_p = 1; | 10275 | { |
| 10276 | Display *dpy = FRAME_X_DISPLAY (f); | ||
| 10277 | |||
| 10278 | #ifdef USE_X_TOOLKIT | ||
| 10279 | if (f->output_data.x->widget) | ||
| 10280 | #else | ||
| 10281 | if (FRAME_OUTER_WINDOW (f)) | ||
| 10282 | #endif | ||
| 10283 | { | ||
| 10284 | f->output_data.x->busy_p = 1; | ||
| 10276 | 10285 | ||
| 10277 | if (!f->output_data.x->busy_window) | 10286 | if (!f->output_data.x->busy_window) |
| 10278 | { | 10287 | { |
| 10279 | unsigned long mask = CWCursor; | 10288 | unsigned long mask = CWCursor; |
| 10280 | XSetWindowAttributes attrs; | 10289 | XSetWindowAttributes attrs; |
| 10281 | 10290 | ||
| 10282 | attrs.cursor = f->output_data.x->busy_cursor; | 10291 | attrs.cursor = f->output_data.x->busy_cursor; |
| 10283 | 10292 | ||
| 10284 | f->output_data.x->busy_window | 10293 | f->output_data.x->busy_window |
| 10285 | = XCreateWindow (FRAME_X_DISPLAY (f), | 10294 | = XCreateWindow (dpy, FRAME_OUTER_WINDOW (f), |
| 10286 | FRAME_OUTER_WINDOW (f), | 10295 | 0, 0, 32000, 32000, 0, 0, |
| 10287 | 0, 0, 32000, 32000, 0, 0, | 10296 | InputOnly, |
| 10288 | InputOnly, | 10297 | CopyFromParent, |
| 10289 | CopyFromParent, | 10298 | mask, &attrs); |
| 10290 | mask, &attrs); | 10299 | } |
| 10291 | } | ||
| 10292 | 10300 | ||
| 10293 | XMapRaised (FRAME_X_DISPLAY (f), f->output_data.x->busy_window); | 10301 | XMapRaised (dpy, f->output_data.x->busy_window); |
| 10294 | XFlush (FRAME_X_DISPLAY (f)); | 10302 | XFlush (dpy); |
| 10295 | } | 10303 | } |
| 10304 | } | ||
| 10305 | } | ||
| 10296 | 10306 | ||
| 10297 | busy_cursor_shown_p = 1; | 10307 | busy_cursor_shown_p = 1; |
| 10298 | UNBLOCK_INPUT; | 10308 | UNBLOCK_INPUT; |