aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/drm/drm.c3
-rw-r--r--include/wlr/types/wlr_output.h3
2 files changed, 5 insertions, 1 deletions
diff --git a/backend/drm/drm.c b/backend/drm/drm.c
index 7fd36794..f179f835 100644
--- a/backend/drm/drm.c
+++ b/backend/drm/drm.c
@@ -1207,6 +1207,9 @@ void scan_drm_connectors(struct wlr_drm_backend *drm) {
mode->wlr_mode.width = mode->drm_mode.hdisplay;
mode->wlr_mode.height = mode->drm_mode.vdisplay;
mode->wlr_mode.refresh = calculate_refresh_rate(&mode->drm_mode);
+ if (mode->drm_mode.type & DRM_MODE_TYPE_PREFERRED) {
+ mode->wlr_mode.preferred = true;
+ }
wlr_log(WLR_INFO, " %"PRId32"x%"PRId32"@%"PRId32,
mode->wlr_mode.width, mode->wlr_mode.height,
diff --git a/include/wlr/types/wlr_output.h b/include/wlr/types/wlr_output.h
index d6761ee1..84791b2d 100644
--- a/include/wlr/types/wlr_output.h
+++ b/include/wlr/types/wlr_output.h
@@ -20,6 +20,7 @@ struct wlr_output_mode {
uint32_t flags; // enum wl_output_mode
int32_t width, height;
int32_t refresh; // mHz
+ bool preferred;
struct wl_list link;
};
@@ -71,7 +72,7 @@ struct wlr_output {
int32_t phys_width, phys_height; // mm
// Note: some backends may have zero modes
- struct wl_list modes;
+ struct wl_list modes; // wlr_output_mode::link
struct wlr_output_mode *current_mode;
int32_t width, height;
int32_t refresh; // mHz, may be zero