Index: ui/events/ozone/evdev/event_modifiers_evdev.cc |
diff --git a/ui/events/ozone/evdev/event_modifiers_evdev.cc b/ui/events/ozone/evdev/event_modifiers_evdev.cc |
index cee7c1c98f85d0f053ffdef915bfa39db8ed88d7..66163d1d73b212f1ae755800ffddfb8bef190c13 100644 |
--- a/ui/events/ozone/evdev/event_modifiers_evdev.cc |
+++ b/ui/events/ozone/evdev/event_modifiers_evdev.cc |
@@ -59,6 +59,19 @@ void EventModifiersEvdev::UpdateModifierLock(unsigned int modifier, bool down) { |
UpdateFlags(modifier); |
} |
+void EventModifiersEvdev::SetModifierLock(unsigned int modifier, bool locked) { |
+ DCHECK_LT(modifier, EVDEV_NUM_MODIFIERS); |
+ |
+ if (locked) |
+ modifier_flags_locked_ |= kEventFlagFromModifiers[modifier]; |
+ else |
+ modifier_flags_locked_ &= ~kEventFlagFromModifiers[modifier]; |
+ |
+ // TODO(spang): Synchronize with the CapsLock LED. |
+ |
+ UpdateFlags(modifier); |
+} |
+ |
void EventModifiersEvdev::UpdateFlags(unsigned int modifier) { |
int mask = kEventFlagFromModifiers[modifier]; |
bool down = modifiers_down_[modifier]; |