aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGerd Moellmann2000-12-18 11:36:34 +0000
committerGerd Moellmann2000-12-18 11:36:34 +0000
commit5f7a18903e92294a624a9ad34abdeb75cc2feace (patch)
tree9d1f6336ee53f53c0381134a74f5644899c95048 /src
parentc3695f5f58e803366eb99395d20ca5f2383403a4 (diff)
downloademacs-5f7a18903e92294a624a9ad34abdeb75cc2feace.tar.gz
emacs-5f7a18903e92294a624a9ad34abdeb75cc2feace.zip
(show_busy_cursor): Check for live frames more
thoroughly.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog3
-rw-r--r--src/xfns.c52
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 @@
12000-12-18 Gerd Moellmann <gerd@gnu.org> 12000-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;