diff --git a/Cargo.lock b/Cargo.lock index 630834fa61f..b5159d344c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4308,7 +4308,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -5397,8 +5397,6 @@ dependencies = [ [[package]] name = "ohos-ime" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee3ea454e31a3372cd9c4ed903db4fae861e92f57cf51852a3cd80f9d3945dcd" dependencies = [ "log", "ohos-ime-sys", @@ -5406,9 +5404,7 @@ dependencies = [ [[package]] name = "ohos-ime-sys" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f68e03eb5b698781a69dc4918a17fe040a30be87de7014c12e4a2a3cb8a00f" +version = "0.2.0" [[package]] name = "ohos-sys-opaque-types" diff --git a/ports/servoshell/Cargo.toml b/ports/servoshell/Cargo.toml index edeaef5408f..887f3fc6558 100644 --- a/ports/servoshell/Cargo.toml +++ b/ports/servoshell/Cargo.toml @@ -91,7 +91,7 @@ ipc-channel = { workspace = true, features = ["force-inprocess"] } napi-derive-ohos = "1.0.4" napi-ohos = "1.0.4" ohos-ime = "0.3.0" -ohos-ime-sys = "0.1.4" +ohos-ime-sys = "0.2.0" ohos-vsync = "0.1.3" xcomponent-sys = { version = "0.3.1", features = ["api-12", "keyboard-types"] } diff --git a/ports/servoshell/egl/ohos.rs b/ports/servoshell/egl/ohos.rs index b9587771a50..1d8a0c9e556 100644 --- a/ports/servoshell/egl/ohos.rs +++ b/ports/servoshell/egl/ohos.rs @@ -867,14 +867,22 @@ impl HostTrait for HostCallbacks { let mut ime_proxy = self.ime_proxy.borrow_mut(); let ime = ime_proxy.get_or_insert_with(|| { let attach_options = AttachOptions::new(true); - let configbuilder = ohos_ime::TextConfigBuilder::new(); let options = convert_ime_options(input_type, multiline); - let text_config = configbuilder + let text_config = ohos_ime::TextConfigBuilder::new() .input_type(options.input_type) .enterkey_type(options.enterkey_type) .build(); - let editor = RawTextEditorProxy::new(Box::new(ServoIme { text_config })); + let editor = RawTextEditorProxy::new(Box::new(ServoIme { text_config })) + .map_err(|e| { + error!("Failed to create RawTextEditorProxy: {:?}", e); + return; + }) + .unwrap(); ImeProxy::new(editor, attach_options) + .map_err(|e| { + error!("Failed to create IME proxy: {:?}", e); + }) + .unwrap() }); match ime.show_keyboard() { Ok(()) => debug!("IME show keyboard - success"),