Xwayland: clients are flooded with _NET_WM_STATE and other window management events (bisected)
Description
I noticed that X11 clients are being flooded with _NET_WM_STATE
events (and others) in quick succession when running in the Wayland session:
PropertyNotify event, serial 16, synthetic NO, window 0x3400002,
atom 0x10f (_NET_WM_STATE), time 210390139, state PropertyNewValue
PropertyNotify event, serial 16, synthetic NO, window 0x3400002,
atom 0x13f (_GTK_EDGE_CONSTRAINTS), time 210390139, state PropertyNewValue
PropertyNotify event, serial 16, synthetic NO, window 0x3400002,
atom 0x10f (_NET_WM_STATE), time 210390146, state PropertyNewValue
PropertyNotify event, serial 16, synthetic NO, window 0x3400002,
atom 0x13f (_GTK_EDGE_CONSTRAINTS), time 210390146, state PropertyNewValue
PropertyNotify event, serial 16, synthetic NO, window 0x3400002,
atom 0x10f (_NET_WM_STATE), time 210390153, state PropertyNewValue
PropertyNotify event, serial 16, synthetic NO, window 0x3400002,
atom 0x13f (_GTK_EDGE_CONSTRAINTS), time 210390153, state PropertyNewValue
PropertyNotify event, serial 16, synthetic NO, window 0x3400002,
atom 0x10f (_NET_WM_STATE), time 210390167, state PropertyNewValue
PropertyNotify event, serial 16, synthetic NO, window 0x3400002,
atom 0x13f (_GTK_EDGE_CONSTRAINTS), time 210390167, state PropertyNewValue
PropertyNotify event, serial 16, synthetic NO, window 0x3400002,
atom 0x10f (_NET_WM_STATE), time 210390174, state PropertyNewValue
Steps to reproduce
- Run an X11 client with a visible window.
- Use
xwininfo
to find its window ID. - Use
xev -id <window-id>
to see the events sent to the client. - You should see many window management events being dispatched at the client even when its window doesn't change.
Bisected
The issue started with df642eb1, which seems to have a typo around surface->buffer_ref.buffer
(missing !
) which changed the logic. This regression is therefore present since 3.35.92
.
Edited by Dor Askayo