aboutsummaryrefslogtreecommitdiff
path: root/backend/drm/backend.c
diff options
context:
space:
mode:
authorScott Anderson <ascent12@hotmail.com>2018-10-03 13:16:59 +0200
committerGitHub <noreply@github.com>2018-10-03 13:16:59 +0200
commit43af104fa3939234794da3a15bca102138c3aa70 (patch)
tree35cf165496282f39060f549115863cae8272d9c2 /backend/drm/backend.c
parent1dd523c34c71a7d156c62bc3e3f033113b666e4d (diff)
parente88db9a3fb4208776b2a3ef35fdbd5fa344c0905 (diff)
Merge pull request #1277 from emersion/reset-gamma
backend/drm: reset gamma table on VT switch
Diffstat (limited to 'backend/drm/backend.c')
-rw-r--r--backend/drm/backend.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/backend/drm/backend.c b/backend/drm/backend.c
index bba79bda..76918e7d 100644
--- a/backend/drm/backend.c
+++ b/backend/drm/backend.c
@@ -101,6 +101,16 @@ static void session_signal(struct wl_listener *listener, void *data) {
(plane && plane->cursor_enabled) ? plane->cursor_bo : NULL);
drm->iface->crtc_move_cursor(drm, conn->crtc, conn->cursor_x,
conn->cursor_y);
+
+ if (conn->crtc->gamma_table != NULL) {
+ size_t size = conn->crtc->gamma_table_size;
+ uint16_t *r = conn->crtc->gamma_table;
+ uint16_t *g = conn->crtc->gamma_table + size;
+ uint16_t *b = conn->crtc->gamma_table + 2 * size;
+ drm->iface->crtc_set_gamma(drm, conn->crtc, size, r, g, b);
+ } else {
+ set_drm_connector_gamma(&conn->output, 0, NULL, NULL, NULL);
+ }
}
} else {
wlr_log(WLR_INFO, "DRM fd paused");