aboutsummaryrefslogtreecommitdiffstats
path: root/swaybg
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2018-03-27 23:08:51 -0400
committerLibravatar Drew DeVault <sir@cmpwn.com>2018-03-28 14:25:19 -0400
commit653853062f15639c97d02a8d67443506ce3af69d (patch)
tree07e8684778b2756b426ef747b985c1fa54b64c31 /swaybg
parentRemove obsolete client code (diff)
downloadsway-653853062f15639c97d02a8d67443506ce3af69d.tar.gz
sway-653853062f15639c97d02a8d67443506ce3af69d.tar.zst
sway-653853062f15639c97d02a8d67443506ce3af69d.zip
Refactor configure/ack configure/commit flow
Diffstat (limited to 'swaybg')
-rw-r--r--swaybg/main.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/swaybg/main.c b/swaybg/main.c
index 038b8ea6..62ddec6c 100644
--- a/swaybg/main.c
+++ b/swaybg/main.c
@@ -134,10 +134,6 @@ static void render_image(struct swaybg_state *state) {
134} 134}
135 135
136static void render_frame(struct swaybg_state *state) { 136static void render_frame(struct swaybg_state *state) {
137 if (!state->run_display) {
138 return;
139 }
140
141 state->current_buffer = get_next_buffer(state->shm, 137 state->current_buffer = get_next_buffer(state->shm,
142 state->buffers, state->width, state->height); 138 state->buffers, state->width, state->height);
143 cairo_t *cairo = state->current_buffer->cairo; 139 cairo_t *cairo = state->current_buffer->cairo;
@@ -198,8 +194,8 @@ static void layer_surface_configure(void *data,
198 struct swaybg_state *state = data; 194 struct swaybg_state *state = data;
199 state->width = width; 195 state->width = width;
200 state->height = height; 196 state->height = height;
201 render_frame(state);
202 zwlr_layer_surface_v1_ack_configure(surface, serial); 197 zwlr_layer_surface_v1_ack_configure(surface, serial);
198 render_frame(state);
203} 199}
204 200
205static void layer_surface_closed(void *data, 201static void layer_surface_closed(void *data,
@@ -280,6 +276,10 @@ int main(int argc, const char **argv) {
280 return 1; 276 return 1;
281 } 277 }
282 278
279 if (!prepare_context(&state)) {
280 return 1;
281 }
282
283 state.display = wl_display_connect(NULL); 283 state.display = wl_display_connect(NULL);
284 if (!state.display) { 284 if (!state.display) {
285 wlr_log(L_ERROR, "Failed to create display\n"); 285 wlr_log(L_ERROR, "Failed to create display\n");
@@ -323,12 +323,7 @@ int main(int argc, const char **argv) {
323 wl_surface_commit(state.surface); 323 wl_surface_commit(state.surface);
324 wl_display_roundtrip(state.display); 324 wl_display_roundtrip(state.display);
325 325
326 if (!prepare_context(&state)) {
327 return 1;
328 }
329
330 state.run_display = true; 326 state.run_display = true;
331 render_frame(&state);
332 while (wl_display_dispatch(state.display) != -1 && state.run_display) { 327 while (wl_display_dispatch(state.display) != -1 && state.run_display) {
333 // This space intentionally left blank 328 // This space intentionally left blank
334 } 329 }