Improve detection of input device source type

This detection code is not 100% reliable, but it should fare much better
than the current code, which just compares the device name to a fixed
set of strings.  Many applications depend on erasers being recognized
reliably, so we start by checking for a device name containing the
substring 'eraser'.

Signed-off-by: Thomas Jaeger <ThJaeger@gmail.com>
This commit is contained in:
Thomas Jaeger 2009-09-28 01:39:42 -04:00 committed by Alexander Larsson
parent e81501ebea
commit 7d196b3939

View File

@ -111,17 +111,15 @@ gdk_input_device_new (GdkDisplay *display,
tmp_name = g_ascii_strdown (gdkdev->info.name, -1); tmp_name = g_ascii_strdown (gdkdev->info.name, -1);
if (!strcmp (tmp_name, "pointer")) if (g_strrstr (tmp_name, "eraser"))
gdkdev->info.source = GDK_SOURCE_MOUSE;
else if (!strcmp (tmp_name, "wacom") ||
!strcmp (tmp_name, "pen"))
gdkdev->info.source = GDK_SOURCE_PEN;
else if (!strcmp (tmp_name, "eraser"))
gdkdev->info.source = GDK_SOURCE_ERASER; gdkdev->info.source = GDK_SOURCE_ERASER;
else if (!strcmp (tmp_name, "cursor")) else if (g_strrstr (tmp_name, "cursor"))
gdkdev->info.source = GDK_SOURCE_CURSOR; gdkdev->info.source = GDK_SOURCE_CURSOR;
else else if (g_strrstr (tmp_name, "wacom") ||
g_strrstr (tmp_name, "pen"))
gdkdev->info.source = GDK_SOURCE_PEN; gdkdev->info.source = GDK_SOURCE_PEN;
else
gdkdev->info.source = GDK_SOURCE_MOUSE;
g_free(tmp_name); g_free(tmp_name);