如何解决来自GTK
我一直在尝试从GTK窗口处理scroll-event
。我有一个自定义滚动条,可以分别处理平滑滚动事件和非平滑滚动事件,并为非平滑滚动事件模拟平滑滚动。我从文档中学到,GDK将GdkEventScroll::direction
设置为GDK_SCROLL_SMOOTH
以便进行平滑滚动事件。但是,我注意到,当我滚动鼠标中键(我的鼠标不支持平滑滚动)时,GTK发送两个单独的事件:
- 一个事件,其中
direction
设置为GDK_SCROLL_UP
或GDK_SCROLL_DOWN
并且delta_y
设置为0,并且 - 一个事件,其中
direction
设置为GDK_SCROLL_SMOOTH
,而delta_y
设置为1或-1。
在添加特殊处理之前,我仅依靠delta_y
碰巧适合我。现在,我开始以不同的方式对待平滑滚动和非平滑滚动,我需要一种可靠的方式来区分这些事件。
- 是否可以设置一个标志,使GDK仅发送非平滑滚动事件以进行非平滑滚动,反之亦然?那将是我的首选解决方案。
- 如果上一个不可能,我有什么办法可以说两个滚动事件实际上是同一事件?我看到事件结构中有一个
time
字段,但我怀疑它是否可靠。
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。