From dfd26f214d0d965357d210580907e82f935a94a1 Mon Sep 17 00:00:00 2001 From: Simon Rozman Date: Tue, 13 Aug 2019 14:28:21 +0200 Subject: [PATCH] Upgrade eap::monitor_ui's HWND to volatile Signed-off-by: Simon Rozman --- lib/EAPBase_UI/include/EAP_UI.h | 2 +- lib/EAPBase_UI/src/EAP_UI.cpp | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/EAPBase_UI/include/EAP_UI.h b/lib/EAPBase_UI/include/EAP_UI.h index c5a3647..d0464e4 100644 --- a/lib/EAPBase_UI/include/EAP_UI.h +++ b/lib/EAPBase_UI/include/EAP_UI.h @@ -1219,7 +1219,7 @@ namespace eap bool m_is_master; ///< Is this monitor master? HWND m_hwnd; ///< Message window handle std::list m_slaves; ///< List of slaves to notify on finish - HWND m_hwnd_popup; ///< Pop-up window handle + volatile HWND m_hwnd_popup; ///< Pop-up window handle std::vector m_data; ///< Data master sent // Custom window messages diff --git a/lib/EAPBase_UI/src/EAP_UI.cpp b/lib/EAPBase_UI/src/EAP_UI.cpp index c5065f7..8b3564d 100644 --- a/lib/EAPBase_UI/src/EAP_UI.cpp +++ b/lib/EAPBase_UI/src/EAP_UI.cpp @@ -608,12 +608,13 @@ LRESULT eap::monitor_ui::winproc( assert(m_is_master); m_slaves.push_back((HWND)lparam); - if (m_hwnd_popup) { + HWND hwnd_popup = m_hwnd_popup; + if (hwnd_popup) { // Bring pop-up window up. - if (::IsIconic(m_hwnd_popup)) - ::SendMessage(m_hwnd_popup, WM_SYSCOMMAND, SC_RESTORE, 0); - ::SetActiveWindow(m_hwnd_popup); - ::SetForegroundWindow(m_hwnd_popup); + if (::IsIconic(hwnd_popup)) + ::SendMessage(hwnd_popup, WM_SYSCOMMAND, SC_RESTORE, 0); + ::SetActiveWindow(hwnd_popup); + ::SetForegroundWindow(hwnd_popup); } return TRUE;