]> git.mdlowis.com Git - proto/labwc.git/commitdiff
Reload buttons in SIGHUP
authorJohan Malm <jgm323@gmail.com>
Sun, 21 Feb 2021 21:14:06 +0000 (21:14 +0000)
committerJohan Malm <jgm323@gmail.com>
Sun, 21 Feb 2021 21:14:06 +0000 (21:14 +0000)
Call xbm_load() from theme_init()

include/theme/theme.h
src/main.c
src/server.c
src/theme/theme.c

index 58890c0519c197c824ba47abe9b79e9b4a390b93..86e59ee4d1d96aabadb3f2fa0ab28a131f9b0ab1 100644 (file)
@@ -43,11 +43,11 @@ extern struct theme theme;
 void parse_hexstr(const char *hex, float *rgba);
 
 /**
- * theme_read - read theme into global theme struct
+ * theme_init - read theme incl. buttons into global theme struct
  * @theme_name: theme-name in <theme-dir>/<theme-name>/openbox-3/themerc
  * Note <theme-dir> is obtained in theme-dir.c
  */
-void theme_read(const char *theme_name);
+void theme_init(struct wlr_renderer *renderer, const char *theme_name);
 
 /**
  * theme_builin - apply built-in theme similar to Clearlooks
index 190fe01651d8d83110ec118c4fe41c2c04bd8a51..f0661edcb31babb1014d675e7cea37ec95a8eac9 100644 (file)
@@ -76,8 +76,7 @@ main(int argc, char *argv[])
        server_init(&server);
        server_start(&server);
 
-       theme_read(rc.theme_name);
-       xbm_load(server.renderer);
+       theme_init(server.renderer, rc.theme_name);
 
        struct menu rootmenu = { 0 };
        menu_init_rootmenu(&server, &rootmenu);
index df28f0db637afa0f14df5b1f21d86fe402aa7bfb..bc046f13aa4934e5cd1943b5869fb7d36ae386cc 100644 (file)
@@ -11,6 +11,7 @@
 #include "config/rcxml.h"
 #include "labwc.h"
 #include "layers.h"
+#include "menu/menu.h"
 #include "theme/theme.h"
 
 static struct wlr_compositor *compositor;
@@ -23,10 +24,10 @@ static struct server *g_server;
 static void
 reload_config_and_theme(void)
 {
-       rcxml_finish();
        /* TODO: use rc.config_path */
+       rcxml_finish();
        rcxml_read(NULL);
-       theme_read(rc.theme_name);
+       theme_init(g_server->renderer, rc.theme_name);
        menu_reconfigure(g_server, g_server->rootmenu);
        damage_all_outputs(g_server);
 }
index f72b1e2bc61eb3a8eb42855f75285ebc1687d30b..f6b50355d2e42692877bd954d49391b02f0067b8 100644 (file)
@@ -10,6 +10,7 @@
 #include "common/log.h"
 #include "common/string-helpers.h"
 #include "theme/theme.h"
+#include "xbm/xbm.h"
 
 static int
 hex_to_dec(char c)
@@ -97,7 +98,7 @@ process_line(char *line)
        entry(key, value);
 }
 
-void
+static void
 theme_read(const char *theme_name)
 {
        FILE *stream = NULL;
@@ -126,3 +127,10 @@ theme_read(const char *theme_name)
        free(line);
        fclose(stream);
 }
+
+void
+theme_init(struct wlr_renderer *renderer, const char *theme_name)
+{
+       theme_read(theme_name);
+       xbm_load(renderer);
+}