utf8Text property

String get utf8Text

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);
  }
}
set utf8Text (String value)

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,
  );
}