diff options
Diffstat (limited to 'sway/desktop/output.c')
-rw-r--r-- | sway/desktop/output.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c index 6bbaf938..e250d450 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c | |||
@@ -216,11 +216,12 @@ static void output_frame_notify(struct wl_listener *listener, void *data) { | |||
216 | struct sway_output *soutput = wl_container_of(listener, soutput, frame); | 216 | struct sway_output *soutput = wl_container_of(listener, soutput, frame); |
217 | struct wlr_output *wlr_output = data; | 217 | struct wlr_output *wlr_output = data; |
218 | struct sway_server *server = soutput->server; | 218 | struct sway_server *server = soutput->server; |
219 | |||
220 | float clear_color[] = {0.25f, 0.25f, 0.25f, 1.0f}; | 219 | float clear_color[] = {0.25f, 0.25f, 0.25f, 1.0f}; |
221 | struct wlr_renderer *renderer = wlr_backend_get_renderer(wlr_output->backend); | 220 | struct wlr_renderer *renderer = wlr_backend_get_renderer(wlr_output->backend); |
222 | wlr_renderer_clear(renderer, &clear_color); | 221 | wlr_renderer_clear(renderer, &clear_color); |
223 | 222 | ||
223 | wlr_renderer_clear(renderer, &clear_color); | ||
224 | |||
224 | int buffer_age = -1; | 225 | int buffer_age = -1; |
225 | wlr_output_make_current(wlr_output, &buffer_age); | 226 | wlr_output_make_current(wlr_output, &buffer_age); |
226 | wlr_renderer_begin(server->renderer, wlr_output); | 227 | wlr_renderer_begin(server->renderer, wlr_output); |
@@ -254,8 +255,8 @@ static void output_frame_notify(struct wl_listener *listener, void *data) { | |||
254 | soutput->last_frame = now; | 255 | soutput->last_frame = now; |
255 | } | 256 | } |
256 | 257 | ||
257 | void output_add_notify(struct wl_listener *listener, void *data) { | 258 | void handle_new_output(struct wl_listener *listener, void *data) { |
258 | struct sway_server *server = wl_container_of(listener, server, output_add); | 259 | struct sway_server *server = wl_container_of(listener, server, new_output); |
259 | struct wlr_output *wlr_output = data; | 260 | struct wlr_output *wlr_output = data; |
260 | wlr_log(L_DEBUG, "New output %p: %s", wlr_output, wlr_output->name); | 261 | wlr_log(L_DEBUG, "New output %p: %s", wlr_output, wlr_output->name); |
261 | 262 | ||
@@ -280,12 +281,14 @@ void output_add_notify(struct wl_listener *listener, void *data) { | |||
280 | 281 | ||
281 | sway_input_manager_configure_xcursor(input_manager); | 282 | sway_input_manager_configure_xcursor(input_manager); |
282 | 283 | ||
283 | output->frame.notify = output_frame_notify; | ||
284 | wl_signal_add(&wlr_output->events.frame, &output->frame); | 284 | wl_signal_add(&wlr_output->events.frame, &output->frame); |
285 | output->frame.notify = output_frame_notify; | ||
286 | |||
287 | wl_signal_add(&wlr_output->events.destroy, &output->output_destroy); | ||
288 | output->output_destroy.notify = handle_output_destroy; | ||
285 | } | 289 | } |
286 | 290 | ||
287 | void output_remove_notify(struct wl_listener *listener, void *data) { | 291 | void handle_output_destroy(struct wl_listener *listener, void *data) { |
288 | struct sway_server *server = wl_container_of(listener, server, output_remove); | ||
289 | struct wlr_output *wlr_output = data; | 292 | struct wlr_output *wlr_output = data; |
290 | wlr_log(L_DEBUG, "Output %p %s removed", wlr_output, wlr_output->name); | 293 | wlr_log(L_DEBUG, "Output %p %s removed", wlr_output, wlr_output->name); |
291 | 294 | ||