diff options
| author | Po Lu | 2022-03-05 10:44:26 +0800 |
|---|---|---|
| committer | Po Lu | 2022-03-05 10:47:32 +0800 |
| commit | 4564ae5a3d87ce6aee35d6a3c689fd0400f25859 (patch) | |
| tree | 33b6c0050c863ec9fa71add2c4fd12984a9f9866 | |
| parent | a658be774268577cc8283ee05998d8b4225d7368 (diff) | |
| download | emacs-4564ae5a3d87ce6aee35d6a3c689fd0400f25859.tar.gz emacs-4564ae5a3d87ce6aee35d6a3c689fd0400f25859.zip | |
Remove render code in x_scroll_run and drop NoExpose events instead
* src/xterm.c (x_scroll_run): Stop avoiding NoExpose events
through XRenderComposite.
(handle_one_xevent): Drop NoExpose events to placate some code
in Athena widgets.
| -rw-r--r-- | src/xterm.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/src/xterm.c b/src/xterm.c index 89ec43b4705..55224d93c9b 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -6037,24 +6037,12 @@ x_scroll_run (struct window *w, struct run *run) | |||
| 6037 | } | 6037 | } |
| 6038 | else | 6038 | else |
| 6039 | #endif /* USE_CAIRO */ | 6039 | #endif /* USE_CAIRO */ |
| 6040 | { | 6040 | XCopyArea (FRAME_X_DISPLAY (f), |
| 6041 | #ifdef HAVE_XRENDER | 6041 | FRAME_X_DRAWABLE (f), FRAME_X_DRAWABLE (f), |
| 6042 | /* Avoid useless NoExpose events. This way, we only get regular | 6042 | f->output_data.x->normal_gc, |
| 6043 | exposure events when there is actually something to | 6043 | x, from_y, |
| 6044 | expose. */ | 6044 | width, height, |
| 6045 | if (FRAME_X_PICTURE (f) != None) | 6045 | x, to_y); |
| 6046 | XRenderComposite (FRAME_X_DISPLAY (f), PictOpSrc, FRAME_X_PICTURE (f), | ||
| 6047 | None, FRAME_X_PICTURE (f), x, from_y, 0, 0, x, to_y, | ||
| 6048 | width, height); | ||
| 6049 | else | ||
| 6050 | #endif | ||
| 6051 | XCopyArea (FRAME_X_DISPLAY (f), | ||
| 6052 | FRAME_X_DRAWABLE (f), FRAME_X_DRAWABLE (f), | ||
| 6053 | f->output_data.x->normal_gc, | ||
| 6054 | x, from_y, | ||
| 6055 | width, height, | ||
| 6056 | x, to_y); | ||
| 6057 | } | ||
| 6058 | 6046 | ||
| 6059 | unblock_input (); | 6047 | unblock_input (); |
| 6060 | } | 6048 | } |
| @@ -10367,6 +10355,9 @@ handle_one_xevent (struct x_display_info *dpyinfo, | |||
| 10367 | case NoExpose: /* This occurs when an XCopyArea's | 10355 | case NoExpose: /* This occurs when an XCopyArea's |
| 10368 | source area was completely | 10356 | source area was completely |
| 10369 | available. */ | 10357 | available. */ |
| 10358 | #ifdef USE_X_TOOLKIT | ||
| 10359 | *finish = X_EVENT_DROP; | ||
| 10360 | #endif | ||
| 10370 | break; | 10361 | break; |
| 10371 | 10362 | ||
| 10372 | case UnmapNotify: | 10363 | case UnmapNotify: |