Assign bit gravity to window in Lucid and Motif ports too

* src/widget.c (EmacsFrameRealize): Assign bit_gravity, and use
the value of NorthWestGravity which matches the GTK3 behavior,
and the general intuition that window's contents should move
with its top-left corner.  The result is that the frame is not
blinking during resizing (bug#80369).

* src/xfns.c (x_window) [!USE_X_TOOLKIT]: Change bit_gravity from
StaticGravity to NorthWestGravity as well, to match the others.
This commit is contained in:
Dmitry Gutov
2026-03-16 23:55:05 +02:00
parent 4147410852
commit f8696367bc
2 changed files with 3 additions and 1 deletions

View File

@@ -392,7 +392,9 @@ EmacsFrameRealize (Widget widget, XtValueMask *mask,
attrs->event_mask = (STANDARD_EVENT_SET
| PropertyChangeMask
| SubstructureNotifyMask);
attrs->bit_gravity = NorthWestGravity;
*mask |= CWEventMask;
*mask |= CWBitGravity;
XtCreateWindow (widget, InputOutput, (Visual *) CopyFromParent, *mask,
attrs);
/* Some ConfigureNotify events does not end up in EmacsFrameResize so

View File

@@ -4483,7 +4483,7 @@ x_window (struct frame *f)
attributes.background_pixel = FRAME_BACKGROUND_PIXEL (f);
attributes.border_pixel = f->output_data.x->border_pixel;
attributes.bit_gravity = StaticGravity;
attributes.bit_gravity = NorthWestGravity;
attributes.backing_store = NotUseful;
attributes.save_under = True;
attributes.event_mask = STANDARD_EVENT_SET;