diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2007-08-12 03:07:04 +0200 |
---|---|---|
committer | Julien Cristau <jcristau@debian.org> | 2007-08-12 03:08:49 +0200 |
commit | 03f9da672466b9ab9a9814d784b8c44f1030587e (patch) | |
tree | 3a5788213c374bf73ca9fa9d95bcb3d45bbeff8b | |
parent | c5741438a3a171f493e9da32a6b39f73403f6993 (diff) |
xfree86: Improve default mouse handling on the Hurd
Make /dev/mouse the default device. This makes Xorg works with empty
or missing InputDevice sections.
-rw-r--r-- | hw/xfree86/os-support/hurd/hurd_mouse.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/hw/xfree86/os-support/hurd/hurd_mouse.c b/hw/xfree86/os-support/hurd/hurd_mouse.c index 5f6d9437f..089cba38d 100644 --- a/hw/xfree86/os-support/hurd/hurd_mouse.c +++ b/hw/xfree86/os-support/hurd/hurd_mouse.c @@ -46,6 +46,8 @@ #include <mach.h> #include <sys/ioctl.h> +#define DEFAULT_MOUSE_DEV "/dev/mouse" + typedef unsigned short kev_type; /* kd event type */ typedef unsigned char Scancode; @@ -166,6 +168,26 @@ OsMousePreInit(InputInfoPtr pInfo, const char *protocol, int flags) return TRUE; } +static const char * +FindDevice(InputInfoPtr pInfo, const char *protocol, int flags) +{ + const char path[] = DEFAULT_MOUSE_DEV; + int fd; + + SYSCALL (fd = open(path, O_RDWR | O_NONBLOCK | O_EXCL)); + + if (fd == -1) + return NULL; + + close(fd); + pInfo->conf_idev->commonOptions = + xf86AddNewOption(pInfo->conf_idev->commonOptions, "Device", path); + xf86Msg(X_INFO, "%s: Setting Device option to \"%s\"\n", pInfo->name, + path); + + return path; +} + static int SupportedInterfaces(void) { @@ -195,7 +217,6 @@ CheckProtocol(const char *protocol) return FALSE; } -/* XXX Is this appropriate? If not, this function should be removed. */ static const char * DefaultProtocol(void) { @@ -212,6 +233,7 @@ xf86OSMouseInit(int flags) return NULL; p->SupportedInterfaces = SupportedInterfaces; p->BuiltinNames = BuiltinNames; + p->FindDevice = FindDevice; p->DefaultProtocol = DefaultProtocol; p->CheckProtocol = CheckProtocol; p->PreInit = OsMousePreInit; |