summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--last_contact/LastContact.cpp16
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)) {