diff options
author | Simon Ser <contact@emersion.fr> | 2021-07-30 23:02:30 +0200 |
---|---|---|
committer | Simon Zeni <simon@bl4ckb0ne.ca> | 2021-08-02 09:28:21 -0400 |
commit | 923258b0bedef4ef9cfc02b5c30b8cb8c51ec0f8 (patch) | |
tree | 4d0efc8f44528e47a145126ca99229b4083ee444 | |
parent | f12bacf4b41e183f9efb352e20db60c7cc3898db (diff) |
backend/drm: preserve mode order from kernel
The kernel orders the mode list from highest to lowest. Preserve
this ordering in the wlr_output.modes list.
-rw-r--r-- | backend/drm/drm.c | 2 | ||||
-rw-r--r-- | types/wlr_output.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/backend/drm/drm.c b/backend/drm/drm.c index e7628e2d..cd161e02 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -1385,7 +1385,7 @@ void scan_drm_connectors(struct wlr_drm_backend *drm) { mode->wlr_mode.refresh, mode->wlr_mode.preferred ? "(preferred)" : ""); - wl_list_insert(&wlr_conn->output.modes, &mode->wlr_mode.link); + wl_list_insert(wlr_conn->output.modes.prev, &mode->wlr_mode.link); } wlr_conn->possible_crtcs = get_possible_crtcs(drm->fd, res, drm_conn); diff --git a/types/wlr_output.c b/types/wlr_output.c index 6d399616..47ee55be 100644 --- a/types/wlr_output.c +++ b/types/wlr_output.c @@ -457,8 +457,8 @@ struct wlr_output_mode *wlr_output_preferred_mode(struct wlr_output *output) { } } - // No preferred mode, choose the last one - return wl_container_of(output->modes.prev, mode, link); + // No preferred mode, choose the first one + return wl_container_of(output->modes.next, mode, link); } static void output_state_clear_buffer(struct wlr_output_state *state) { |