aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/document.rs
diff options
context:
space:
mode:
authorFabrice Desré <fabrice@desre.org>2018-04-21 14:17:02 -0700
committerFabrice Desré <fabrice@desre.org>2018-04-21 19:46:42 -0700
commit42886613d32f2daff25f1f3ce7a7328bcc2306f7 (patch)
treef04f4b80566b6acea2323e9fceedbd2aab9a97b2 /components/script/dom/document.rs
parent05fe8fa08d507836ce5659ff56f83022a90b241a (diff)
downloadservo-42886613d32f2daff25f1f3ce7a7328bcc2306f7.tar.gz
servo-42886613d32f2daff25f1f3ce7a7328bcc2306f7.zip
Notify the embedder when it should display or hide an IME
Diffstat (limited to 'components/script/dom/document.rs')
-rw-r--r--components/script/dom/document.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index 71df0e70356..5c9cd57b128 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -812,6 +812,11 @@ impl Document {
elem.set_focus_state(false);
// FIXME: pass appropriate relatedTarget
self.fire_focus_event(FocusEventType::Blur, node, None);
+
+ // Notify the embedder to hide the input method.
+ if elem.input_method_type().is_some() {
+ self.send_to_constellation(ScriptMsg::HideIME);
+ }
}
self.focused.set(self.possibly_focused.get().r());
@@ -826,6 +831,11 @@ impl Document {
if focus_type == FocusType::Element {
self.send_to_constellation(ScriptMsg::Focus);
}
+
+ // Notify the embedder to display an input method.
+ if let Some(kind) = elem.input_method_type() {
+ self.send_to_constellation(ScriptMsg::ShowIME(kind));
+ }
}
}