Set an drop drm master on enter and leave vt
This way we can vt switch between wayland and X.
This commit is contained in:
parent
beed22b9a3
commit
d2311cfba7
@ -1355,10 +1355,16 @@ static void on_enter_vt(int signal_number, void *data)
|
||||
struct wlsc_output *output;
|
||||
int ret, fd;
|
||||
|
||||
fd = eglGetDisplayFD(ec->display);
|
||||
ret = drmSetMaster(fd);
|
||||
if (ret) {
|
||||
fprintf(stderr, "failed to set drm master\n");
|
||||
return;
|
||||
}
|
||||
|
||||
ioctl(ec->tty_fd, VT_RELDISP, VT_ACKACQ);
|
||||
ec->vt_active = TRUE;
|
||||
|
||||
fd = eglGetDisplayFD(ec->display);
|
||||
output = container_of(ec->output_list.next, struct wlsc_output, link);
|
||||
while (&output->link != &ec->output_list) {
|
||||
ret = drmModeSetCrtc(fd, output->crtc_id,
|
||||
@ -1376,6 +1382,14 @@ static void on_enter_vt(int signal_number, void *data)
|
||||
static void on_leave_vt(int signal_number, void *data)
|
||||
{
|
||||
struct wlsc_compositor *ec = data;
|
||||
int ret, fd;
|
||||
|
||||
fd = eglGetDisplayFD(ec->display);
|
||||
ret = drmDropMaster(fd);
|
||||
if (ret) {
|
||||
fprintf(stderr, "failed to drop drm master\n");
|
||||
return;
|
||||
}
|
||||
|
||||
ioctl (ec->tty_fd, VT_RELDISP, 1);
|
||||
ec->vt_active = FALSE;
|
||||
|
Loading…
Reference in New Issue
Block a user