mirror of
https://github.com/emilk/egui.git
synced 2026-09-02 06:40:06 -04:00
eframe web fix: save() on "blur" event
This commit is contained in:
@@ -191,7 +191,7 @@ impl AppRunner {
|
|||||||
pub fn update_focus(&mut self) {
|
pub fn update_focus(&mut self) {
|
||||||
let has_focus = self.has_focus();
|
let has_focus = self.has_focus();
|
||||||
if self.input.raw.focused != 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);
|
self.input.set_focus(has_focus);
|
||||||
|
|
||||||
if !has_focus {
|
if !has_focus {
|
||||||
|
|||||||
@@ -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`.
|
// so we also poll the focus state each frame in `AppRunner::logic`.
|
||||||
for event_name in ["blur", "focus"] {
|
for event_name in ["blur", "focus"] {
|
||||||
let closure = move |_event: web_sys::MouseEvent, runner: &mut AppRunner| {
|
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();
|
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)?;
|
runner_ref.add_event_listener(target, event_name, closure)?;
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ impl TextAgent {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// log::debug!("Focusing text agent");
|
log::trace!("Focusing text agent");
|
||||||
|
|
||||||
if let Err(err) = self.input.focus() {
|
if let Err(err) = self.input.focus() {
|
||||||
log::error!("failed to set focus: {}", super::string_from_js_value(&err));
|
log::error!("failed to set focus: {}", super::string_from_js_value(&err));
|
||||||
@@ -160,7 +160,7 @@ impl TextAgent {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// log::debug!("Blurring text agent");
|
log::trace!("Blurring text agent");
|
||||||
|
|
||||||
if let Err(err) = self.input.blur() {
|
if let Err(err) = self.input.blur() {
|
||||||
log::error!("failed to set focus: {}", super::string_from_js_value(&err));
|
log::error!("failed to set focus: {}", super::string_from_js_value(&err));
|
||||||
|
|||||||
Reference in New Issue
Block a user