diff options
author | Thomas Jaeger <ThJaeger@gmail.com> | 2009-09-28 01:39:42 -0400 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2009-09-28 16:08:42 +0200 |
commit | 7d196b3939e1bbf5eddc5da0980e30c2f38c9cdd (patch) | |
tree | ad7333b5413f61228528940053f1a6dc5e720640 /gdk | |
parent | e81501ebea4cceffce2890519807b0c243fec0a3 (diff) | |
download | gtk+-7d196b3939e1bbf5eddc5da0980e30c2f38c9cdd.tar.gz |
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>
Diffstat (limited to 'gdk')
-rw-r--r-- | gdk/x11/gdkinput-x11.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/gdk/x11/gdkinput-x11.c b/gdk/x11/gdkinput-x11.c index c0b71e7bef..08051074e5 100644 --- a/gdk/x11/gdkinput-x11.c +++ b/gdk/x11/gdkinput-x11.c @@ -111,17 +111,15 @@ gdk_input_device_new (GdkDisplay *display, tmp_name = g_ascii_strdown (gdkdev->info.name, -1); - if (!strcmp (tmp_name, "pointer")) - 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")) + if (g_strrstr (tmp_name, "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; - else + else if (g_strrstr (tmp_name, "wacom") || + g_strrstr (tmp_name, "pen")) gdkdev->info.source = GDK_SOURCE_PEN; + else + gdkdev->info.source = GDK_SOURCE_MOUSE; g_free(tmp_name); |