From 03f9da672466b9ab9a9814d784b8c44f1030587e Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 12 Aug 2007 03:07:04 +0200 Subject: [PATCH] xfree86: Improve default mouse handling on the Hurd Make /dev/mouse the default device. This makes Xorg works with empty or missing InputDevice sections. --- hw/xfree86/os-support/hurd/hurd_mouse.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) 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 #include +#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;