Merge pull request #873 from emersion/output-dont-emit-mode-twice

output: don't emit the mode event if it hasn't changed
This commit is contained in:
Drew DeVault 2018-04-17 21:08:27 -04:00 committed by GitHub
commit dbdc63ddde
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 6 deletions

View file

@ -496,11 +496,15 @@ static bool wlr_drm_connector_set_mode(struct wlr_output *output,
conn->state = WLR_DRM_CONN_CONNECTED;
wlr_output_update_mode(&conn->output, mode);
// When switching VTs, the mode is not updated but the buffers become
// invalid, so we need to manually damage the output here
wlr_output_damage_whole(&conn->output);
// Since realloc_crtcs can deallocate planes on OTHER outputs,
// we actually need to reinitialize any than has changed
// we actually need to reinitialize any that has changed
ssize_t output_index = -1;
wl_list_for_each(conn, &drm->outputs, link) {
output_index += 1;
output_index++;
struct wlr_output_mode *mode = conn->output.current_mode;
struct wlr_drm_crtc *crtc = conn->crtc;