From df0fd3d916436055e6686ed5b615764fe87464b0 Mon Sep 17 00:00:00 2001 From: sveith Date: Thu, 9 Apr 2009 14:59:46 +0000 Subject: [PATCH] Fixed Issue 30: Synergy messes with umlauts and other silent keys --- lib/platform/CSynergyHook.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/platform/CSynergyHook.cpp b/lib/platform/CSynergyHook.cpp index c611a592..ab4c49f5 100644 --- a/lib/platform/CSynergyHook.cpp +++ b/lib/platform/CSynergyHook.cpp @@ -359,6 +359,15 @@ doKeyboardHookHandler(WPARAM wParam, LPARAM lParam) switch (n) { default: // key is a dead key + + if(lParam & 0x80000000u) + // This handles the obscure situation where a key has been + // pressed which is both a dead key and a normal character + // depending on which modifiers have been pressed. We + // break here to prevent it from being considered a dead + // key. + break; + g_deadVirtKey = wParam; g_deadLParam = lParam; for (size_t i = 0; i < sizeof(keys) / sizeof(keys[0]); ++i) {