问题描述
我一直在尝试从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 (将#修改为@)