egui/crates/eframe/src
Timo von Hartz ab0f0b7b64
Rename `should_propagate_event` & add `should_prevent_default` (#5779)
* [x] I have followed the instructions in the PR template

Currently eframe [calls
`prevent_default()`](962c7c7516/crates/eframe/src/web/events.rs (L307-L369))
for all copy / paste events on the
[*document*](962c7c7516/crates/eframe/src/web/events.rs (L88)),
making embedding an egui application in a page (e.g. an react
application) hard (as all copy & paste functionality for other elements
on the page is broken by this).

I'm not sure what the motivation for this is, if any.

This commit / PR adds a callback (`should_prevent_default`), similar to
`should_propgate_event`, that an egui application can use to overwrite
this behavior. It defaults to returning `true` for all events, to keep
the existing behavior.

I call `should_prevent_default` in every place that
`should_propagate_event` is called (which is not all places that
`prevent_default` is called!). I'm not sure for the motivation of not
calling `should_propagate_event` everywhere that `stop_propagation` is
called, but I kept that behavior for the `should_prevent_default`
callback too.

Please let me know if I'm missing some existing functionality that would
allow me to do this, or if there's a reason that we don't want
applications to be able to customize this (i.e. if there's a reason to
always `prevent_default` for all copy / paste events on the whole
document)
2025-03-30 14:00:46 +02:00
..
native Enhance stability on Windows (#5723) 2025-03-21 14:32:37 +01:00
web Rename `should_propagate_event` & add `should_prevent_default` (#5779) 2025-03-30 14:00:46 +02:00
epi.rs Rename `should_propagate_event` & add `should_prevent_default` (#5779) 2025-03-30 14:00:46 +02:00
icon_data.rs Use `profiling` crate to support more profiler backends (#5150) 2024-12-16 09:15:54 +01:00
lib.rs Use `profiling` crate to support more profiler backends (#5150) 2024-12-16 09:15:54 +01:00
stopwatch.rs Add assert messages and print bad argument values in asserts (#5216) 2025-03-25 09:20:29 +01:00