fix modifier keys

This commit is contained in:
Matthew 2025-09-17 04:05:06 +10:00
parent 984eab8e1e
commit b951e4b5ed

View File

@ -793,13 +793,14 @@ HandleEvents(void* window_ptr)
KeySym key_sym = XkbKeycodeToKeysym(w.display, cast(KeyCode)code, 0, 0); KeySym key_sym = XkbKeycodeToKeysym(w.display, cast(KeyCode)code, 0, 0);
Input input = ConvertInput(key_sym); 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) 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]));
} }
} }