protected override bool OnMotionNotifyEvent (Gdk.EventMotion evnt)
{
if (cursor_is_hidden) {
if (Math.Abs (hide_cursor_x - evnt.X) > CursorShowMovementThreshold ||
Math.Abs (hide_cursor_y - evnt.Y) > CursorShowMovementThreshold) {
ShowCursor ();
ShowControls ();
} else {
if (cursor_update_position_timeout_id > 0) {
GLib.Source.Remove (cursor_update_position_timeout_id);
}
cursor_update_position_timeout_id = GLib.Timeout.Add (CursorUpdatePositionDelay,
OnCursorUpdatePositionTimeout);
}
} else if (!ControlsActive) {
if (hide_cursor_timeout_id > 0) {
GLib.Source.Remove (hide_cursor_timeout_id);
}
hide_cursor_timeout_id = GLib.Timeout.Add (CursorHideDelay, OnHideCursorTimeout);
}
return base.OnMotionNotifyEvent (evnt);
}