aboutsummaryrefslogtreecommitdiffstats
path: root/src/xterm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xterm.c')
-rw-r--r--src/xterm.c43
1 files changed, 23 insertions, 20 deletions
diff --git a/src/xterm.c b/src/xterm.c
index bd9688fda81..ae5dad92897 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -10613,26 +10613,29 @@ x_set_offset (struct frame *f, register int xoff, register int yoff, int change_
10613 modified_left, modified_top); 10613 modified_left, modified_top);
10614#endif 10614#endif
10615 10615
10616 x_sync_with_move (f, f->left_pos, f->top_pos, 10616 /* 'x_sync_with_move' is too costly for dragging child frames. */
10617 FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_UNKNOWN); 10617 if (!FRAME_PARENT_FRAME (f))
10618 10618 {
10619 /* change_gravity is non-zero when this function is called from Lisp to 10619 x_sync_with_move (f, f->left_pos, f->top_pos,
10620 programmatically move a frame. In that case, we call 10620 FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_UNKNOWN);
10621 x_check_expected_move to discover if we have a "Type A" or "Type B" 10621
10622 window manager, and, for a "Type A" window manager, adjust the position 10622 /* change_gravity is non-zero when this function is called from Lisp to
10623 of the frame. 10623 programmatically move a frame. In that case, we call
10624 10624 x_check_expected_move to discover if we have a "Type A" or "Type B"
10625 We call x_check_expected_move if a programmatic move occurred, and 10625 window manager, and, for a "Type A" window manager, adjust the position
10626 either the window manager type (A/B) is unknown or it is Type A but we 10626 of the frame.
10627 need to compute the top/left offset adjustment for this frame. */ 10627
10628 10628 We call x_check_expected_move if a programmatic move occurred, and
10629 if (change_gravity != 0 10629 either the window manager type (A/B) is unknown or it is Type A but we
10630 && !FRAME_PARENT_FRAME (f) 10630 need to compute the top/left offset adjustment for this frame. */
10631 && (FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_UNKNOWN 10631
10632 || (FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_A 10632 if (change_gravity != 0
10633 && (FRAME_X_OUTPUT (f)->move_offset_left == 0 10633 && (FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_UNKNOWN
10634 && FRAME_X_OUTPUT (f)->move_offset_top == 0)))) 10634 || (FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_A
10635 x_check_expected_move (f, modified_left, modified_top); 10635 && (FRAME_X_OUTPUT (f)->move_offset_left == 0
10636 && FRAME_X_OUTPUT (f)->move_offset_top == 0))))
10637 x_check_expected_move (f, modified_left, modified_top);
10638 }
10636 10639
10637 unblock_input (); 10640 unblock_input ();
10638} 10641}