Fix for clicking and scolling which stopped working after enabling dead keys.
This commit is contained in:
parent
9b17ed2443
commit
678d1e9abe
|
@ -134,7 +134,7 @@ struct Mac_Input_Chunk{
|
||||||
- (void)process_focus_event;
|
- (void)process_focus_event;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface FCoder_View : NSTextView
|
@interface FCoder_View : NSView <NSTextInputClient>
|
||||||
- (void)request_display;
|
- (void)request_display;
|
||||||
- (void)check_clipboard;
|
- (void)check_clipboard;
|
||||||
- (void)process_keyboard_event:(NSEvent*)event down:(b8)down;
|
- (void)process_keyboard_event:(NSEvent*)event down:(b8)down;
|
||||||
|
@ -924,32 +924,6 @@ mac_toggle_fullscreen(void){
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)insertText:(NSString*)text{
|
- (void)insertText:(NSString*)text{
|
||||||
u32 len = [text length];
|
|
||||||
Scratch_Block scratch(mac_vars.tctx);
|
|
||||||
u16 *utf16 = push_array(scratch, u16, len);
|
|
||||||
[text getCharacters:utf16 range:NSMakeRange(0, len)];
|
|
||||||
String_Const_u16 str_16 = SCu16(utf16, len);
|
|
||||||
String_Const_u8 str_8 = string_u8_from_string_u16(&mac_vars.frame_arena, str_16).string;
|
|
||||||
for (i64 i = 0; i < str_8.size; i += 1){
|
|
||||||
if (str_8.str[i] == '\r'){
|
|
||||||
str_8.str[i] = '\n';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Input_Event *event = push_input_event(&mac_vars.frame_arena, &mac_vars.input_chunk.trans.event_list);
|
|
||||||
event->kind = InputEventKind_TextInsert;
|
|
||||||
event->text.string = str_8;
|
|
||||||
event->text.next_text = 0;
|
|
||||||
event->text.blocked = false;
|
|
||||||
if (mac_vars.active_text_input){
|
|
||||||
mac_vars.active_text_input->text.next_text = event;
|
|
||||||
} else if (mac_vars.active_key_stroke){
|
|
||||||
mac_vars.active_key_stroke->key.first_dependent_text = event;
|
|
||||||
}
|
|
||||||
|
|
||||||
mac_vars.active_text_input = event;
|
|
||||||
|
|
||||||
system_signal_step(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)keyDown:(NSEvent*)event{
|
- (void)keyDown:(NSEvent*)event{
|
||||||
|
@ -1044,6 +1018,78 @@ mac_toggle_fullscreen(void){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)unmarkText{
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSArray<NSAttributedStringKey>*)validAttributesForMarkedText{
|
||||||
|
return [NSArray array];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSAttributedString *)attributedSubstringForProposedRange:(NSRange)range
|
||||||
|
actualRange:(NSRangePointer)actualRange{
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)insertText:(id)string
|
||||||
|
replacementRange:(NSRange)replacementRange{
|
||||||
|
NSString *text = (NSString*)string;
|
||||||
|
u32 len = [text length];
|
||||||
|
Scratch_Block scratch(mac_vars.tctx);
|
||||||
|
u16 *utf16 = push_array(scratch, u16, len);
|
||||||
|
[text getCharacters:utf16 range:NSMakeRange(0, len)];
|
||||||
|
String_Const_u16 str_16 = SCu16(utf16, len);
|
||||||
|
String_Const_u8 str_8 = string_u8_from_string_u16(&mac_vars.frame_arena, str_16).string;
|
||||||
|
for (i64 i = 0; i < str_8.size; i += 1){
|
||||||
|
if (str_8.str[i] == '\r'){
|
||||||
|
str_8.str[i] = '\n';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Input_Event *event = push_input_event(&mac_vars.frame_arena, &mac_vars.input_chunk.trans.event_list);
|
||||||
|
event->kind = InputEventKind_TextInsert;
|
||||||
|
event->text.string = str_8;
|
||||||
|
event->text.next_text = 0;
|
||||||
|
event->text.blocked = false;
|
||||||
|
if (mac_vars.active_text_input){
|
||||||
|
mac_vars.active_text_input->text.next_text = event;
|
||||||
|
} else if (mac_vars.active_key_stroke){
|
||||||
|
mac_vars.active_key_stroke->key.first_dependent_text = event;
|
||||||
|
}
|
||||||
|
|
||||||
|
mac_vars.active_text_input = event;
|
||||||
|
|
||||||
|
system_signal_step(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSUInteger)characterIndexForPoint:(NSPoint)point{
|
||||||
|
return NSNotFound;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSRect)firstRectForCharacterRange:(NSRange)range
|
||||||
|
actualRange:(NSRangePointer)actualRange{
|
||||||
|
return NSMakeRect(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)doCommandBySelector:(SEL)selector{
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)hasMarkedText{
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSRange)markedRange{
|
||||||
|
return NSMakeRange(NSNotFound, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSRange)selectedRange{
|
||||||
|
return NSMakeRange(NSNotFound, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setMarkedText:(id)string
|
||||||
|
selectedRange:(NSRange)selectedRange
|
||||||
|
replacementRange:(NSRange)replacementRange{
|
||||||
|
}
|
||||||
|
|
||||||
- (void)mouseMoved:(NSEvent*)event{
|
- (void)mouseMoved:(NSEvent*)event{
|
||||||
[self process_mouse_move_event:event];
|
[self process_mouse_move_event:event];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue