[Linux X11] Fix incorrect window state if it was set while the window was invisible

This commit is contained in:
cra0zy 2016-02-19 18:03:11 +01:00
parent 933701f062
commit b944d92754

View file

@ -116,6 +116,7 @@ namespace OpenTK.Platform.X11
// back, reset window to these.s // back, reset window to these.s
WindowBorder _previous_window_border; WindowBorder _previous_window_border;
Size _previous_window_size; Size _previous_window_size;
OpenTK.WindowState _previous_window_state = OpenTK.WindowState.Normal;
MouseCursor cursor = MouseCursor.Default; MouseCursor cursor = MouseCursor.Default;
IntPtr cursorHandle; IntPtr cursorHandle;
@ -1281,6 +1282,8 @@ namespace OpenTK.Platform.X11
// ProcessEvents. // ProcessEvents.
ChangeWindowState(value); ChangeWindowState(value);
ProcessEvents(); ProcessEvents();
_previous_window_state = (value == OpenTK.WindowState.Fullscreen) ? OpenTK.WindowState.Fullscreen : OpenTK.WindowState.Normal;
} }
} }
@ -1611,6 +1614,8 @@ namespace OpenTK.Platform.X11
{ {
Functions.XMapWindow(window.Display, window.Handle); Functions.XMapWindow(window.Display, window.Handle);
} }
this.WindowState = _previous_window_state;
} }
else if (!value && visible) else if (!value && visible)
{ {
@ -1618,6 +1623,8 @@ namespace OpenTK.Platform.X11
{ {
Functions.XUnmapWindow(window.Display, window.Handle); Functions.XUnmapWindow(window.Display, window.Handle);
} }
_previous_window_state = (this.WindowState == OpenTK.WindowState.Fullscreen) ? OpenTK.WindowState.Fullscreen : OpenTK.WindowState.Normal;
} }
} }
} }