summaryrefslogtreecommitdiffstats
path: root/tsak
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-04-06 21:01:31 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-04-06 21:01:31 -0500
commit8d2f9ae31522a472de122e849d206a869f248773 (patch)
tree93a264e1e241518d0dbb966dae8aa3d068bf66cf /tsak
parentdc41de959b6b76263f8640c4075a6ed5b873b722 (diff)
downloadtdebase-8d2f9ae31522a472de122e849d206a869f248773.tar.gz
tdebase-8d2f9ae31522a472de122e849d206a869f248773.zip
Do not load virtual keyboards in tsak
This resolves Bug 1275
Diffstat (limited to 'tsak')
-rw-r--r--tsak/main.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/tsak/main.cpp b/tsak/main.cpp
index 7b3202f1..8fa36f4a 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;
+ }
}
}
}