[Scummvm-tracker] [ScummVM :: Bugs] #14433: MACOS: mouse cursor appearing / failing to capture when in fullscreen mode

ScummVM :: Bugs trac at scummvm.org
Sun Feb 25 21:12:08 UTC 2024


#14433: MACOS: mouse cursor appearing / failing to capture when in fullscreen mode
--------------------+-----------------------------
Reporter:  almeath  |       Owner:  (none)
    Type:  defect   |      Status:  new
Priority:  normal   |   Component:  Port: Mac OS X
 Version:           |  Resolution:
Keywords:           |        Game:
--------------------+-----------------------------
Comment (by SirBogman):

 | Also, the behavior is manifesting itself when setting ScummVM to use
 either OpenGL or SDL rendering.

 This doesn't matter. SDL is always used to manage the visibility of the
 system cursor on macOS.

 This is most likely a bug in SDL, although it may be possible to
 workaround it without modifying SDL. The APIs SDL_SetWindowMouseGrab and
 SDL_SetWindowMouseRect are related to capturing the mouse. In a local
 build, I modified SdlWindow::setMouseRect to adjust the rectangle so that
 y is at least 44 and height is reduced by the same amount. This fixes the
 bug where the system cursor shows up when you move to the top of the
 screen, but it also means that you can't move the mouse all the way to the
 top of the screen. It's not a proper fix. With an unmodified rectangle,
 SDL is allowing the system cursor to reappear after the mouse is moved to
 this region, even though we have indicated that it should not via
 SDL_SetWindowMouseGrab. Tested with SDL 2.30.0.

 Also, there is a different scenario that can cause the system cursor to be
 visible over the in-game cursor. Taking a screenshot with cmd+shift+4 and
 then clicking on the window. This is likely a separate SDL bug and for
 this one, it doesn't matter whether you are using the built-in display of
 a newer macbook. It always happens.

 One way to get rid of the double cursor, when it occurs, is to use ctrl+m
 to uncapture the mouse, then move it offscreen, then move it back
 onscreen, then capture it again with ctrl+m.
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/14433#comment:6>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list