From 618d1da44373c86be91d23a6e3c7cb15a59f6bbb Mon Sep 17 00:00:00 2001 From: Rafal Mielniczuk Date: Tue, 12 Feb 2013 18:30:01 +0100 Subject: [PATCH] compositor-x11: resize output to x11 window size in fullscreen mode In fullscreen mode we need to adjust output dimensions to match x11 window size. In other case, if there is no output section in weston.ini, weston output will have default 1024x640 size, while rest of the screen remains black and unusable. This should fix https://bugs.freedesktop.org/show_bug.cgi?id=60608 --- src/compositor-x11.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/compositor-x11.c b/src/compositor-x11.c index 2d243da..0d43ce6 100644 --- a/src/compositor-x11.c +++ b/src/compositor-x11.c @@ -664,6 +664,7 @@ x11_compositor_create_output(struct x11_compositor *c, int x, int y, char title[32]; struct x11_output *output; xcb_screen_iterator_t iter; + xcb_get_geometry_reply_t *geom; struct wm_normal_hints normal_hints; struct wl_event_loop *loop; uint32_t mask = XCB_CW_EVENT_MASK | XCB_CW_CURSOR; @@ -758,6 +759,19 @@ x11_compositor_create_output(struct x11_compositor *c, int x, int y, x11_output_wait_for_map(c, output); + if (fullscreen) { + /** + * In fullscreen mode resize weston output to x11 window size + */ + geom = xcb_get_geometry_reply(c->conn, xcb_get_geometry (c->conn, output->window), NULL); + width = geom->width; + height = geom->height; + output->mode.width = width; + output->mode.height = height; + + free(geom); + } + output->base.origin = output->base.current; if (c->use_pixman) output->base.repaint = x11_output_repaint_shm; -- 1.8.1.3