diff options
author | Po Lu <luangruo@yahoo.com> | 2022-11-27 19:17:38 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2022-11-27 19:21:03 +0800 |
commit | 80bfd6dc5bc3738db595a4972893b149b1224800 (patch) | |
tree | a1a8022a247da2ca43dfb163210ae01bbfe2802d /src/xterm.h | |
parent | ea2f2f1e71188a4b0ff3fa390914d8ca23deacb9 (diff) | |
download | emacs-80bfd6dc5bc3738db595a4972893b149b1224800.tar.gz |
Make frame synchronization more robust
* src/xterm.c (x_sync_wait_for_frame_drawn_event)
(x_sync_handle_frame_drawn): Only cancel frame synchronization
if hanging twice or more in a row.
* src/xterm.h (struct x_output, FRAME_X_DRAW_JUST_HUNG): New
flag.
Diffstat (limited to 'src/xterm.h')
-rw-r--r-- | src/xterm.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/xterm.h b/src/xterm.h index c36920081d3..ee429e9c68d 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -1179,6 +1179,10 @@ struct x_output frame. */ bool_bf waiting_for_frame_p : 1; + /* Whether or not Emacs just skipped waiting for a frame due to a + timeout. */ + bool_bf draw_just_hung_p : 1; + #if !defined USE_GTK && defined HAVE_CLOCK_GETTIME /* Whether or not Emacs should wait for the compositing manager to draw frames before starting a new frame. */ @@ -1392,6 +1396,8 @@ extern void x_mark_frame_dirty (struct frame *f); FRAME_X_OUTPUT (f)->extended_frame_counter #define FRAME_X_WAITING_FOR_DRAW(f) \ FRAME_X_OUTPUT (f)->waiting_for_frame_p +#define FRAME_X_DRAW_JUST_HUNG(f) \ + FRAME_X_OUTPUT (f)->draw_just_hung_p #define FRAME_X_COUNTER_VALUE(f) \ FRAME_X_OUTPUT (f)->current_extended_counter_value #endif |