GTK: Get pointer position on scroll-event AFTER scrolled_window has scrolled
我在滚动窗口内有一个绘图区域(带有方便的视口),
这个绘图区域会根据传入的运动通知事件自行更新。
当我滚动该区域时,虽然显然没有发出任何运动事件,
但我想解决这个问题,因此尝试连接绘图区域
“scroll-event” 向相同的运动通知回调发出信号。
我在这里面临的问题是这个信号是在滚动窗口之前发出的
已经更新了它的视口,所以在回调中,我最终得到了在滚动之前为真的指针坐标,使得绘图区域看起来总是”落后一步”滚动而不移动指针时的实际指针本身。
我以为我可以通过使用 gdk_window_get_pointer 手动提取坐标来弥补这一点,但后来我意识到这不起作用,因为当回调开始时指针在技术上仍处于其旧位置。
我还尝试使用 g_signal_connect_after 希望它会在滚动视口后调用回调,但它没有帮助。
我最后的希望是在滚动事件上启动一个计时器,并在最短的时间后触发回调,但这听起来真的很难看,我想不惜一切代价避免这种情况。 关于如何实现这一点的任何想法? 一个解决方案是连接到 GtkScrolledWindow 的”value-changed”信号
提前致谢!
调整。
来源:https://mail.gnome.org/archives/gtk-app-devel-list/2011-September/msg00014.html
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/269339.html