summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2002-11-13 16:37:39 +0000
committerKeith Packard <keithp@keithp.com>2002-11-13 16:37:39 +0000
commit7827fce0b5ff600d0adc3a30eab69e8141c2e548 (patch)
tree476dcc3a8c291426719126558ac33fa059abce88
parent3eaea6608bc33633c00860008f246f59ad5687a7 (diff)
Allow input devices to be closed while the VT is switched away (needs
per-driver support)
-rw-r--r--hw/kdrive/src/kdrive.h7
-rw-r--r--hw/kdrive/src/kinput.c10
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 */