We are currently migrating Bugzilla to GitHub issues.
Any changes made to the bug tracker now will be lost, so please do not post new bugs or make changes to them.
When we're done, all bug URLs will redirect to their equivalent location on the new bug tracker.

Bug 1512 - Cursor restricted to SDL application in fullscreen even in multi-monitor situations
Summary: Cursor restricted to SDL application in fullscreen even in multi-monitor situ...
Status: RESOLVED ENDOFLIFE
Alias: None
Product: SDL
Classification: Unclassified
Component: main (show other bugs)
Version: 1.2.15
Hardware: All Linux
: P2 normal
Assignee: Sam Lantinga
QA Contact: Sam Lantinga
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-06-04 12:29 UTC by Lukas Sabota
Modified: 2015-08-25 09:38 UTC (History)
1 user (show)

See Also:


Attachments
A simple C program to demonstrate the fullscreen cursor issue in this bug (755 bytes, text/x-csrc)
2012-06-04 12:29 UTC, Lukas Sabota
Details
Simple C program to reproduce the issue (917 bytes, text/x-csrc)
2012-06-04 12:34 UTC, Lukas Sabota
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Lukas Sabota 2012-06-04 12:29:14 UTC
Created attachment 870 [details]
A simple C program to demonstrate the fullscreen cursor issue in this bug

Summary:
  When an SDL application is in fullscreen mode, the cursor in that application is restricted to the SDL application.  In a setup where the X11 server has multiple heads (monitors) configured in a non-Xinerama/TwinView setup (which is preferred for performance purposes in most-all situations) the user is unable to interact with any applications running on other X screens because the cursor and therefore focus is locked to the fullscreen SDL application.  This restricts a multi-monitor environment into a single-application environment.  Most games have a console in which the cursor grab is released so that you can access other applications, so it would really helpful if this could be utilized in SDL games.

Steps to reproduce:
  (At least two monitors required).  Configure the two monitors in separate X screens so that a fullscreen SDL application uses only one monitor and doesn't attempt to span across multiple monitors.  Enable fullscreen in the SDL application.  Release cursor grab ("`" key in most FPS games to bring up console).  Try to move the cursor to another monitor/X screen.

I wrote a simple C program to demonstrate this issue.  The example C program can be compiled with the following command:
  gcc `sdl-config --cflags --libs` cursor_bug.c -o cursor_bug
When you run the program (./cursor_bug) it will spawn an SDL surface in fullscreen with the mouse released and you can see that the cursor is restricted to the fullscreen window and you cannot move it outside the boundaries of the SDL application.

Current (not-so-great) workaround:
  Quickly switch to windowed mode when you need to do something outside the SDL application and switch back to fullscreen when you are completed.

Alternatively, for some applications you can disable window borders and docks and set the resolution to your desktops resolution.  This unfortunately is not an ideal situation (especially for games that do not allow for full control over windowed resolution).

Notes:
  Let me know what further information I can provide to assist in getting this bug solved.  I may poke around at the SDL source code if I get a chance but I have never checked out the tree and would like to receive some input on the issue before attempting to tackle the issue alone.
Comment 1 Lukas Sabota 2012-06-04 12:34:10 UTC
Created attachment 871 [details]
Simple C program to reproduce the issue

added instructions for compiling in the source code for clarity
Comment 2 Ryan C. Gordon 2015-08-25 09:38:23 UTC
Hello, and sorry if you're getting several copies of this message by email, since we are closing many bugs at once here.

We have decided to mark all SDL 1.2-related bugs as RESOLVED ENDOFLIFE, as we don't intend to work on SDL 1.2 any further, but didn't want to mark a large quantity of bugs as RESOLVED WONTFIX, to clearly show what was left unattended to and make it easily searchable.

Our current focus is on SDL 2.0.

If you are still having problems with an ENDOFLIFE bug, your absolute best option is to move your program to SDL2, as it will likely fix the problem by default, and give you access to modern platforms and tons of super-cool new features.

Failing that, we _will_ accept small patches to fix these issues, and put them in revision control, although we do not intend to do any further official 1.2 releases.

Failing that, please feel free to contact me directly by email (icculus@icculus.org) and we'll try to find some way to help you out of your situation.

Thank you,
--ryan.