diff --git a/platform.d b/platform.d index c122291..9a02e96 100644 --- a/platform.d +++ b/platform.d @@ -793,13 +793,14 @@ HandleEvents(void* window_ptr) KeySym key_sym = XkbKeycodeToKeysym(w.display, cast(KeyCode)code, 0, 0); Input input = ConvertInput(key_sym); - enum modifiers = [Input.LeftShift, Input.RightShift, Input.LeftCtrl, Input.RightCtrl, Input.LeftAlt, Input.RightAlt]; + enum modifier_inputs = [Input.LeftShift, Input.RightShift, Input.LeftCtrl, Input.RightCtrl, Input.LeftAlt, Input.RightAlt]; + enum modifiers = [MD.LeftShift, MD.RightShift, MD.LeftCtrl, MD.RightCtrl, MD.LeftAlt, MD.RightAlt]; - static foreach(md; modifiers) + static foreach(i, md; modifier_inputs) { if(input == md) { - w.modifier = cast(Modifier)(pressed ? (w.modifier | md) : (w.modifier & ~md)); + w.modifier = cast(Modifier)(pressed ? (w.modifier | modifiers[i]) : (w.modifier & ~modifiers[i])); } }