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)  | 
