darwin: Add insertText callback which is responsible for firing char_input events
This commit is contained in:
parent
c70b1817ee
commit
60a68a7453
1 changed files with 18 additions and 0 deletions
|
|
@ -176,6 +176,14 @@ fn initWindow(
|
||||||
);
|
);
|
||||||
view.setBlock_keyDown(keyDown.asBlock().copy());
|
view.setBlock_keyDown(keyDown.asBlock().copy());
|
||||||
|
|
||||||
|
var insertText = objc.foundation.stackBlockLiteral(
|
||||||
|
ViewCallbacks.insertText,
|
||||||
|
context,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
);
|
||||||
|
view.setBlock_insertText(insertText.asBlock().copy());
|
||||||
|
|
||||||
var keyUp = objc.foundation.stackBlockLiteral(
|
var keyUp = objc.foundation.stackBlockLiteral(
|
||||||
ViewCallbacks.keyUp,
|
ViewCallbacks.keyUp,
|
||||||
context,
|
context,
|
||||||
|
|
@ -413,6 +421,16 @@ const ViewCallbacks = struct {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn insertText(block: *objc.foundation.BlockLiteral(*Context), event: *objc.app_kit.Event, codepoint: u32) callconv(.C) void {
|
||||||
|
_ = event; // autofix
|
||||||
|
const core: *Core = block.context.core;
|
||||||
|
const window_id = block.context.window_id;
|
||||||
|
core.pushEvent(.{ .char_input = .{
|
||||||
|
.codepoint = @intCast(codepoint),
|
||||||
|
.window_id = window_id,
|
||||||
|
} });
|
||||||
|
}
|
||||||
|
|
||||||
pub fn keyUp(block: *objc.foundation.BlockLiteral(*Context), event: *objc.app_kit.Event) callconv(.C) void {
|
pub fn keyUp(block: *objc.foundation.BlockLiteral(*Context), event: *objc.app_kit.Event) callconv(.C) void {
|
||||||
const core: *Core = block.context.core;
|
const core: *Core = block.context.core;
|
||||||
const window_id = block.context.window_id;
|
const window_id = block.context.window_id;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue