来自GTK

问题描述

我一直在尝试从GTK窗口处理scroll-event我有一个自定义滚动条,可以分别处理平滑滚动事件和非平滑滚动事件,并为非平滑滚动事件模拟平滑滚动。我从文档中学到,GDK将GdkEventScroll::direction设置为GDK_SCROLL_SMOOTH以便进行平滑滚动事件。但是,我注意到,当我滚动鼠标中键(我的鼠标不支持平滑滚动)时,GTK发送两个单独的事件:

  • 一个事件,其中direction设置为GDK_SCROLL_UPGDK_SCROLL_DOWN并且delta_y设置为0,并且
  • 一个事件,其中direction设置为GDK_SCROLL_SMOOTH,而delta_y设置为1或-1。

添加特殊处理之前,我仅依靠delta_y碰巧适合我。现在,我开始以不同的方式对待平滑滚动和非平滑滚动,我需要一种可靠的方式来区分这些事件。

  • 是否可以设置一个标志,使GDK仅发送非平滑滚动事件以进行非平滑滚动,反之亦然?那将是我的首选解决方案。
  • 如果上一个不可能,我有什么办法可以说两个滚动事件实际上是同一事件?我看到事件结构中有一个time字段,但我怀疑它是否可靠。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)