diff options
Diffstat (limited to 'lib/renderers/wayland/window.c')
-rw-r--r-- | lib/renderers/wayland/window.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/renderers/wayland/window.c b/lib/renderers/wayland/window.c index 21555b8..d93a8c9 100644 --- a/lib/renderers/wayland/window.c +++ b/lib/renderers/wayland/window.c @@ -247,7 +247,7 @@ static const struct xdg_surface_listener xdg_surface_listener = { }; void -bm_wl_window_render(struct window *window, const struct bm_menu *menu) +bm_wl_window_render(struct window *window, const struct bm_menu *menu, uint32_t lines) { assert(window && menu); @@ -255,6 +255,13 @@ bm_wl_window_render(struct window *window, const struct bm_menu *menu) if (!(buffer = next_buffer(window))) return; + cairo_font_extents_t fe; + bm_cairo_get_font_extents(&buffer->cairo, &menu->font, &fe); + window->height = lines * fe.height + 4; + + if (window->height != buffer->height && !(buffer = next_buffer(window))) + return; + if (window->notify.render) window->displayed = window->notify.render(&buffer->cairo, buffer->width, buffer->height, menu); |