diff --git a/etc/PROBLEMS b/etc/PROBLEMS index b6d2d63660c..f1140499859 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS @@ -1725,7 +1725,7 @@ which can be carried out at the same time: 8) If creating or resizing frames is slow, turn off `frame-resize-pixelwise' (this will not take effect until you - create a new frame); then, enable `x-lax-frame-geometry'. This + create a new frame); then, enable `x-lax-frame-positioning'. This means frame placement will be less accurate, but makes frame creation, movement, and resize visibly faster. diff --git a/src/xterm.c b/src/xterm.c index a120eae26cb..a1acfa80744 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -28329,6 +28329,7 @@ x_make_frame_visible (struct frame *f) && !FRAME_ICONIFIED_P (f) && !FRAME_X_EMBEDDED_P (f) && !FRAME_PARENT_FRAME (f) + && NILP (Vx_lax_frame_positioning) && f->win_gravity == NorthWestGravity && previously_visible) { @@ -28357,7 +28358,8 @@ x_make_frame_visible (struct frame *f) } /* Try to wait for a MapNotify event (that is what tells us when a - frame becomes visible). */ + frame becomes visible). Unless `x-lax-frame-positioning' is + non-nil: there, that is a little slow. */ #ifdef CYGWIN /* On Cygwin, which uses input polling, we need to force input to @@ -28375,7 +28377,8 @@ x_make_frame_visible (struct frame *f) poll_suppress_count = old_poll_suppress_count; #endif - if (!FRAME_VISIBLE_P (f)) + if (!FRAME_VISIBLE_P (f) + && NILP (Vx_lax_frame_positioning)) { if (CONSP (frame_size_history)) frame_size_history_plain