summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-05-12 16:09:35 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-05-16 12:20:58 +1000
commit273890924b8ed6f8b7949c0322c8258b9e6f8630 (patch)
treeaaccdf172e29a5b9eedba3401d73e91241a1d124 /hw
parent033a2b12fcd02fa9a2c2f20a352bec0a43074512 (diff)
input: reduce the number of superfluous hierarchy events
There's only two reasons for hierarchy events: - device is added, removed, etc. In this case we want to send the event as it happens. - devices are added in a XIChangeDeviceHierarchy request. In this case we only want one event cumulating all changes.
Diffstat (limited to 'hw')
-rw-r--r--hw/xfree86/common/xf86Events.c6
-rw-r--r--hw/xfree86/common/xf86PM.c4
-rw-r--r--hw/xfree86/common/xf86Xinput.c14
3 files changed, 12 insertions, 12 deletions
diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
index e9b4dfe60..98175e9d3 100644
--- a/hw/xfree86/common/xf86Events.c
+++ b/hw/xfree86/common/xf86Events.c
@@ -462,7 +462,7 @@ xf86VTSwitch(void)
if (pInfo->dev) {
xf86ReleaseKeys(pInfo->dev);
ProcessInputEvents();
- DisableDevice(pInfo->dev);
+ DisableDevice(pInfo->dev, TRUE);
}
}
xf86EnterServerState(SETUP);
@@ -497,7 +497,7 @@ xf86VTSwitch(void)
pInfo = xf86InputDevs;
while (pInfo) {
if (pInfo->dev)
- EnableDevice(pInfo->dev);
+ EnableDevice(pInfo->dev, TRUE);
pInfo = pInfo->next;
}
for (ih = InputHandlers; ih; ih = ih->next)
@@ -555,7 +555,7 @@ xf86VTSwitch(void)
pInfo = xf86InputDevs;
while (pInfo) {
if (pInfo->dev)
- EnableDevice(pInfo->dev);
+ EnableDevice(pInfo->dev, TRUE);
pInfo = pInfo->next;
}
diff --git a/hw/xfree86/common/xf86PM.c b/hw/xfree86/common/xf86PM.c
index 7c8320dee..c51960e81 100644
--- a/hw/xfree86/common/xf86PM.c
+++ b/hw/xfree86/common/xf86PM.c
@@ -76,7 +76,7 @@ suspend (pmEvent event, Bool undo)
}
pInfo = xf86InputDevs;
while (pInfo) {
- DisableDevice(pInfo->dev);
+ DisableDevice(pInfo->dev, TRUE);
pInfo = pInfo->next;
}
xf86EnterServerState(SETUP);
@@ -119,7 +119,7 @@ resume(pmEvent event, Bool undo)
dixSaveScreens(serverClient, SCREEN_SAVER_FORCER, ScreenSaverReset);
pInfo = xf86InputDevs;
while (pInfo) {
- EnableDevice(pInfo->dev);
+ EnableDevice(pInfo->dev, TRUE);
pInfo = pInfo->next;
}
xf86inSuspend = FALSE;
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 6b34aadd6..aa98dad1a 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -377,7 +377,7 @@ OpenInputDevice(DeviceIntPtr dev,
int *status)
{
if (!dev->inited)
- ActivateDevice(dev);
+ ActivateDevice(dev, TRUE);
*status = Success;
}
@@ -544,18 +544,18 @@ xf86NewInputDevice(IDevPtr idev, DeviceIntPtr *pdev, BOOL enable)
}
dev = pInfo->dev;
- rval = ActivateDevice(dev);
+ rval = ActivateDevice(dev, TRUE);
if (rval != Success)
{
xf86Msg(X_ERROR, "Couldn't init device \"%s\"\n", idev->identifier);
- RemoveDevice(dev);
+ RemoveDevice(dev, TRUE);
goto unwind;
}
/* Enable it if it's properly initialised and we're currently in the VT */
if (enable && dev->inited && dev->startup && xf86Screens[0]->vtSema)
{
- EnableDevice(dev);
+ EnableDevice(dev, TRUE);
if (!dev->enabled)
{
xf86Msg(X_ERROR, "Couldn't init device \"%s\"\n", idev->identifier);
@@ -680,7 +680,7 @@ DeleteInputDeviceRequest(DeviceIntPtr pDev)
}
OsBlockSignals();
- RemoveDevice(pDev);
+ RemoveDevice(pDev, TRUE);
if (!isMaster && pInfo != NULL)
{
@@ -1065,7 +1065,7 @@ xf86DisableDevice(DeviceIntPtr dev, Bool panic)
if(!panic)
{
- DisableDevice(dev);
+ DisableDevice(dev, TRUE);
} else
{
ev.type = DevicePresenceNotify;
@@ -1088,7 +1088,7 @@ xf86DisableDevice(DeviceIntPtr dev, Bool panic)
void
xf86EnableDevice(DeviceIntPtr dev)
{
- EnableDevice(dev);
+ EnableDevice(dev, TRUE);
}
/* end of xf86Xinput.c */