From 6c52bf597189e6a668f6a4437e2474aec5e532e3 Mon Sep 17 00:00:00 2001 From: hogliux Date: Thu, 20 Oct 2016 10:14:38 +0100 Subject: [PATCH] Changed the way windows modifiers are probed in an attempt to fix right alt-key issues. Part II. --- modules/juce_gui_basics/native/juce_win32_Windowing.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp index 362ae2388e..253dfec967 100644 --- a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp @@ -973,7 +973,12 @@ public: if (isKeyDown (VK_SHIFT)) keyMods |= ModifierKeys::shiftModifier; if (isKeyDown (VK_CONTROL)) keyMods |= ModifierKeys::ctrlModifier; if (isKeyDown (VK_MENU)) keyMods |= ModifierKeys::altModifier; - if (isKeyDown (VK_RMENU)) keyMods = (keyMods & ~ModifierKeys::ctrlModifier) | ModifierKeys::altModifier; + + // workaround: Windows maps AltGr to left-Ctrl + right-Alt. + if (isKeyDown (VK_RMENU) && !isKeyDown (VK_RCONTROL)) + { + keyMods = (keyMods & ~ModifierKeys::ctrlModifier) | ModifierKeys::altModifier; + } currentModifiers = currentModifiers.withOnlyMouseButtons().withFlags (keyMods); }