2011-12-26 77 views
2

我有一個滾動窗口(帶便利視口)內的繪圖區域, ,並且此繪圖區域根據傳入的動作通知事件進行更新。 當我滾動區域時,雖然顯然沒有發出任何運動事件,但是我想解決這個問題,因此試圖將繪圖區域的「scroll-event」信號連接到同一個motion-notify回調。GTK:在滾動事件後獲取指針位置後滾動窗口已滾動

我在這裏面臨的問題是,這個信號是在滾動窗口 更新其視口之前發出的,所以在回調中,我最終得到了滾動前真正的指針座標,使它看起來像繪圖區域在滾動時並不移動指針本身時,始終「落後於」實際指針。 我想我可以通過手動提取gdk_window_get_pointer的座標來補償這一點,但後來我意識到這不能工作,因爲當回調開始時,指針在技術上仍然處於舊的位置。 我也嘗試過使用g_signal_connect_after來希望在視口滾動後有回調被調用,但它沒有幫助。

我最後的希望是在scroll-events上啓動一個定時器,並在最短的時間後觸發回調,但這聽起來真的很難看,我想不惜一切代價避免這種情況。

關於如何實現這一點的任何想法? 在此先感謝!

+0

我有同樣的問題,並想知道答案,如果你已經解決它記得你可以自己發佈的答案了。 – Nelson 2013-10-21 08:18:58

+0

@納爾遜我覺得我當時放棄了,從來沒有修好它。我的GTK知識在當時也相當有限。 – Ancurio 2013-10-22 20:58:30

回答