diff options
author | Po Lu <luangruo@yahoo.com> | 2022-11-22 19:43:14 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2022-11-22 20:04:47 +0800 |
commit | 60fac8a5e02983e3bf3103dbeb9af5214aa8f694 (patch) | |
tree | 9d73e123622fe7e0e680f420998e6cb4e2f2d2dc /src/xterm.c | |
parent | eb02528b707a1b89bc9b46ac6c6c9e48a3b54a4c (diff) | |
download | emacs-60fac8a5e02983e3bf3103dbeb9af5214aa8f694.tar.gz emacs-60fac8a5e02983e3bf3103dbeb9af5214aa8f694.tar.bz2 emacs-60fac8a5e02983e3bf3103dbeb9af5214aa8f694.zip |
Avoid potentially expensive XFlush and fix ordering
* src/xterm.c (x_raise_frame): Don't call XFlush without a
request being made.
(x_lower_frame): Fix ordering wrt to xwidget view lowering.
Diffstat (limited to 'src/xterm.c')
-rw-r--r-- | src/xterm.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/xterm.c b/src/xterm.c index af652a0d856..154f404e6b4 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -27517,9 +27517,14 @@ static void x_raise_frame (struct frame *f) { block_input (); + if (FRAME_VISIBLE_P (f)) - XRaiseWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f)); - XFlush (FRAME_X_DISPLAY (f)); + { + XRaiseWindow (FRAME_X_DISPLAY (f), + FRAME_OUTER_WINDOW (f)); + XFlush (FRAME_X_DISPLAY (f)); + } + unblock_input (); } @@ -27567,8 +27572,6 @@ x_lower_frame (struct frame *f) XLowerWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f)); - XFlush (FRAME_X_DISPLAY (f)); - #ifdef HAVE_XWIDGETS /* Make sure any X windows owned by xwidget views of the parent still display below the lowered frame. */ @@ -27576,6 +27579,8 @@ x_lower_frame (struct frame *f) if (FRAME_PARENT_FRAME (f)) lower_frame_xwidget_views (FRAME_PARENT_FRAME (f)); #endif + + XFlush (FRAME_X_DISPLAY (f)); } static void |