Allow input devices to be closed while the VT is switched away (needs

per-driver support)
This commit is contained in:
Keith Packard 2002-11-13 16:37:39 +00:00
parent 3eaea6608b
commit 7827fce0b5
2 changed files with 11 additions and 6 deletions

View File

@ -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"
@ -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);

View File

@ -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 */