mirror of
https://github.com/labwc/labwc.git
synced 2026-03-05 01:40:24 -05:00
src/osd.c: Integrate preview outline into OSD state
This commit is contained in:
parent
15a5b710db
commit
ca3c83aafc
2 changed files with 6 additions and 7 deletions
|
|
@ -202,8 +202,6 @@ struct server {
|
||||||
/* Tree for built in menu */
|
/* Tree for built in menu */
|
||||||
struct wlr_scene_tree *menu_tree;
|
struct wlr_scene_tree *menu_tree;
|
||||||
|
|
||||||
struct multi_rect *osd_preview_outline;
|
|
||||||
|
|
||||||
/* Workspaces */
|
/* Workspaces */
|
||||||
struct wl_list workspaces; /* struct workspace.link */
|
struct wl_list workspaces; /* struct workspace.link */
|
||||||
struct workspace *workspace_current;
|
struct workspace *workspace_current;
|
||||||
|
|
@ -236,6 +234,7 @@ struct server {
|
||||||
bool preview_was_enabled;
|
bool preview_was_enabled;
|
||||||
struct wlr_scene_node *preview_node;
|
struct wlr_scene_node *preview_node;
|
||||||
struct wlr_scene_node *preview_anchor;
|
struct wlr_scene_node *preview_anchor;
|
||||||
|
struct multi_rect *preview_outline;
|
||||||
} osd_state;
|
} osd_state;
|
||||||
|
|
||||||
struct theme *theme;
|
struct theme *theme;
|
||||||
|
|
|
||||||
10
src/osd.c
10
src/osd.c
|
|
@ -90,7 +90,7 @@ osd_update_preview_outlines(struct view *view)
|
||||||
{
|
{
|
||||||
/* Create / Update preview outline tree */
|
/* Create / Update preview outline tree */
|
||||||
struct server *server = view->server;
|
struct server *server = view->server;
|
||||||
struct multi_rect *rect = view->server->osd_preview_outline;
|
struct multi_rect *rect = view->server->osd_state.preview_outline;
|
||||||
if (!rect) {
|
if (!rect) {
|
||||||
int line_width = server->theme->osd_border_width;
|
int line_width = server->theme->osd_border_width;
|
||||||
float *colors[] = {
|
float *colors[] = {
|
||||||
|
|
@ -100,7 +100,7 @@ osd_update_preview_outlines(struct view *view)
|
||||||
};
|
};
|
||||||
rect = multi_rect_create(&server->scene->tree, colors, line_width);
|
rect = multi_rect_create(&server->scene->tree, colors, line_width);
|
||||||
wlr_scene_node_place_above(&rect->tree->node, &server->menu_tree->node);
|
wlr_scene_node_place_above(&rect->tree->node, &server->menu_tree->node);
|
||||||
server->osd_preview_outline = rect;
|
server->osd_state.preview_outline = rect;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct wlr_box geo = ssd_max_extents(view);
|
struct wlr_box geo = ssd_max_extents(view);
|
||||||
|
|
@ -120,10 +120,10 @@ osd_finish(struct server *server)
|
||||||
destroy_osd_nodes(output);
|
destroy_osd_nodes(output);
|
||||||
wlr_scene_node_set_enabled(&output->osd_tree->node, false);
|
wlr_scene_node_set_enabled(&output->osd_tree->node, false);
|
||||||
}
|
}
|
||||||
if (server->osd_preview_outline) {
|
if (server->osd_state.preview_outline) {
|
||||||
/* Destroy the whole multi_rect so we can easily react to new themes */
|
/* Destroy the whole multi_rect so we can easily react to new themes */
|
||||||
wlr_scene_node_destroy(&server->osd_preview_outline->tree->node);
|
wlr_scene_node_destroy(&server->osd_state.preview_outline->tree->node);
|
||||||
server->osd_preview_outline = NULL;
|
server->osd_state.preview_outline = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue