How can I lock the cursor to the inside of a window on Linux?
Asked Answered
C

1

4

I'm trying to put together a game for Linux which involves a lot of fast action and flinging around of the mouse cursor. If the user wants to play in windowed mode, I'd quite like to lock the cursor to the inside of the window to avoid accidentally changing programs in the heat of battle (obviously this will cancel itself if the user changes programs or hits escape for the pause menu.)

On Windows, this can be accomplished easily with ClipCursor(). I can't find an equivalent on Linux. Is there one?

I plan to do this in pure X code, but obviously if anyone knows of a way to do this in any Linux windowing library then I can just read the source code and figure out how to duplicate it in X.

Citronellal answered 10/1, 2011 at 0:51 Comment(3)
When you ask multiple related questions, you should link them to each other.Jost
See very similar question SO 4642863 asking for the same thing on MacOS X.Reifel
Sorry, I didn't realize linking questions was expected. My mistake.Citronellal
F
2

int XGrabPointer(Display *display, Window grab_window, Bool owner_events, unsigned int event_mask, int pointer_mode, int keyboard_mode, Window confine_to, Cursor cursor, Time time);

confine_to
        Specifies the window to confine the pointer in or None.

Filiano answered 10/1, 2011 at 0:59 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.