diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-03-27 23:08:51 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2018-03-28 14:25:19 -0400 |
commit | 7df5461d5ec89dcb7766f439b421b05285c2bf6a (patch) | |
tree | f7b96b7cab3f42e09407a7e75296ba02038f55e4 | |
parent | 82e7a759178ef719f918e50882c8c51439334393 (diff) | |
download | swaybg-7df5461d5ec89dcb7766f439b421b05285c2bf6a.tar.gz swaybg-7df5461d5ec89dcb7766f439b421b05285c2bf6a.tar.bz2 |
Refactor configure/ack configure/commit flow
Diffstat (limited to '')
-rw-r--r-- | main.c | 15 |
1 files changed, 5 insertions, 10 deletions
@@ -134,10 +134,6 @@ static void render_image(struct swaybg_state *state) { } static void render_frame(struct swaybg_state *state) { - if (!state->run_display) { - return; - } - state->current_buffer = get_next_buffer(state->shm, state->buffers, state->width, state->height); cairo_t *cairo = state->current_buffer->cairo; @@ -198,8 +194,8 @@ static void layer_surface_configure(void *data, struct swaybg_state *state = data; state->width = width; state->height = height; - render_frame(state); zwlr_layer_surface_v1_ack_configure(surface, serial); + render_frame(state); } static void layer_surface_closed(void *data, @@ -280,6 +276,10 @@ int main(int argc, const char **argv) { return 1; } + if (!prepare_context(&state)) { + return 1; + } + state.display = wl_display_connect(NULL); if (!state.display) { wlr_log(L_ERROR, "Failed to create display\n"); @@ -323,12 +323,7 @@ int main(int argc, const char **argv) { wl_surface_commit(state.surface); wl_display_roundtrip(state.display); - if (!prepare_context(&state)) { - return 1; - } - state.run_display = true; - render_frame(&state); while (wl_display_dispatch(state.display) != -1 && state.run_display) { // This space intentionally left blank } |