forked from external/yambar
bar: call refresh() after all modules have been loaded
This also means that modules do *not* have to call bar->refresh() just before/after calling module_signal_ready(). As long as the module's initial state has been correctly/completely set up before it calls module_signal_ready(), the module *only* has to call bar->refresh() when it's state changes.
This commit is contained in:
parent
3af0280304
commit
5306ebd4ed
3 changed files with 6 additions and 3 deletions
4
bar.c
4
bar.c
|
@ -171,6 +171,8 @@ expose(const struct bar *_bar)
|
|||
}
|
||||
}
|
||||
|
||||
static void refresh(const struct bar *bar);
|
||||
|
||||
static int
|
||||
run(struct bar_run_context *run_ctx)
|
||||
{
|
||||
|
@ -428,6 +430,8 @@ run(struct bar_run_context *run_ctx)
|
|||
close(ready_fd);
|
||||
LOG_DBG("all modules started");
|
||||
|
||||
refresh(_bar);
|
||||
|
||||
int fd = xcb_get_file_descriptor(bar->conn);
|
||||
|
||||
while (true) {
|
||||
|
|
|
@ -384,7 +384,6 @@ static bool
|
|||
talk_to_xkb(struct module_run_context *ctx, xcb_connection_t *conn)
|
||||
{
|
||||
struct private *m = ctx->module->private;
|
||||
const struct bar *bar = ctx->module->bar;
|
||||
|
||||
if (!xkb_enable(conn))
|
||||
goto err;
|
||||
|
@ -412,7 +411,6 @@ talk_to_xkb(struct module_run_context *ctx, xcb_connection_t *conn)
|
|||
|
||||
m->layouts = layouts;
|
||||
m->current = current;
|
||||
bar->refresh(bar);
|
||||
|
||||
module_signal_ready(ctx);
|
||||
return event_loop(ctx, conn, xkb_event_base);
|
||||
|
|
|
@ -14,6 +14,8 @@
|
|||
#include <xcb/xcb.h>
|
||||
#include <xcb/xcb_event.h>
|
||||
|
||||
#define LOG_MODULE "xkb"
|
||||
#include "../../log.h"
|
||||
#include "../../bar.h"
|
||||
#include "../../xcb.h"
|
||||
|
||||
|
@ -212,7 +214,6 @@ run(struct module_run_context *ctx)
|
|||
update_active_window(m);
|
||||
update_application(mod);
|
||||
update_title(mod);
|
||||
mod->bar->refresh(mod->bar);
|
||||
|
||||
module_signal_ready(ctx);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue