diff options
-rw-r--r-- | last_contact/LastContact.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/last_contact/LastContact.cpp b/last_contact/LastContact.cpp index ba66cca..6bb0fb2 100644 --- a/last_contact/LastContact.cpp +++ b/last_contact/LastContact.cpp @@ -52,7 +52,7 @@ void stack_update(MessageWindowEventData *data) { PLUGININFO pluginInfo={
sizeof(PLUGININFO),
MODULE,
- PLUGIN_MAKE_VERSION(0,0,0,4),
+ PLUGIN_MAKE_VERSION(0,0,0,5),
"Re-open the last open message window using a configurable hot key.",
"Scott Ellis",
"mail@scottellis.com.au",
@@ -138,10 +138,16 @@ int Shutdown(WPARAM wParam, LPARAM lParam) { }
void CALLBACK TimerProc(HWND, UINT, UINT_PTR, DWORD) {
- if(GetAsyncKeyState(options.vk)
- && (options.mod_alt == false || GetAsyncKeyState(VK_MENU))
- && (options.mod_shift == false || GetAsyncKeyState(VK_SHIFT))
- && (options.mod_ctrl == false || GetAsyncKeyState(VK_CONTROL)))
+ // read all values - GetAsyncKeyState function is statefull
+ short state_key = GetAsyncKeyState(options.vk),
+ state_menu = GetAsyncKeyState(VK_MENU),
+ state_shift = GetAsyncKeyState(VK_SHIFT),
+ state_control = GetAsyncKeyState(VK_CONTROL);
+
+ if(state_key
+ && (options.mod_alt == false || state_menu)
+ && (options.mod_shift == false || state_shift)
+ && (options.mod_ctrl == false || state_control))
{
MessageWindowEventData wd;
if(stack_pop(&wd)) {
|