diff options
author | Keith Packard <keithp@keithp.com> | 2002-11-13 16:37:39 +0000 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2002-11-13 16:37:39 +0000 |
commit | 7827fce0b5ff600d0adc3a30eab69e8141c2e548 (patch) | |
tree | 476dcc3a8c291426719126558ac33fa059abce88 /hw/kdrive/src | |
parent | 3eaea6608bc33633c00860008f246f59ad5687a7 (diff) |
Allow input devices to be closed while the VT is switched away (needs
per-driver support)
Diffstat (limited to 'hw/kdrive/src')
-rw-r--r-- | hw/kdrive/src/kdrive.h | 7 | ||||
-rw-r--r-- | 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 <stdio.h> #include "X.h" @@ -616,6 +616,11 @@ 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); #ifdef TOUCHSCREEN 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 */ |