mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-04-21 13:31:37 -07:00
(XTread_socket) <ConfigureNotify>: Don't call
x_wm_set_size_hint if window has no parent yet. Simplify the call to x_real_positions. (x_make_frame_visible): Use win_gravity to decide whether to call XMoveWindow. Also, don't do it if frame already visible.
This commit is contained in:
parent
f1e0f5469e
commit
dcb07ae9dc
1 changed files with 16 additions and 19 deletions
35
src/xterm.c
35
src/xterm.c
|
|
@ -4377,23 +4377,16 @@ XTread_socket (sd, bufp, numchars, expected)
|
|||
|
||||
/* What we have now is the position of Emacs's own window.
|
||||
Convert that to the position of the window manager window. */
|
||||
{
|
||||
int x, y;
|
||||
x_real_positions (f, &x, &y);
|
||||
f->output_data.x->left_pos = x;
|
||||
f->output_data.x->top_pos = y;
|
||||
#if 0
|
||||
if (y != event.xconfigure.y)
|
||||
{
|
||||
#endif
|
||||
/* Since the WM decorations come below top_pos now,
|
||||
we must put them below top_pos in the future. */
|
||||
f->output_data.x->win_gravity = NorthWestGravity;
|
||||
x_wm_set_size_hint (f, (long) 0, 0);
|
||||
#if 0
|
||||
}
|
||||
#endif
|
||||
}
|
||||
x_real_positions (f, &f->output_data.x->left_pos,
|
||||
&f->output_data.x->top_pos);
|
||||
|
||||
if (f->output_data.x->parent_desc != FRAME_X_DISPLAY_INFO (f)->root_window)
|
||||
{
|
||||
/* Since the WM decorations come below top_pos now,
|
||||
we must put them below top_pos in the future. */
|
||||
f->output_data.x->win_gravity = NorthWestGravity;
|
||||
x_wm_set_size_hint (f, (long) 0, 0);
|
||||
}
|
||||
}
|
||||
goto OTHER;
|
||||
|
||||
|
|
@ -5677,9 +5670,13 @@ x_make_frame_visible (f)
|
|||
|
||||
/* Arriving X events are processed here. */
|
||||
|
||||
/* Now move the window back to where it was "supposed to be". */
|
||||
/* Now move the window back to where it was "supposed to be".
|
||||
But don't do it if the gravity is negative.
|
||||
When the gravity is negative, this uses a position
|
||||
that is 3 pixels too low. Perhaps that's really the border width. */
|
||||
|
||||
if (! (starting_flags & (XNegative | YNegative)))
|
||||
if (! FRAME_VISIBLE_P (f)
|
||||
&& f->output_data.x->win_gravity == NorthWestGravity)
|
||||
{
|
||||
BLOCK_INPUT;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue