[Scummvm-tracker] [ScummVM :: Bugs] #12793: MACOSX: When switching between windows created with different graphics types, both may be retained as active windows.
ScummVM :: Bugs
trac at scummvm.org
Tue Aug 10 08:13:00 UTC 2021
#12793: MACOSX: When switching between windows created with different graphics
types, both may be retained as active windows.
-------------------+----------------------------
Reporter: macca8 | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Port: Mac OS X
Version: | Keywords:
Game: |
-------------------+----------------------------
ScummVM’s graphics types can be broadly categorised as Surface SDL, OpenGL
or 3D OpenGL. When switching between any of these types, either by
changing the Graphics Mode setting or switching between game and Launcher
windows, the old window isn’t always completely destroyed when the new
window is created.
This appears to be an issue between macOS and later versions of SDL2,
though which is the earliest SDL2 version to trigger this behaviour isn’t
known. It applies to some degree to all current development, stable &
release builds, except the 32-bit v2.2.0 release.
For affected builds, the observed behaviour is as follows:
- By default, both new & any retained old windows are listed as currently
active in the app’s Window Menu, however only the new window is displayed
on-screen.
- An old window can be viewed by choosing it from the Window Menu, then
deactivated by choosing another window, in which case it remains visible
on-screen as a normal open window (but see next point).
- Generally, an old window is displayed as a black window, complete with
an inactive title bar. It can be moved by dragging the title bar, but not
resized or closed. However, especially with some game windows, the old
window may also present as invisible, in which case no interaction is
possible when 'revealed' on the desktop.
- Any open windows - including invisible windows - previously accessed
from the Window Menu can be viewed collectively by right-clicking the
app’s Dock Item and choosing Show All Windows from its menu.
- Retained old windows (there’s no limit) can only be deleted from the
desktop and/or menu by quitting the app.
See attached screenshots for examples of Window Menu, Dock Item Menu &
desktop images.
Criteria for reproducing this issue:
- The basic requirement is that the current graphics type changes to a
different type when the new window is created (to or from OpenGL, 3D
OpenGL, or Surface SDL).
- Use explicit settings for window types dependent on the Graphics Mode
option (i.e. Launcher & 2D games), for example, OpenGL or Surface SDL
normal2x (or 2x if testing builds that predate changes unique to current
development builds).
- Switches between Launcher & game (either 2D or 3D) require that the new
window also changes the screen mode as part of the switch (suggested
setup: windowed Launcher & fullscreen game).
To test, as a minimum, either:
- Change the Graphics Mode setting to or from OpenGL (try both
directions), or
- Load a game from the Launcher, then return to the Launcher (recommend 3D
for development builds, 2D for stable & release builds).
- The app’s Window Menu can be accessed either by changing screen mode
while in-game or from the Launcher.
Please note:
- Switches between different Surface SDL scalers are NOT affected by this
issue.
- Results can vary depending upon which Graphics Mode is applied to the
Launcher (OpenGL or Surface SDL).
- The issue may not be triggered until a subsequent switch, if no previous
switches have been performed since the app was launched.
- The criteria for testing 2D games can be applied to development builds,
but switches between game & Launcher and when using Alt+Enter in-game, can
produce unexpected transitional behaviour, which appears to be unrelated
to this issue. Provides a valid test, but this configuration not
recommended for regular usage.
Tested on an Intel Mac with a 1920x1080 screen, running macOS 10.11.6.
--
Ticket URL: <https://bugs.scummvm.org/ticket/12793>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list