On Thu, 2007-04-19 at 05:51 -0400, Zephaniah E. Hull wrote: > On Thu, Apr 19, 2007 at 11:47:22AM +0200, Marco Pesenti Gritti wrote: > > On Thu, 2007-04-19 at 01:41 -0400, Zephaniah E. Hull wrote: > > > 2: This is where you have choices and tradeoffs. > > > You can simply grab the core pointer events and let the pointer move > > > around, this has the problem of not being able to scroll in one > > > direction once the pointer has reached the edge of the screen. > > > > Yeah, this won't work. > > > > > You can do a full pointer grab, as many games do, usually making the > > > pointer invisible at the same time. This allows you to scroll > > > around however you want, but without some tricks to save/restore > > > pointer position, this leaves the pointer in the middle of the > > > screen when you let go. > > > > > > > What do you mean with full pointer grab exactly? This is what SDL does: > > > > XGrabPointer(SDL_Display, SDL_Window, True, 0, > > GrabModeAsync, GrabModeAsync, > > SDL_Window, None, CurrentTime); > > > > I tried it out with neverball and once you reach the edge you can't move in > > that > > direction anymore. > > Extra work is needed, specificly you have to move the pointer to the > center of the screen, and on each movement move the pointer back to the > center of the screen. > > It's ugly, but it's also how X applications have stolen the pointer for > ages. > >
OK, sounds like a reasonable approach for Gen1 to me. The only downside I can think of is that we have to hide the pointer. Marco _______________________________________________ Devel mailing list [email protected] http://mailman.laptop.org/mailman/listinfo/devel
