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
|
static int
|
||||||
run(struct bar_run_context *run_ctx)
|
run(struct bar_run_context *run_ctx)
|
||||||
{
|
{
|
||||||
|
@ -428,6 +430,8 @@ run(struct bar_run_context *run_ctx)
|
||||||
close(ready_fd);
|
close(ready_fd);
|
||||||
LOG_DBG("all modules started");
|
LOG_DBG("all modules started");
|
||||||
|
|
||||||
|
refresh(_bar);
|
||||||
|
|
||||||
int fd = xcb_get_file_descriptor(bar->conn);
|
int fd = xcb_get_file_descriptor(bar->conn);
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
|
|
|
@ -384,7 +384,6 @@ static bool
|
||||||
talk_to_xkb(struct module_run_context *ctx, xcb_connection_t *conn)
|
talk_to_xkb(struct module_run_context *ctx, xcb_connection_t *conn)
|
||||||
{
|
{
|
||||||
struct private *m = ctx->module->private;
|
struct private *m = ctx->module->private;
|
||||||
const struct bar *bar = ctx->module->bar;
|
|
||||||
|
|
||||||
if (!xkb_enable(conn))
|
if (!xkb_enable(conn))
|
||||||
goto err;
|
goto err;
|
||||||
|
@ -412,7 +411,6 @@ talk_to_xkb(struct module_run_context *ctx, xcb_connection_t *conn)
|
||||||
|
|
||||||
m->layouts = layouts;
|
m->layouts = layouts;
|
||||||
m->current = current;
|
m->current = current;
|
||||||
bar->refresh(bar);
|
|
||||||
|
|
||||||
module_signal_ready(ctx);
|
module_signal_ready(ctx);
|
||||||
return event_loop(ctx, conn, xkb_event_base);
|
return event_loop(ctx, conn, xkb_event_base);
|
||||||
|
|
|
@ -14,6 +14,8 @@
|
||||||
#include <xcb/xcb.h>
|
#include <xcb/xcb.h>
|
||||||
#include <xcb/xcb_event.h>
|
#include <xcb/xcb_event.h>
|
||||||
|
|
||||||
|
#define LOG_MODULE "xkb"
|
||||||
|
#include "../../log.h"
|
||||||
#include "../../bar.h"
|
#include "../../bar.h"
|
||||||
#include "../../xcb.h"
|
#include "../../xcb.h"
|
||||||
|
|
||||||
|
@ -212,7 +214,6 @@ run(struct module_run_context *ctx)
|
||||||
update_active_window(m);
|
update_active_window(m);
|
||||||
update_application(mod);
|
update_application(mod);
|
||||||
update_title(mod);
|
update_title(mod);
|
||||||
mod->bar->refresh(mod->bar);
|
|
||||||
|
|
||||||
module_signal_ready(ctx);
|
module_signal_ready(ctx);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue