From 8d2f9ae31522a472de122e849d206a869f248773 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sat, 6 Apr 2013 21:01:31 -0500 Subject: Do not load virtual keyboards in tsak This resolves Bug 1275 --- tsak/main.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'tsak') diff --git a/tsak/main.cpp b/tsak/main.cpp index 7b3202f16..8fa36f4ab 100644 --- a/tsak/main.cpp +++ b/tsak/main.cpp @@ -234,11 +234,16 @@ int find_keyboards() { // Ensure that we do not detect our own tsak faked keyboards ioctl (fd, EVIOCGNAME(sizeof(name)), name); if (str_ends_with(name, "+tsak") == 0) { - /* We assume that anything that has an alphabetic key in the - QWERTYUIOP range in it is the main keyboard. */ - for (j = KEY_Q; j <= KEY_P; j++) { - if (TestBit(j, key_bitmask)) { - keyboard_fds[keyboard_fd_num] = fd; + // Do not attempt to use virtual keyboards per Bug 1275 + struct input_id input_info; + ioctl (fd, EVIOCGID, &input_info); + if ((input_info.vendor != 0) && (input_info.product != 0)) { + /* We assume that anything that has an alphabetic key in the + QWERTYUIOP range in it is the main keyboard. */ + for (j = KEY_Q; j <= KEY_P; j++) { + if (TestBit(j, key_bitmask)) { + keyboard_fds[keyboard_fd_num] = fd; + } } } } -- cgit v1.2.3