Gdk事件设备类型错误

时间:2018-02-08 21:38:56

标签: gtk vala gdk

我尝试使用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的一个问题?谢谢!

1 个答案:

答案 0 :(得分:1)

使用Gdk.DeviceToolType解决此问题。

var tool = anEvent.get_device_tool().get_tool_type();

if (tool == Gdk.DeviceToolType.PEN) {
    stdout.printf("pen?\n");
}

... 

相反。