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 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 | } |