[PATCH] xwm: Update input region on resize

Daniel Stone daniel at fooishbar.org
Mon Mar 12 10:59:18 UTC 2018

Hi Scott,

On 19 February 2018 at 19:18, Scott Moreau <oreaus at gmail.com> wrote:
> Commit 332d1892 introduced a bug because the window was
> shaped only when the frame was created, leaving the input
> region unchanged regardless if the window was resized.
> This patch updates the input region shape on resize,
> fixing the problem.

Thanks for this! I've had a look - well, as much of a look into XWM as
I can stomach on a Monday morning - and I think it's mostly right, but
could be improved a little further.

In the override-redirect case, we call frame_resize_inside in the
branch closed just above where you added the weston_wm_window_shape()
call. That is the first point where we know the window has a different
size, so would be the right place to call it. On the other hand, for
OR we probably just shouldn't be trying to manage the input mask at
all ... ?

For non-OR windows, send_configure() is where we send the server a
ConfigureRequest (which it will process immediately as we hold the
substructure redirect), so we should chase that immediately with the
input-region update. That resolves a potential race where we have
incoherent input/output size.

As Pekka says, there's something fishy about decorate/frame confusion
I think. Anyone who put clear and concise comments above
decorate/frame explaining what they actually do and when they will
actually be set would have my eternal gratitude, because I have to go
re-learn what they are every time. :\


More information about the wayland-devel mailing list