* `Show()` must be called before changing `WindowState`, otherwise the internal state of the window will be messed up.
If you don't do this, when the window is closed when minimized, even if you click the tray menu icon, it will never show up.
* Remember window state before minimized. If window was maximized before minimized, it should be restore to maximized when `Focus_Window` called.