From 9591dc1f6cc89208805b120eabd055e8dabd3e40 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 11 Jun 2008 10:36:00 +0930 Subject: Remove wakeup handlers when device is closed. Less SIGABRTs are less exciting, but sometimes boredom is what we want. --- src/emuMB.c | 9 +++++++++ src/evdev.c | 1 + src/evdev.h | 1 + 3 files changed, 11 insertions(+) (limited to 'src') diff --git a/src/emuMB.c b/src/emuMB.c index 2855632..b2974b7 100644 --- a/src/emuMB.c +++ b/src/emuMB.c @@ -299,6 +299,15 @@ EvdevMBEmuPreInit(InputInfoPtr pInfo) } +void +EvdevMBEmuFinalize(InputInfoPtr pInfo) +{ + RemoveBlockAndWakeupHandlers (EvdevMBEmuBlockHandler, + EvdevMBEmuWakeupHandler, + (pointer)pInfo); + +} + /* Enable/disable middle mouse button emulation. */ void EvdevMBEmuEnable(InputInfoPtr pInfo, BOOL enable) diff --git a/src/evdev.c b/src/evdev.c index 05eb760..4d20b76 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -843,6 +843,7 @@ EvdevProc(DeviceIntPtr device, int what) xf86Msg(X_WARNING, "%s: Release failed (%s)\n", pInfo->name, strerror(errno)); xf86RemoveEnabledDevice(pInfo); + EvdevMBEmuFinalize(pInfo); device->public.on = FALSE; break; diff --git a/src/evdev.h b/src/evdev.h index 9b88e16..cad1eed 100644 --- a/src/evdev.h +++ b/src/evdev.h @@ -75,6 +75,7 @@ BOOL EvdevMBEmuFilterEvent(InputInfoPtr, int, BOOL); void EvdevMBEmuWakeupHandler(pointer, int, pointer); void EvdevMBEmuBlockHandler(pointer, struct timeval**, pointer); void EvdevMBEmuPreInit(InputInfoPtr); +void EvdevMBEmuFinalize(InputInfoPtr); void EvdevMBEmuEnable(InputInfoPtr, BOOL); #endif -- cgit v1.2.3