position using plain GDK, but I think there's still no way to warp the pointer to a different screen location.
It's been quite some time since I've done any X programming, but I recall having a function that would bound the pointer within a box. Should this exist, you could bound the cursor and then release it, perhaps after a motion event (I'm not sure how immediately the bounding event happened). :-\
Chris