Force roundtrip after applying settings

This commit is contained in:
Jason Francis 2019-08-14 14:20:11 -04:00
parent 3d69ae73d3
commit 27d7067762
3 changed files with 9 additions and 3 deletions

View File

@ -150,7 +150,10 @@ static gboolean send_apply(gpointer data) {
wl_list_insert(outputs, &output->link);
fill_output_from_form(output, GTK_WIDGET(form_iter->data));
}
wd_apply_state(state, outputs);
GdkWindow *window = gtk_widget_get_window(state->stack);
GdkDisplay *display = gdk_window_get_display(window);
struct wl_display *wl_display = gdk_wayland_display_get_wl_display(display);
wd_apply_state(state, outputs, wl_display);
state->apply_pending = false;
return FALSE;
}

View File

@ -100,7 +100,8 @@ static const struct zwlr_output_configuration_v1_listener config_listener = {
.cancelled = config_handle_cancelled,
};
void wd_apply_state(struct wd_state *state, struct wl_list *new_outputs) {
void wd_apply_state(struct wd_state *state, struct wl_list *new_outputs,
struct wl_display *display) {
struct zwlr_output_configuration_v1 *config =
zwlr_output_manager_v1_create_configuration(state->output_manager, state->serial);
@ -154,6 +155,8 @@ void wd_apply_state(struct wd_state *state, struct wl_list *new_outputs) {
}
zwlr_output_configuration_v1_apply(config);
wl_display_roundtrip(display);
}
static void wd_frame_destroy(struct wd_frame *frame) {

View File

@ -281,7 +281,7 @@ void wd_add_output_management_listener(struct wd_state *state, struct wl_display
/*
* Sends updated display configuration back to the compositor.
*/
void wd_apply_state(struct wd_state *state, struct wl_list *new_outputs);
void wd_apply_state(struct wd_state *state, struct wl_list *new_outputs, struct wl_display *display);
/*
* Queues capture of the next frame of all screens.