Revise main window minimization/hiding/restoring

This commit is contained in:
Simon Rozman 2018-09-25 12:04:02 +02:00
parent 1feebdbbf8
commit ea5049172d
2 changed files with 10 additions and 4 deletions

View File

@ -66,6 +66,7 @@ wxEND_EVENT_TABLE()
wxZRColaFrame::wxZRColaFrame() : wxZRColaFrame::wxZRColaFrame() :
m_hWndSource(NULL), m_hWndSource(NULL),
m_wasIconised(false),
m_chrSelect(NULL), m_chrSelect(NULL),
m_settings(NULL), m_settings(NULL),
m_chrReq(NULL), m_chrReq(NULL),
@ -316,6 +317,7 @@ void wxZRColaFrame::OnSendAbort(wxCommandEvent& event)
{ {
if (m_hWndSource) { if (m_hWndSource) {
// Return focus to the source window. // Return focus to the source window.
if (m_wasIconised) Iconize();
::SetActiveWindow(m_hWndSource); ::SetActiveWindow(m_hWndSource);
::SetForegroundWindow(m_hWndSource); ::SetForegroundWindow(m_hWndSource);
m_hWndSource = NULL; m_hWndSource = NULL;
@ -372,8 +374,8 @@ void wxZRColaFrame::OnIdle(wxIdleEvent& event)
void wxZRColaFrame::OnTaskbarIconClick(wxTaskBarIconEvent& event) void wxZRColaFrame::OnTaskbarIconClick(wxTaskBarIconEvent& event)
{ {
Iconize(false);
Show(true); Show(true);
Iconize(false);
Raise(); Raise();
event.Skip(); event.Skip();
@ -599,6 +601,7 @@ void wxZRColaFrame::DoSend(const wxString& str)
} }
// Return focus to the source window and send the input. // Return focus to the source window and send the input.
if (m_wasIconised) Iconize();
::SetActiveWindow(m_hWndSource); ::SetActiveWindow(m_hWndSource);
::SetForegroundWindow(m_hWndSource); ::SetForegroundWindow(m_hWndSource);
::Sleep(200); ::Sleep(200);
@ -619,6 +622,7 @@ void wxZRColaFrame::DoCopyAndReturn(const wxString& str)
} }
// Return focus to the source window. // Return focus to the source window.
if (m_wasIconised) Iconize();
::SetActiveWindow(m_hWndSource); ::SetActiveWindow(m_hWndSource);
::SetForegroundWindow(m_hWndSource); ::SetForegroundWindow(m_hWndSource);
m_hWndSource = NULL; m_hWndSource = NULL;
@ -680,12 +684,13 @@ WXLRESULT wxZRColaFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM
} }
m_hWndSource = hWndSource; m_hWndSource = hWndSource;
m_wasIconised = IsIconized();
//if (m_state == wxABS_FLOAT) { //if (m_state == wxABS_FLOAT) {
if (IsIconized()) Show(true);
::SendMessage(m_hWnd, WM_SYSCOMMAND, SC_RESTORE, 0); Iconize(false);
Raise();
::SetActiveWindow(m_hWnd); ::SetActiveWindow(m_hWnd);
::SetForegroundWindow(m_hWnd);
//} else if (wxAppBarIsDocked(m_state)) { //} else if (wxAppBarIsDocked(m_state)) {
// // ZRCola window is currently docked. // // ZRCola window is currently docked.

View File

@ -132,6 +132,7 @@ protected:
protected: protected:
WXHWND m_hWndSource; ///< Handle of the active window, when the ZRCola hotkey was pressed WXHWND m_hWndSource; ///< Handle of the active window, when the ZRCola hotkey was pressed
bool m_wasIconised; ///< Was the ZRCola window iconized, when the ZRCola hotkey was pressed
wxTaskBarIcon *m_taskBarIcon; ///< Taskbar icon wxTaskBarIcon *m_taskBarIcon; ///< Taskbar icon
wxZRColaCharSelect *m_chrSelect; ///< Character selection dialog wxZRColaCharSelect *m_chrSelect; ///< Character selection dialog
wxZRColaCharRequest *m_chrReq; ///< Request a New Character dialog wxZRColaCharRequest *m_chrReq; ///< Request a New Character dialog