On Web, add Window::(set_)prevent_default() (#3307)

This commit is contained in:
daxpedda 2023-12-25 09:37:35 +01:00 committed by GitHub
parent 28a811bbba
commit 843d7904d6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 84 additions and 60 deletions

View file

@ -1,3 +1,6 @@
use std::cell::Cell;
use std::rc::Rc;
use super::canvas::Common;
use super::event;
use super::event_handle::EventListenerHandle;
@ -110,7 +113,7 @@ impl PointerHandler {
mut modifier_handler: MOD,
mut mouse_handler: M,
mut touch_handler: T,
prevent_default: bool,
prevent_default: Rc<Cell<bool>>,
) where
MOD: 'static + FnMut(ModifiersState),
M: 'static + FnMut(ModifiersState, i32, PhysicalPosition<f64>, MouseButton),
@ -121,7 +124,7 @@ impl PointerHandler {
self.on_pointer_press = Some(canvas_common.add_event(
"pointerdown",
move |event: PointerEvent| {
if prevent_default {
if prevent_default.get() {
// prevent text selection
event.prevent_default();
// but still focus element
@ -165,7 +168,7 @@ impl PointerHandler {
mut mouse_handler: M,
mut touch_handler: T,
mut button_handler: B,
prevent_default: bool,
prevent_default: Rc<Cell<bool>>,
) where
MOD: 'static + FnMut(ModifiersState),
M: 'static + FnMut(ModifiersState, i32, &mut dyn Iterator<Item = PhysicalPosition<f64>>),
@ -197,7 +200,7 @@ impl PointerHandler {
"expect pointer type of a chorded button event to be a mouse"
);
if prevent_default {
if prevent_default.get() {
// prevent text selection
event.prevent_default();
// but still focus element