mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-11-21 22:52:20 +00:00
output: Set output mode during main commit
Removes duplication across all the backends to finally apply the mode to the output.
This commit is contained in:
parent
530e58b96e
commit
8243399385
@ -762,19 +762,6 @@ bool drm_connector_commit_state(struct wlr_drm_connector *conn,
|
||||
conn->cursor_enabled = false;
|
||||
conn->crtc = NULL;
|
||||
}
|
||||
if (pending.base->committed & WLR_OUTPUT_STATE_MODE) {
|
||||
switch (pending.base->mode_type) {
|
||||
case WLR_OUTPUT_STATE_MODE_FIXED:
|
||||
wlr_output_update_mode(&conn->output, pending.base->mode);
|
||||
break;
|
||||
case WLR_OUTPUT_STATE_MODE_CUSTOM:
|
||||
wlr_output_update_custom_mode(&conn->output,
|
||||
pending.base->custom_mode.width,
|
||||
pending.base->custom_mode.height,
|
||||
pending.base->custom_mode.refresh);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (flags & DRM_MODE_PAGE_FLIP_EVENT) {
|
||||
conn->pending_page_flip_crtc = conn->crtc->id;
|
||||
|
||||
|
@ -27,7 +27,6 @@ static bool output_set_custom_mode(struct wlr_headless_output *output,
|
||||
|
||||
output->frame_delay = 1000000 / refresh;
|
||||
|
||||
wlr_output_update_custom_mode(&output->wlr_output, width, height, refresh);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -566,11 +566,6 @@ static bool output_commit(struct wlr_output *wlr_output,
|
||||
|
||||
wl_display_flush(output->backend->remote_display);
|
||||
|
||||
if (state->committed & WLR_OUTPUT_STATE_MODE) {
|
||||
wlr_output_update_custom_mode(wlr_output,
|
||||
state->custom_mode.width, state->custom_mode.height, 0);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -74,8 +74,6 @@ static bool output_set_custom_mode(struct wlr_output *wlr_output,
|
||||
return false;
|
||||
}
|
||||
|
||||
wlr_output_update_custom_mode(&output->wlr_output, width, height, 0);
|
||||
|
||||
// Move the pointer to its new location
|
||||
update_x11_pointer_position(output, output->x11->time);
|
||||
|
||||
|
@ -814,6 +814,20 @@ bool wlr_output_commit_state(struct wlr_output *output,
|
||||
wlr_swapchain_set_buffer_submitted(output->swapchain, pending.buffer);
|
||||
}
|
||||
|
||||
if (pending.committed & WLR_OUTPUT_STATE_MODE) {
|
||||
switch (pending.mode_type) {
|
||||
case WLR_OUTPUT_STATE_MODE_FIXED:
|
||||
wlr_output_update_mode(output, pending.mode);
|
||||
break;
|
||||
case WLR_OUTPUT_STATE_MODE_CUSTOM:
|
||||
wlr_output_update_custom_mode(output,
|
||||
pending.custom_mode.width,
|
||||
pending.custom_mode.height,
|
||||
pending.custom_mode.refresh);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
struct wlr_output_event_commit event = {
|
||||
.output = output,
|
||||
.committed = pending.committed,
|
||||
|
Loading…
Reference in New Issue
Block a user