From 7827fce0b5ff600d0adc3a30eab69e8141c2e548 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 13 Nov 2002 16:37:39 +0000 Subject: Allow input devices to be closed while the VT is switched away (needs per-driver support) --- hw/kdrive/src/kdrive.h | 7 ++++++- hw/kdrive/src/kinput.c | 10 +++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h index 9f1466da9..c24b2e765 100644 --- a/hw/kdrive/src/kdrive.h +++ b/hw/kdrive/src/kdrive.h @@ -21,7 +21,7 @@ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ -/* $XFree86: xc/programs/Xserver/hw/kdrive/kdrive.h,v 1.27 2002/10/18 06:08:10 keithp Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/kdrive/kdrive.h,v 1.28 2002/11/05 05:28:34 keithp Exp $ */ #include #include "X.h" @@ -615,6 +615,11 @@ KdAllocInputType (void); Bool KdRegisterFd (int type, int fd, void (*read) (int fd, void *closure), void *closure); +void +KdRegisterFdEnableDisable (int fd, + int (*enable) (int fd, void *closure), + void (*disable) (int fd, void *closure)); + void KdUnregisterFds (int type, Bool do_close); diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c index b1e8986fb..0378f630b 100644 --- a/hw/kdrive/src/kinput.c +++ b/hw/kdrive/src/kinput.c @@ -21,7 +21,7 @@ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ -/* $XFree86: xc/programs/Xserver/hw/kdrive/kinput.c,v 1.28 2002/10/31 18:29:50 keithp Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/kdrive/kinput.c,v 1.29 2002/11/05 05:28:34 keithp Exp $ */ #include "kdrive.h" #include "inputstr.h" @@ -80,7 +80,7 @@ typedef struct _kdInputFd { int type; int fd; void (*read) (int fd, void *closure); - void (*enable) (int fd, void *closure); + int (*enable) (int fd, void *closure); void (*disable) (int fd, void *closure); void *closure; } KdInputFd; @@ -215,7 +215,7 @@ KdRegisterFd (int type, int fd, void (*read) (int fd, void *closure), void *clos void KdRegisterFdEnableDisable (int fd, - void (*enable) (int fd, void *closure), + int (*enable) (int fd, void *closure), void (*disable) (int fd, void *closure)) { int i; @@ -274,9 +274,9 @@ KdEnableInput (void) kdInputEnabled = TRUE; for (i = 0; i < kdNumInputFds; i++) { - KdAddFd (kdInputFds[i].fd); if (kdInputFds[i].enable) - (*kdInputFds[i].enable) (kdInputFds[i].fd, kdInputFds[i].closure); + kdInputFds[i].fd = (*kdInputFds[i].enable) (kdInputFds[i].fd, kdInputFds[i].closure); + KdAddFd (kdInputFds[i].fd); } /* reset screen saver */ -- cgit v1.2.3