utf8Text property
Implementation
String get utf8Text {
_ensureOpen();
final lenPtr = calloc<ffi.Size>();
try {
final ptr = bindings.ghostty_key_event_get_utf8(_handle, lenPtr);
final len = lenPtr.value;
if (ptr == ffi.nullptr || len == 0) {
return '';
}
final bytes = ptr.cast<ffi.Uint8>().asTypedList(len);
return utf8.decode(bytes, allowMalformed: true);
} finally {
calloc.free(lenPtr);
}
}
Implementation
set utf8Text(String value) {
_ensureOpen();
_freeUtf8Storage();
if (value.isEmpty) {
bindings.ghostty_key_event_set_utf8(_handle, ffi.nullptr, 0);
return;
}
final bytes = utf8.encode(value);
final ptr = calloc<ffi.Uint8>(bytes.length);
ptr.asTypedList(bytes.length).setAll(0, bytes);
_utf8Storage = ptr;
bindings.ghostty_key_event_set_utf8(
_handle,
ptr.cast<ffi.Char>(),
bytes.length,
);
}