2010年11月6日 星期六

GTK視窗事件 "motion-notify-event"

GTK在視窗元件中定義了 motion-notify-event,這種訊號會在滑鼠游標在視窗元件上移動時觸發。由於滑鼠游標快速地在視窗元件上移動時會產生大量的視窗事件,使得系統來不及處理完佇列中的事件進而產生 lag 的現象。

為了解決這個問題,我們可以在這個視窗元件上加上 GDK_POINTER_MOTION_HINT。

使用motion-notify-event的視窗元件,需要執行下列指令來啟用motion-notify-event
gtk_widget_add_events(GTK_WIDGET(?) ,GDK_POINTER_MOTION_MASK);

加上 GDK_POINTER_MOTION_HINT
gtk_widget_add_events(GTK_WIDGET(?) ,GDK_POINTER_MOTION_HINT_MASK);