@@ -321,7 +321,7 @@ - (void)setWebViewCallbacks
321321 if (self == nil ) {
322322 return ;
323323 }
324- NSEvent * event = Ladybird::key_event_to_ns_event (key_event);
324+ auto * event = Ladybird::key_event_to_ns_event (key_event);
325325
326326 self.event_being_redispatched = event;
327327 [NSApp sendEvent: event];
@@ -1072,8 +1072,7 @@ - (void)keyDown:(NSEvent*)event
10721072 return ;
10731073 }
10741074
1075- auto key_event = Ladybird::ns_event_to_key_event (Web::KeyEvent::Type::KeyDown, event);
1076- m_web_view_bridge->enqueue_input_event (move (key_event));
1075+ [self interpretKeyEvents: @[ event ]];
10771076}
10781077
10791078- (void )keyUp : (NSEvent *)event
@@ -1123,6 +1122,81 @@ - (void)cursorUpdate:(NSEvent*)event
11231122 // prevent this from happening. See: https://stackoverflow.com/a/20197686
11241123}
11251124
1125+ - (BOOL )canBecomeKeyView
1126+ {
1127+ return YES ;
1128+ }
1129+
1130+ #pragma mark - NSResponder
1131+
1132+ - (BOOL )acceptsFirstResponder
1133+ {
1134+ return YES ;
1135+ }
1136+
1137+ #pragma mark - NSTextInputClient
1138+
1139+ - (void )insertText : (id )string replacementRange : (NSRange )replacementRange
1140+ {
1141+ auto * event = [NSApp currentEvent ];
1142+ if (event && event.type == NSEventTypeKeyDown) {
1143+ auto key_event = Ladybird::ns_event_to_key_event (Web::KeyEvent::Type::KeyDown, event);
1144+ m_web_view_bridge->enqueue_input_event (move (key_event));
1145+ }
1146+ }
1147+
1148+ - (void )doCommandBySelector : (SEL )selector
1149+ {
1150+ auto * event = [NSApp currentEvent ];
1151+ if (event && event.type == NSEventTypeKeyDown) {
1152+ auto key_event = Ladybird::ns_event_to_key_event (Web::KeyEvent::Type::KeyDown, event);
1153+ m_web_view_bridge->enqueue_input_event (move (key_event));
1154+ }
1155+ }
1156+
1157+ - (BOOL )hasMarkedText
1158+ {
1159+ return NO ;
1160+ }
1161+
1162+ - (NSRange )markedRange
1163+ {
1164+ return NSMakeRange (NSNotFound , 0 );
1165+ }
1166+
1167+ - (NSRange )selectedRange
1168+ {
1169+ return NSMakeRange (NSNotFound , 0 );
1170+ }
1171+
1172+ - (void )setMarkedText : (id )string selectedRange : (NSRange )selectedRange replacementRange : (NSRange )replacementRange
1173+ {
1174+ }
1175+
1176+ - (void )unmarkText
1177+ {
1178+ }
1179+
1180+ - (NSArray <NSAttributedStringKey>*)validAttributesForMarkedText
1181+ {
1182+ return @[];
1183+ }
1184+
1185+ - (NSAttributedString *)attributedSubstringForProposedRange : (NSRange )range actualRange : (NSRangePointer )actualRange
1186+ {
1187+ return nil ;
1188+ }
1189+
1190+ - (NSUInteger )characterIndexForPoint : (NSPoint )point
1191+ {
1192+ return NSNotFound ;
1193+ }
1194+
1195+ - (NSRect )firstRectForCharacterRange : (NSRange )range actualRange : (NSRangePointer )actualRange
1196+ {
1197+ return NSZeroRect ;
1198+ }
1199+
11261200#pragma mark - NSDraggingDestination
11271201
11281202- (NSDragOperation )draggingEntered : (id <NSDraggingInfo >)event
0 commit comments