[prev in list] [next in list] [prev in thread] [next in thread]
List: freedesktop-xorg-devel
Subject: [xserver] kdrive: Grab evdev mouse/keyboard devices when X
From: peter.hutterer () who-t ! net (Peter Hutterer)
Date: 2009-10-29 0:30:55
Message-ID: 20091029003054.GH13320 () barra ! bne ! redhat ! com
[Download RAW message or body]
On Thu, Oct 29, 2009 at 12:40:48AM +0600, Mikhail Gusarov wrote:
> Input events are directed to both vt and input devices by default.
> Unless input devices are grabbed, keyboard events fill it vt buffers
> and cause spontaneous wakeups in kernel tty layer when buffers are full.
>
> Signed-off-by: Mikhail Gusarov <dottedmag at dottedmag.net>
> ---
> hw/kdrive/linux/evdev.c | 15 ++++++++++++++-
> 1 files changed, 14 insertions(+), 1 deletions(-)
>
> diff --git a/hw/kdrive/linux/evdev.c b/hw/kdrive/linux/evdev.c
> index f6017ba..096a2dd 100644
> --- a/hw/kdrive/linux/evdev.c
> +++ b/hw/kdrive/linux/evdev.c
> @@ -243,7 +243,9 @@ EvdevPtrEnable (KdPointerInfo *pi)
> if (fd < 0)
> return BadMatch;
>
> -
> + if (ioctl (fd, EVIOCGRAB, 1) < 0)
> + perror ("Grabbing evdev mouse device failed");
> +
> if (ioctl (fd, EVIOCGBIT(0 /*EV*/, sizeof (ev)), ev) < 0)
> {
> perror ("EVIOCGBIT 0");
> @@ -335,6 +337,10 @@ EvdevPtrDisable (KdPointerInfo *pi)
> return;
>
> KdUnregisterFd (pi, ke->fd, TRUE);
> +
> + if (ioctl (ke->fd, EVIOCGRAB, 0) < 0)
> + perror ("Ungrabbing evdev mouse device failed");
> +
> xfree (ke);
> pi->driverPrivate = 0;
> }
> @@ -425,6 +431,9 @@ EvdevKbdEnable (KdKeyboardInfo *ki)
> if (fd < 0)
> return BadMatch;
>
> + if (ioctl (fd, EVIOCGRAB, 1) < 0)
> + perror ("Grabbing evdev keyboard device failed");
> +
> if (ioctl (fd, EVIOCGBIT(0 /*EV*/, sizeof (ev)), ev) < 0) {
> perror ("EVIOCGBIT 0");
> close (fd);
> @@ -496,6 +505,10 @@ EvdevKbdDisable (KdKeyboardInfo *ki)
> return;
>
> KdUnregisterFd (ki, ke->fd, TRUE);
> +
> + if (ioctl (ke->fd, EVIOCGRAB, 0) < 0)
> + perror ("Ungrabbing evdev keyboard device failed");
> +
> xfree (ke);
> ki->driverPrivate = 0;
> }
> --
> 1.6.5
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
Cheers,
Peter
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic