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 bda976fcbbd..44396955ed0 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -10608,26 +10608,29 @@ x_set_offset (struct frame *f, register int xoff, register int yoff, int change_
10608 modified_left, modified_top); 10608 modified_left, modified_top);
10609#endif 10609#endif
10610 10610
10611 x_sync_with_move (f, f->left_pos, f->top_pos, 10611 /* 'x_sync_with_move' is too costly for dragging child frames. */
10612 FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_UNKNOWN); 10612 if (!FRAME_PARENT_FRAME (f))
10613 10613 {
10614 /* change_gravity is non-zero when this function is called from Lisp to 10614 x_sync_with_move (f, f->left_pos, f->top_pos,
10615 programmatically move a frame. In that case, we call 10615 FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_UNKNOWN);
10616 x_check_expected_move to discover if we have a "Type A" or "Type B" 10616
10617 window manager, and, for a "Type A" window manager, adjust the position 10617 /* change_gravity is non-zero when this function is called from Lisp to
10618 of the frame. 10618 programmatically move a frame. In that case, we call
10619 10619 x_check_expected_move to discover if we have a "Type A" or "Type B"
10620 We call x_check_expected_move if a programmatic move occurred, and 10620 window manager, and, for a "Type A" window manager, adjust the position
10621 either the window manager type (A/B) is unknown or it is Type A but we 10621 of the frame.
10622 need to compute the top/left offset adjustment for this frame. */ 10622
10623 10623 We call x_check_expected_move if a programmatic move occurred, and
10624 if (change_gravity != 0 10624 either the window manager type (A/B) is unknown or it is Type A but we
10625 && !FRAME_PARENT_FRAME (f) 10625 need to compute the top/left offset adjustment for this frame. */
10626 && (FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_UNKNOWN 10626
10627 || (FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_A 10627 if (change_gravity != 0
10628 && (FRAME_X_OUTPUT (f)->move_offset_left == 0 10628 && (FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_UNKNOWN
10629 && FRAME_X_OUTPUT (f)->move_offset_top == 0)))) 10629 || (FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_A
10630 x_check_expected_move (f, modified_left, modified_top); 10630 && (FRAME_X_OUTPUT (f)->move_offset_left == 0
10631 && FRAME_X_OUTPUT (f)->move_offset_top == 0))))
10632 x_check_expected_move (f, modified_left, modified_top);
10633 }
10631 10634
10632 unblock_input (); 10635 unblock_input ();
10633} 10636}