forked from AuroraMiddleware/gtk
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:
parent
e81501ebea
commit
7d196b3939
@ -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);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user