summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Cameron <brian.cameron@sun.com>2007-09-12 18:24:24 +0000
committerBrian Cameron <bcameron@src.gnome.org>2007-09-12 18:24:24 +0000
commit777599adcd84916c3fd7ad55f0a11081a3bb971e (patch)
tree6b7667c9d1323e1f4e1c7883d509a097692fdc7c
parent25537c4abc1d0c84f44eaee450df737fad4e883b (diff)
downloadgdm-777599adcd84916c3fd7ad55f0a11081a3bb971e.tar.gz
Improve checking for input devices so it doesn't fail on Ubuntu, and we
2007-09-12 Brian Cameron <brian.cameron@sun.com> * gui/modules/keymouselistener.c: Improve checking for input devices so it doesn't fail on Ubuntu, and we free memory relating to the devices. Fixes bug #440948. Patch by Gerd Kohlberger <lowfi@chello.at>. svn path=/trunk/; revision=5246
-rw-r--r--ChangeLog7
-rw-r--r--gui/modules/keymouselistener.c4
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index f875b593..532119e0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2007-09-12 Brian Cameron <brian.cameron@sun.com>
+ * gui/modules/keymouselistener.c: Improve checking for input
+ devices so it doesn't fail on Ubuntu, and we free memory
+ relating to the devices. Fixes bug #440948. Patch by
+ Gerd Kohlberger <lowfi@chello.at>.
+
+2007-09-12 Brian Cameron <brian.cameron@sun.com>
+
* daemon/auth.c, common/gdm-common.c: Fix bug with IPv6 logic. Fixes
bug reported in bug #376010. Patch by Jacob Berkman
<jacob@gnome.org>.
diff --git a/gui/modules/keymouselistener.c b/gui/modules/keymouselistener.c
index 250cab16..8150b2cf 100644
--- a/gui/modules/keymouselistener.c
+++ b/gui/modules/keymouselistener.c
@@ -169,7 +169,8 @@ init_xinput (GdkDisplay *display, GdkWindow *root)
syslog (LOG_WARNING, "checking %d input devices...", num_devices);
for (i=0; i < num_devices; i++) {
- if (devices[i].use == IsXExtensionDevice)
+ if (devices[i].use == IsXExtensionDevice &&
+ devices[i].num_classes > 0)
{
device = XOpenDevice (GDK_DISPLAY_XDISPLAY (display),
devices[i].id);
@@ -207,6 +208,7 @@ init_xinput (GdkDisplay *display, GdkWindow *root)
}
}
}
+ XFreeDeviceList (devices);
if (debug_gestures)
syslog (LOG_WARNING, "%d event types available", number);