summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@redhat.com>2008-10-27 15:54:49 +1030
committerPeter Hutterer <peter.hutterer@redhat.com>2008-10-28 09:09:14 +1030
commitaf096e8c5d8b425f725a37bf4a98e205e70716e9 (patch)
tree28d2cad41ace013ab8cfdbcfa3f1bd42d72b6da8
parent12498042fcc08e34aef0117ce84192f59542fd56 (diff)
emuMB: add EvdevMBEmuOn and call from EvdevOn to register wakeup handlers.
This got broken in b0737bdbd1f6e601eb4984b6f4cb49279190984c, when the EmuMBPreInit call was removed from EvdevOn. As a result, VT switching away and back wouldn't restore the wakeup handlers and mouse button presses disappeared.
-rw-r--r--src/emuMB.c5
-rw-r--r--src/evdev.c1
-rw-r--r--src/evdev.h1
3 files changed, 7 insertions, 0 deletions
diff --git a/src/emuMB.c b/src/emuMB.c
index 4af0791..e5a767a 100644
--- a/src/emuMB.c
+++ b/src/emuMB.c
@@ -317,6 +317,11 @@ EvdevMBEmuPreInit(InputInfoPtr pInfo)
pEvdev->emulateMB.timeout = xf86SetIntOption(pInfo->options,
"Emulate3Timeout", 50);
+}
+
+void
+EvdevMBEmuOn(InputInfoPtr pInfo)
+{
RegisterBlockAndWakeupHandlers (EvdevMBEmuBlockHandler,
EvdevMBEmuWakeupHandler,
(pointer)pInfo);
diff --git a/src/evdev.c b/src/evdev.c
index d112efe..26ae0a1 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -1008,6 +1008,7 @@ EvdevOn(DeviceIntPtr device)
} else
{
xf86AddEnabledDevice(pInfo);
+ EvdevMBEmuOn(pInfo);
pEvdev->flags |= EVDEV_INITIALIZED;
device->public.on = TRUE;
}
diff --git a/src/evdev.h b/src/evdev.h
index c2f614a..7e1da15 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -127,6 +127,7 @@ BOOL EvdevMBEmuFilterEvent(InputInfoPtr, int, BOOL);
void EvdevMBEmuWakeupHandler(pointer, int, pointer);
void EvdevMBEmuBlockHandler(pointer, struct timeval**, pointer);
void EvdevMBEmuPreInit(InputInfoPtr);
+void EvdevMBEmuOn(InputInfoPtr);
void EvdevMBEmuFinalize(InputInfoPtr);
void EvdevMBEmuEnable(InputInfoPtr, BOOL);