aboutsummaryrefslogtreecommitdiff
path: root/backend/drm
diff options
context:
space:
mode:
Diffstat (limited to 'backend/drm')
-rw-r--r--backend/drm/drm.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/backend/drm/drm.c b/backend/drm/drm.c
index 51a5f636..4c13d01a 100644
--- a/backend/drm/drm.c
+++ b/backend/drm/drm.c
@@ -437,10 +437,12 @@ static bool wlr_drm_connector_set_mode(struct wlr_output *output,
crtc->cursor ? crtc->cursor - drm->cursor_planes : -1);
conn->state = WLR_DRM_CONN_CONNECTED;
- conn->output.width = mode->width;
- conn->output.height = mode->height;
conn->output.current_mode = mode;
- wl_signal_emit(&conn->output.events.resolution, &conn->output);
+ if (conn->output.width != mode->width || conn->output.height != mode->height) {
+ conn->output.width = mode->width;
+ conn->output.height = mode->height;
+ wl_signal_emit(&conn->output.events.resolution, &conn->output);
+ }
// Since realloc_crtcs can deallocate planes on OTHER outputs,
// we actually need to reinitalise all of them