summaryrefslogtreecommitdiff
path: root/src/xterm.c
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2022-11-22 19:43:14 +0800
committerPo Lu <luangruo@yahoo.com>2022-11-22 20:04:47 +0800
commit60fac8a5e02983e3bf3103dbeb9af5214aa8f694 (patch)
tree9d73e123622fe7e0e680f420998e6cb4e2f2d2dc /src/xterm.c
parenteb02528b707a1b89bc9b46ac6c6c9e48a3b54a4c (diff)
downloademacs-60fac8a5e02983e3bf3103dbeb9af5214aa8f694.tar.gz
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.c13
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