view: Add view_reload_ssd()

Gather related logic from `reload_config_and_theme()` in `server.c` and
`ssd_reload()` in `ssd.c` into a new function, `view_reload_ssd()`.

Also drop the `view->mapped` check since we want to update any view that
has SSD nodes created, mapped or not.
This commit is contained in:
John Lindgren 2022-11-26 02:13:42 -05:00 committed by Johan Malm
parent b150e11cd3
commit ac9228e7f8
5 changed files with 12 additions and 16 deletions

View file

@ -150,7 +150,6 @@ void ssd_create(struct view *view);
void ssd_set_active(struct view *view, bool active);
void ssd_update_title(struct view *view);
void ssd_update_geometry(struct view *view);
void ssd_reload(struct view *view);
void ssd_destroy(struct view *view);
void ssd_update_button_hover(struct wlr_scene_node *node,
struct ssd_hover_state *hover_state);

View file

@ -154,6 +154,7 @@ void view_snap_to_edge(struct view *view, const char *direction,
const char *view_get_string_prop(struct view *view, const char *prop);
void view_update_title(struct view *view);
void view_update_app_id(struct view *view);
void view_reload_ssd(struct view *view);
void view_impl_map(struct view *view);
void view_adjust_size(struct view *view, int *w, int *h);

View file

@ -16,7 +16,6 @@
#include "labwc.h"
#include "layers.h"
#include "menu/menu.h"
#include "ssd.h"
#include "theme.h"
#include "view.h"
#include "workspaces.h"
@ -40,10 +39,7 @@ reload_config_and_theme(void)
struct view *view;
wl_list_for_each(view, &g_server->views, link) {
if (!view->mapped || !view->ssd_enabled) {
continue;
}
ssd_reload(view);
view_reload_ssd(view);
}
menu_reconfigure(g_server);

View file

@ -191,16 +191,6 @@ ssd_update_geometry(struct view *view)
view->ssd.state.y = view->y;
}
void ssd_reload(struct view *view)
{
if (!view->ssd.tree) {
return;
}
ssd_destroy(view);
ssd_create(view);
}
void
ssd_destroy(struct view *view)
{

View file

@ -871,6 +871,16 @@ view_update_app_id(struct view *view)
view->toplevel_handle, app_id);
}
void
view_reload_ssd(struct view *view)
{
assert(view);
if (view->ssd_enabled) {
ssd_destroy(view);
ssd_create(view);
}
}
void
view_destroy(struct view *view)
{