diff options
Diffstat (limited to 'lib/renderers/wayland')
-rw-r--r-- | lib/renderers/wayland/wayland.c | 2 | ||||
-rw-r--r-- | lib/renderers/wayland/wayland.h | 2 | ||||
-rw-r--r-- | lib/renderers/wayland/window.c | 6 |
3 files changed, 6 insertions, 4 deletions
diff --git a/lib/renderers/wayland/wayland.c b/lib/renderers/wayland/wayland.c index 18f335f..5d85479 100644 --- a/lib/renderers/wayland/wayland.c +++ b/lib/renderers/wayland/wayland.c @@ -184,7 +184,7 @@ constructor(struct bm_menu *menu) goto fail; wayland->window.width = 800; - wayland->window.height = 14; + wayland->window.height = 1; if (!(wayland->display = wl_display_connect(NULL))) goto fail; diff --git a/lib/renderers/wayland/wayland.h b/lib/renderers/wayland/wayland.h index d6c0915..dff6aba 100644 --- a/lib/renderers/wayland/wayland.h +++ b/lib/renderers/wayland/wayland.h @@ -85,7 +85,7 @@ struct window { uint32_t displayed; struct { - void (*render)(struct cairo *cairo, uint32_t width, uint32_t height, const struct bm_menu *menu, struct cairo_paint_result *result); + void (*render)(struct cairo *cairo, uint32_t width, uint32_t height, uint32_t max_height, const struct bm_menu *menu, struct cairo_paint_result *result); } notify; }; diff --git a/lib/renderers/wayland/window.c b/lib/renderers/wayland/window.c index a9c9edc..bfff232 100644 --- a/lib/renderers/wayland/window.c +++ b/lib/renderers/wayland/window.c @@ -149,8 +149,10 @@ create_buffer(struct wl_shm *shm, struct buffer *buffer, int32_t width, int32_t if (!(surf = cairo_image_surface_create_for_data(data, CAIRO_FORMAT_ARGB32, width, height, stride))) goto fail; - if (!bm_cairo_create_for_surface(&buffer->cairo, surf)) + if (!bm_cairo_create_for_surface(&buffer->cairo, surf)) { + cairo_surface_destroy(surf); goto fail; + } buffer->width = width; buffer->height = height; @@ -266,7 +268,7 @@ bm_wl_window_render(struct window *window, const struct bm_menu *menu) break; struct cairo_paint_result result; - window->notify.render(&buffer->cairo, buffer->width, buffer->height, menu, &result); + window->notify.render(&buffer->cairo, buffer->width, fmin(buffer->height, window->max_height), window->max_height, menu, &result); window->displayed = result.displayed; if (window->height == result.height) |