Gdk Event 设备类型错误
Gdk Event device type wrong
我正在尝试使用 Gdk(在 vala 中)捕获笔输入。这是我的代码
var source = anEvent.get_device().get_source();
if (source == Gdk.InputSource.MOUSE) {
stdout.printf("mouse\n");
} else if (source == Gdk.InputSource.PEN) {
stdout.printf("pen\n");
} else if (source == Gdk.InputSource.ERASER) {
stdout.printf("eraser\n");
} else {
stdout.printf("something else\n");
}
Gtk.main_do_event(anEvent);
但是,笔输入似乎被识别为鼠标输入!然而,触摸和键盘输入似乎被正确识别。这特别奇怪,因为我在我的 Thinkpad X1 Yoga 上使用集成的 wacom 笔以及单独的 Intuos Pro 进行了测试,两者都被 Gnome 识别。此外,在 Xorg / Wayland 之间切换也没有区别。我错过了什么?或者这仅仅是 Gdk / Gtk / Gnome 的问题?谢谢!
使用 Gdk.DeviceToolType
解决了这个问题。
var tool = anEvent.get_device_tool().get_tool_type();
if (tool == Gdk.DeviceToolType.PEN) {
stdout.printf("pen?\n");
}
...
改为工作。
我正在尝试使用 Gdk(在 vala 中)捕获笔输入。这是我的代码
var source = anEvent.get_device().get_source();
if (source == Gdk.InputSource.MOUSE) {
stdout.printf("mouse\n");
} else if (source == Gdk.InputSource.PEN) {
stdout.printf("pen\n");
} else if (source == Gdk.InputSource.ERASER) {
stdout.printf("eraser\n");
} else {
stdout.printf("something else\n");
}
Gtk.main_do_event(anEvent);
但是,笔输入似乎被识别为鼠标输入!然而,触摸和键盘输入似乎被正确识别。这特别奇怪,因为我在我的 Thinkpad X1 Yoga 上使用集成的 wacom 笔以及单独的 Intuos Pro 进行了测试,两者都被 Gnome 识别。此外,在 Xorg / Wayland 之间切换也没有区别。我错过了什么?或者这仅仅是 Gdk / Gtk / Gnome 的问题?谢谢!
使用 Gdk.DeviceToolType
解决了这个问题。
var tool = anEvent.get_device_tool().get_tool_type();
if (tool == Gdk.DeviceToolType.PEN) {
stdout.printf("pen?\n");
}
...
改为工作。