Ensure that the correct window is enabled again
authorAndre Heinecke <aheinecke@intevation.de>
Tue, 25 Jul 2017 12:04:28 +0000 (14:04 +0200)
committerAndre Heinecke <aheinecke@intevation.de>
Tue, 25 Jul 2017 12:04:28 +0000 (14:04 +0200)
* src/mail.cpp (encrypt_sign): Store window handle.

--
This fixes a rare case where the active window changes during
encrypt and the wrong window would be enabled again. This would
result in an unsresponsive Outlook.

src/mail.cpp

index 027d71e..f0a32b8 100644 (file)
@@ -904,7 +904,9 @@ Mail::encrypt_sign ()
     }
   flags = get_gpgol_draft_info_flags (message);
 
-  EnableWindow (get_active_hwnd(), FALSE);
+  const auto window = get_active_hwnd ();
+
+  EnableWindow (window, FALSE);
   if (flags == 3)
     {
       log_debug ("%s:%s: Sign / Encrypting message",
@@ -929,7 +931,7 @@ Mail::encrypt_sign ()
     }
   log_debug ("%s:%s: Status: %i",
              SRCNAME, __func__, err);
-  EnableWindow (get_active_hwnd(), TRUE);
+  EnableWindow (window, TRUE);
   gpgol_release (message);
   m_crypt_successful = !err;
   return err;