mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-22 01:40:17 -05:00
server: sigusr1/2: update conf object with the "new" theme
When sending SIGUSR1/SIGUSR2 to a server process, all currently running client instances change their theme. But before this patch, all future instances used the original theme. With this patch, the server owned config object is updated with the selected theme, thus making new instances use the same theme as well.
This commit is contained in:
parent
7636f264a8
commit
6eedc88d70
3 changed files with 49 additions and 16 deletions
24
server.c
24
server.c
|
|
@ -30,7 +30,7 @@ struct client;
|
|||
struct terminal_instance;
|
||||
|
||||
struct server {
|
||||
const struct config *conf;
|
||||
struct config *conf;
|
||||
struct fdm *fdm;
|
||||
struct reaper *reaper;
|
||||
struct wayland *wayl;
|
||||
|
|
@ -505,7 +505,7 @@ prepare_socket(int fd)
|
|||
}
|
||||
|
||||
struct server *
|
||||
server_init(const struct config *conf, struct fdm *fdm, struct reaper *reaper,
|
||||
server_init(struct config *conf, struct fdm *fdm, struct reaper *reaper,
|
||||
struct wayland *wayl)
|
||||
{
|
||||
int fd;
|
||||
|
|
@ -617,3 +617,23 @@ server_destroy(struct server *server)
|
|||
unlink(server->sock_path);
|
||||
free(server);
|
||||
}
|
||||
|
||||
void
|
||||
server_global_theme_switch_to_1(struct server *server)
|
||||
{
|
||||
server->conf->initial_color_theme = COLOR_THEME1;
|
||||
tll_foreach(server->clients, it)
|
||||
term_theme_switch_to_1(it->item->instance->terminal);
|
||||
tll_foreach(server->terminals, it)
|
||||
term_theme_switch_to_1(it->item->terminal);
|
||||
}
|
||||
|
||||
void
|
||||
server_global_theme_switch_to_2(struct server *server)
|
||||
{
|
||||
server->conf->initial_color_theme = COLOR_THEME2;
|
||||
tll_foreach(server->clients, it)
|
||||
term_theme_switch_to_2(it->item->instance->terminal);
|
||||
tll_foreach(server->terminals, it)
|
||||
term_theme_switch_to_2(it->item->terminal);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue