[PATCH xwayland 1/2] xwayland: Update actual screen and root window size on output hot plug
Daniel Stone
daniel at fooishbar.org
Wed Oct 7 04:09:17 PDT 2015
Hi Jonas,
On 7 October 2015 at 05:02, Jonas Ådahl <jadahl at gmail.com> wrote:
> When a new output is hot-plugged we need to not only update our internal
> screen dimensions, but also the dix screen dimensions, screenInfo
> dimensions and the root window dimensions.
>
> https://bugs.freedesktop.org/show_bug.cgi?id=92273
>
> Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
> ---
> hw/xwayland/xwayland-output.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/hw/xwayland/xwayland-output.c b/hw/xwayland/xwayland-output.c
> index 923f368..a8c2f2e 100644
> --- a/hw/xwayland/xwayland-output.c
> +++ b/hw/xwayland/xwayland-output.c
> @@ -156,9 +156,22 @@ output_handle_done(void *data, struct wl_output *wl_output)
> --xwl_screen->expecting_event;
> }
>
> + if (xwl_screen->screen->root)
> + SetRootClip(xwl_screen->screen, FALSE);
> +
> xwl_screen->width = width;
> xwl_screen->height = height;
> - RRScreenSizeNotify(xwl_screen->screen);
> + xwl_screen->screen->width = width;
> + xwl_screen->screen->height = height;
> +
> + if (xwl_screen->screen->root) {
> + xwl_screen->screen->root->drawable.width = width;
> + xwl_screen->screen->root->drawable.height = height;
> + SetRootClip(xwl_screen->screen, TRUE);
> + RRScreenSizeNotify(xwl_screen->screen);
> + }
> +
> + update_desktop_dimensions();
> }
>
> static void
Thanks, looks good to me. I had a half-complete version of the same,
but just forgot to update the root-clip, hence why it didn't work. One
thing I did notice from the earlier iteration though, is that for me,
I was seeing this being called when xwl_screen->screen is NULL, thus a
segfault on startup. Are you not seeing the same?
Assuming this is tested and working, then for the series:
Reviewed-by: Daniel Stone <daniels at collabora.com>
Cheers,
Daniel
More information about the xorg-devel
mailing list