2011-12-26 1 views
2

У меня есть область рисования внутри прокрученного окна (с удобной видовой опцией), , и эта область рисования обновляется в соответствии с входящими событиями уведомления о движении. Когда я просматриваю область, хотя, очевидно, не происходит никаких событий движения, , но я хотел обойти это, и поэтому попытался подключить сигнал «scroll-event» области рисования области к тому же обратному сигналу с уведомлением о движении.GTK: Получить положение указателя на прокрутке-событии AFTER scrolled_window прокручивается

Проблема, с которой я столкнулся, заключается в том, что этот сигнал выдается перед прокручиваемым окном. обновил свой видовой экран, поэтому в обратном вызове я получаю координаты указателя, которые были истинны непосредственно перед прокруткой, что делает его похожим на область рисования всегда «отстает на шаг» по отношению к фактическому указателю при прокрутке, не перемещая сам указатель. Я думал, что смогу компенсировать это, вручную извлекая координаты с помощью gdk_window_get_pointer, но потом я понял, что это не может работать, поскольку указатель технически все еще находится на прежнем месте, когда начинается обратный вызов. Я также попытался использовать g_signal_connect_after в надежде, что вызов будет вызван после прокрутки окна просмотра, но это не помогло.

Моя последняя надежда состояла в том, чтобы запустить таймер на событиях прокрутки и иметь огонь обратного вызова через минимальное время, но это звучит ужасно уродливо, и я бы хотел избежать этого любой ценой.

Любые идеи относительно того, как это можно реализовать? Спасибо заранее!

+0

У меня такая же проблема, и хотел бы знать ответ, в случае, если вы ее решения помните, что вы можете оставить ответ себя тоже. – Nelson

+0

@ Нельсон Я думаю, что я действительно сдался тогда и никогда не исправлял это. В то время мои знания GTK также были довольно ограниченными. – Ancurio

ответ