drm: Remove input devices before cancelling repaints in vt switch away

Removing the input devices will trigger events and activity that will cause
a redraw.  Do this before we put the compositor to sleep so we can cancel it
properly and avoid immediately waking the compositor again.
Kristian Høgsberg 13 years ago
parent e5cf741669
commit 4014a6b05b
  1. 10
      src/compositor-drm.c

@ -1504,6 +1504,11 @@ vt_func(struct weston_compositor *compositor, int event)
}
break;
case TTY_LEAVE_VT:
wl_list_for_each(input, &compositor->input_device_list, link) {
evdev_disable_udev_monitor(input);
evdev_remove_devices(input);
}
compositor->focus = 0;
ec->prev_state = compositor->state;
compositor->state = WESTON_COMPOSITOR_SLEEPING;
@ -1530,11 +1535,6 @@ vt_func(struct weston_compositor *compositor, int event)
drm_output->crtc_id, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0);
wl_list_for_each(input, &compositor->input_device_list, link) {
evdev_disable_udev_monitor(input);
evdev_remove_devices(input);
}
if (weston_launcher_drm_set_master(&ec->base, ec->drm.fd, 0) < 0)
fprintf(stderr, "failed to drop master: %m\n");

Loading…
Cancel
Save