Bug 456

Summary: Screen resolution switchback when leaving NEWT fullscreen exclusive mode doesn't work.
Product: [JogAmp] Newt Reporter: Demoscene Passivist <demoscenepassivist>
Component: windowsAssignee: Sven Gothel <sgothel>
Status: VERIFIED FIXED    
Severity: critical    
Priority: ---    
Version: 1   
Hardware: All   
OS: windows   
Type: DEFECT SCM Refs:
5047b00127d976281098c39bee2d211fdbda5123
Workaround: ---

Description Demoscene Passivist 2011-01-07 11:45:37 CET
When using the new screenmode functionality setCurrentScreenMode() of NEWT, it
is expected behavior under Windows that when u close the application or
the application crashes the screenmode automatically resets back to
the resolution before the process started.

E.g. a normal application lifecycle screenmode wise would look like the following:

1. Desktop resolution of 1920x1080
2. The application (JOGL+NEWT) switches to 1280x720 fullscreen
3. The application crashed or terminates normally
4. AUTOMATIC switchback to the desktop resolution of 1920x1080 when the jvm terminates

Initially I thought the switchback behavior was some DWM default behavior and didn't have stg to do with AWT, but it seem NEWT is doing the screen resolution change in some "strange" way so that automatic reset to default is avoided/circumvented.

Manually switching back the resolution using NEWT is not an option here as it is often then case that the jvm crashes due to some driver bug wich leaves the user with the desktop resolution changed (usually to a much lower resolution).

AWTs fullscreen exclusive mode does this correctly, and the resolution is switched back automatically to desktop resolution when the jvm terminates or even crashes.

This is also no driver or platform issue as I have reproduced this behavior on ATI+NVIDIA and Win7/x64 and Vista/x32 using different JOGL builds up to the newest #266.
Comment 1 Sven Gothel 2011-08-24 02:00:35 CEST
jogl 5047b00127d976281098c39bee2d211fdbda5123

fixed, manually tested on desktop linux and windows via System.exit(0)
and ctrl-c.