From ac9228e7f8220bfa47fbeaf49987f542eda8a8ec Mon Sep 17 00:00:00 2001 From: John Lindgren Date: Sat, 26 Nov 2022 02:13:42 -0500 Subject: [PATCH] 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. --- include/ssd.h | 1 - include/view.h | 1 + src/server.c | 6 +----- src/ssd/ssd.c | 10 ---------- src/view.c | 10 ++++++++++ 5 files changed, 12 insertions(+), 16 deletions(-) diff --git a/include/ssd.h b/include/ssd.h index 21ef6d87..06a3e1d3 100644 --- a/include/ssd.h +++ b/include/ssd.h @@ -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); diff --git a/include/view.h b/include/view.h index 47263311..a174b1b7 100644 --- a/include/view.h +++ b/include/view.h @@ -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); diff --git a/src/server.c b/src/server.c index 6107c3ea..a1f40f99 100644 --- a/src/server.c +++ b/src/server.c @@ -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); diff --git a/src/ssd/ssd.c b/src/ssd/ssd.c index 2b2feccd..fdfc2cc2 100644 --- a/src/ssd/ssd.c +++ b/src/ssd/ssd.c @@ -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) { diff --git a/src/view.c b/src/view.c index 221c54c4..16803389 100644 --- a/src/view.c +++ b/src/view.c @@ -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) {