diff options
Diffstat (limited to 'src/xterm.c')
| -rw-r--r-- | src/xterm.c | 43 |
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 | } |