core: Add UiBackend::close_virtual_keyboard
This method may be used by backends that require explicit virtual keyboard closing.
This commit is contained in:
parent
e18ae830c1
commit
53d2d16162
|
@ -91,9 +91,10 @@ pub trait UiBackend: Downcast {
|
||||||
// Unused, but kept in case we need it later.
|
// Unused, but kept in case we need it later.
|
||||||
fn message(&self, message: &str);
|
fn message(&self, message: &str);
|
||||||
|
|
||||||
// Only used on web.
|
|
||||||
fn open_virtual_keyboard(&self);
|
fn open_virtual_keyboard(&self);
|
||||||
|
|
||||||
|
fn close_virtual_keyboard(&self);
|
||||||
|
|
||||||
fn language(&self) -> LanguageIdentifier;
|
fn language(&self) -> LanguageIdentifier;
|
||||||
|
|
||||||
fn display_unsupported_video(&self, url: Url);
|
fn display_unsupported_video(&self, url: Url);
|
||||||
|
@ -360,6 +361,8 @@ impl UiBackend for NullUiBackend {
|
||||||
|
|
||||||
fn open_virtual_keyboard(&self) {}
|
fn open_virtual_keyboard(&self) {}
|
||||||
|
|
||||||
|
fn close_virtual_keyboard(&self) {}
|
||||||
|
|
||||||
fn language(&self) -> LanguageIdentifier {
|
fn language(&self) -> LanguageIdentifier {
|
||||||
US_ENGLISH.clone()
|
US_ENGLISH.clone()
|
||||||
}
|
}
|
||||||
|
|
|
@ -197,12 +197,18 @@ impl<'gc> FocusTracker<'gc> {
|
||||||
if let Some(text_field) = self.get_as_edit_text() {
|
if let Some(text_field) = self.get_as_edit_text() {
|
||||||
if text_field.is_editable() {
|
if text_field.is_editable() {
|
||||||
if !text_field.movie().is_action_script_3() {
|
if !text_field.movie().is_action_script_3() {
|
||||||
|
// TODO This logic is inaccurate and addresses
|
||||||
|
// only setting the focus programmatically.
|
||||||
let length = text_field.text_length();
|
let length = text_field.text_length();
|
||||||
text_field
|
text_field
|
||||||
.set_selection(Some(TextSelection::for_range(0, length)), context.gc());
|
.set_selection(Some(TextSelection::for_range(0, length)), context.gc());
|
||||||
}
|
}
|
||||||
context.ui.open_virtual_keyboard();
|
context.ui.open_virtual_keyboard();
|
||||||
|
} else {
|
||||||
|
context.ui.close_virtual_keyboard();
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
context.ui.close_virtual_keyboard();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -310,6 +310,8 @@ impl UiBackend for DesktopUiBackend {
|
||||||
// Unused on desktop
|
// Unused on desktop
|
||||||
fn open_virtual_keyboard(&self) {}
|
fn open_virtual_keyboard(&self) {}
|
||||||
|
|
||||||
|
fn close_virtual_keyboard(&self) {}
|
||||||
|
|
||||||
fn language(&self) -> LanguageIdentifier {
|
fn language(&self) -> LanguageIdentifier {
|
||||||
self.preferences.language().clone()
|
self.preferences.language().clone()
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,6 +117,8 @@ impl UiBackend for TestUiBackend {
|
||||||
|
|
||||||
fn open_virtual_keyboard(&self) {}
|
fn open_virtual_keyboard(&self) {}
|
||||||
|
|
||||||
|
fn close_virtual_keyboard(&self) {}
|
||||||
|
|
||||||
fn language(&self) -> LanguageIdentifier {
|
fn language(&self) -> LanguageIdentifier {
|
||||||
US_ENGLISH.clone()
|
US_ENGLISH.clone()
|
||||||
}
|
}
|
||||||
|
|
|
@ -292,6 +292,8 @@ impl UiBackend for WebUiBackend {
|
||||||
self.js_player.open_virtual_keyboard()
|
self.js_player.open_virtual_keyboard()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn close_virtual_keyboard(&self) {}
|
||||||
|
|
||||||
fn language(&self) -> LanguageIdentifier {
|
fn language(&self) -> LanguageIdentifier {
|
||||||
self.language.clone()
|
self.language.clone()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue