aboutsummaryrefslogtreecommitdiff
path: root/backend/drm/backend.c
diff options
context:
space:
mode:
authorScott Anderson <ascent12@hotmail.com>2017-05-14 12:31:22 +1200
committerScott Anderson <ascent12@hotmail.com>2017-05-14 12:42:49 +1200
commitce8786721b17febb5132c136213c95a095f13121 (patch)
treeeaf01de1dbe04b9b4117c9d421edc2d6361588ee /backend/drm/backend.c
parent058b8bdf2755da16d38dccc8de715a984fdd620c (diff)
Got it working.
Diffstat (limited to 'backend/drm/backend.c')
-rw-r--r--backend/drm/backend.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/backend/drm/backend.c b/backend/drm/backend.c
index 48e207c8..3c7af14b 100644
--- a/backend/drm/backend.c
+++ b/backend/drm/backend.c
@@ -47,12 +47,13 @@ static void device_paused(struct wl_listener *listener, void *data) {
}
static void device_resumed(struct wl_listener *listener, void *data) {
- struct wlr_backend_state *drm = wl_container_of(listener, drm, device_paused);
+ struct wlr_backend_state *drm = wl_container_of(listener, drm, device_resumed);
int *new_fd = data;
- close(drm->fd);
- drm->fd = *new_fd;
- drm->renderer.fd = *new_fd;
+ if (dup2(*new_fd, drm->fd) < 0) {
+ wlr_log(L_ERROR, "dup2 failed: %s", strerror(errno));
+ return;
+ }
for (size_t i = 0; i < drm->outputs->length; ++i) {
struct wlr_output_state *output = drm->outputs->items[i];