Improved WindowState changes on SDL2 backend

SDL2 fails to report several different WindowState changes. OpenTK uses
a number of hacks to make it work to some extent, however real fixes
will have to be implemented upstream.
This commit is contained in:
Stefanos A. 2013-12-15 15:35:57 +01:00
parent bc95084804
commit d022e4c020

View file

@ -344,14 +344,13 @@ namespace OpenTK.Platform.SDL2
break; break;
case WindowEventID.MAXIMIZED: case WindowEventID.MAXIMIZED:
window.previous_window_state = window.window_state; window.window_state = WindowState.Maximized;
window.window_state = OpenTK.WindowState.Maximized;
window.WindowStateChanged(window, EventArgs.Empty); window.WindowStateChanged(window, EventArgs.Empty);
break; break;
case WindowEventID.MINIMIZED: case WindowEventID.MINIMIZED:
window.previous_window_state = window.window_state; window.previous_window_state = window.window_state;
window.window_state = OpenTK.WindowState.Minimized; window.window_state = WindowState.Minimized;
window.WindowStateChanged(window, EventArgs.Empty); window.WindowStateChanged(window, EventArgs.Empty);
break; break;
@ -667,11 +666,12 @@ namespace OpenTK.Platform.SDL2
case WindowState.Maximized: case WindowState.Maximized:
RestoreWindow(); RestoreWindow();
SDL.MaximizeWindow(window.Handle); SDL.MaximizeWindow(window.Handle);
HideShowWindowHack(); window_state = WindowState.Maximized;
break; break;
case WindowState.Minimized: case WindowState.Minimized:
SDL.MinimizeWindow(window.Handle); SDL.MinimizeWindow(window.Handle);
window_state = WindowState.Minimized;
break; break;
case WindowState.Normal: case WindowState.Normal: