aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPo Lu2022-03-05 10:44:26 +0800
committerPo Lu2022-03-05 10:47:32 +0800
commit4564ae5a3d87ce6aee35d6a3c689fd0400f25859 (patch)
tree33b6c0050c863ec9fa71add2c4fd12984a9f9866
parenta658be774268577cc8283ee05998d8b4225d7368 (diff)
downloademacs-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.c27
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: