Emit output resolution event only when resolution changes

This commit is contained in:
Versus Void 2017-10-22 10:01:21 +00:00
parent 018cd98620
commit ecb2a2b0d3

View file

@ -437,10 +437,12 @@ static bool wlr_drm_connector_set_mode(struct wlr_output *output,
crtc->cursor ? crtc->cursor - drm->cursor_planes : -1); crtc->cursor ? crtc->cursor - drm->cursor_planes : -1);
conn->state = WLR_DRM_CONN_CONNECTED; conn->state = WLR_DRM_CONN_CONNECTED;
conn->output.width = mode->width;
conn->output.height = mode->height;
conn->output.current_mode = mode; 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, // Since realloc_crtcs can deallocate planes on OTHER outputs,
// we actually need to reinitalise all of them // we actually need to reinitalise all of them