mirror of
https://github.com/labwc/labwc.git
synced 2025-11-01 22:58:47 -04:00
osd: simplify to only use one view-array
This commit is contained in:
parent
57b9efeb45
commit
f2479090a2
1 changed files with 7 additions and 14 deletions
21
src/osd.c
21
src/osd.c
|
|
@ -258,7 +258,7 @@ get_title(struct view *view)
|
|||
static void
|
||||
render_osd(struct server *server, cairo_t *cairo, int w, int h,
|
||||
struct wl_list *node_list, bool show_workspace,
|
||||
const char *workspace_name, enum lab_view_criteria criteria)
|
||||
const char *workspace_name, struct wl_array *views)
|
||||
{
|
||||
struct view *cycle_view = server->osd_state.cycle_view;
|
||||
struct theme *theme = server->theme;
|
||||
|
|
@ -317,10 +317,7 @@ render_osd(struct server *server, cairo_t *cairo, int w, int h,
|
|||
|
||||
/* Draw text for each node */
|
||||
struct view **view;
|
||||
struct wl_array views;
|
||||
wl_array_init(&views);
|
||||
desktop_views_append(server, &views, criteria);
|
||||
wl_array_for_each(view, &views) {
|
||||
wl_array_for_each(view, views) {
|
||||
/*
|
||||
* OSD border
|
||||
* +---------------------------------+
|
||||
|
|
@ -391,23 +388,18 @@ render_osd(struct server *server, cairo_t *cairo, int w, int h,
|
|||
}
|
||||
free(buf.buf);
|
||||
g_object_unref(layout);
|
||||
wl_array_release(&views);
|
||||
|
||||
cairo_surface_flush(surf);
|
||||
}
|
||||
|
||||
static int
|
||||
get_osd_height(struct server *server, enum lab_view_criteria criteria)
|
||||
get_osd_height(struct server *server, struct wl_array *views)
|
||||
{
|
||||
int height = 0;
|
||||
struct wl_array views;
|
||||
wl_array_init(&views);
|
||||
desktop_views_append(server, &views, criteria);
|
||||
|
||||
/* Includes item border width */
|
||||
size_t len = views.size / sizeof(struct view *);
|
||||
size_t len = views->size / sizeof(struct view *);
|
||||
height += len * rc.theme->osd_window_switcher_item_height;
|
||||
wl_array_release(&views);
|
||||
|
||||
/* Add OSD border width */
|
||||
height += 2 * rc.theme->osd_border_width;
|
||||
|
|
@ -434,7 +426,7 @@ display_osd(struct output *output)
|
|||
|
||||
float scale = output->wlr_output->scale;
|
||||
int w = theme->osd_window_switcher_width;
|
||||
int h = get_osd_height(server, criteria);
|
||||
int h = get_osd_height(server, &views);
|
||||
if (show_workspace) {
|
||||
/* workspace indicator */
|
||||
h += theme->osd_window_switcher_item_height;
|
||||
|
|
@ -449,7 +441,8 @@ display_osd(struct output *output)
|
|||
/* Render OSD image */
|
||||
cairo_t *cairo = output->osd_buffer->cairo;
|
||||
render_osd(server, cairo, w, h, node_list, show_workspace,
|
||||
workspace_name, criteria);
|
||||
workspace_name, &views);
|
||||
wl_array_release(&views);
|
||||
|
||||
struct wlr_scene_buffer *scene_buffer = wlr_scene_buffer_create(
|
||||
output->osd_tree, &output->osd_buffer->base);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue