eframe web fix: `save()` on "blur" event

This commit is contained in:
Emil Ernerfeldt 2024-07-01 16:16:56 +02:00
parent 051b90bfc7
commit f3a0ac1d1b
3 changed files with 9 additions and 4 deletions

View File

@ -191,7 +191,7 @@ impl AppRunner {
pub fn update_focus(&mut self) {
let has_focus = self.has_focus();
if self.input.raw.focused != has_focus {
// log::debug!("{} Focus changed to {has_focus}", self.canvas().id());
log::trace!("{} Focus changed to {has_focus}", self.canvas().id());
self.input.set_focus(has_focus);
if !has_focus {

View File

@ -103,8 +103,13 @@ fn install_blur_focus(runner_ref: &WebRunner, target: &EventTarget) -> Result<()
// so we also poll the focus state each frame in `AppRunner::logic`.
for event_name in ["blur", "focus"] {
let closure = move |_event: web_sys::MouseEvent, runner: &mut AppRunner| {
// log::debug!("{} {event_name:?}", runner.canvas().id());
log::trace!("{} {event_name:?}", runner.canvas().id());
runner.update_focus();
if event_name == "blur" {
// This might be a good time to save the state
runner.save();
}
};
runner_ref.add_event_listener(target, event_name, closure)?;

View File

@ -148,7 +148,7 @@ impl TextAgent {
return;
}
// log::debug!("Focusing text agent");
log::trace!("Focusing text agent");
if let Err(err) = self.input.focus() {
log::error!("failed to set focus: {}", super::string_from_js_value(&err));
@ -160,7 +160,7 @@ impl TextAgent {
return;
}
// log::debug!("Blurring text agent");
log::trace!("Blurring text agent");
if let Err(err) = self.input.blur() {
log::error!("failed to set focus: {}", super::string_from_js_value(&err));