@@ -67,7 +67,7 @@ let keyboard_setup (window : Window.window) =
67
67
()
68
68
69
69
let touch_setup (window : Window.window ) =
70
- let target = Brr.Window. as_target Brr.G. window in
70
+ let target = Brr.G. document |> Brr.Document. body |> Brr.El. as_target in
71
71
let start = ref None in
72
72
let coord_of_event ev =
73
73
let mouse = Brr.Ev. as_type ev |> Brr.Ev.Pointer. as_mouse in
@@ -83,9 +83,13 @@ let touch_setup (window : Window.window) =
83
83
else ()
84
84
in
85
85
let touchstart (ev : Brr.Ev.Pointer.t Brr.Ev.t ) =
86
+ Brr.Ev. prevent_default ev;
87
+ Brr.Ev. stop_immediate_propagation ev;
88
+ Brr.Ev. stop_propagation ev;
86
89
check_condition ev @@ fun () -> start := Some (coord_of_event ev)
87
90
in
88
- let _listener = Brr.Ev. listen Brr.Ev. pointerdown touchstart target in
91
+ let opts = Brr.Ev. listen_opts ~passive: false () in
92
+ let _listener = Brr.Ev. listen ~opts Brr.Ev. pointerdown touchstart target in
89
93
let take_decision start (end_x , end_y ) =
90
94
match start with
91
95
| None -> `None
@@ -98,10 +102,13 @@ let touch_setup (window : Window.window) =
98
102
if abs_x > abs_y then (mov_x, abs_x, win_x) else (mov_y, abs_y, win_y)
99
103
in
100
104
if abs /. win < 0.1 then `None
101
- else if mov < = 0. then `Backward
102
- else `Forward
105
+ else if mov < = 0. then `Forward
106
+ else `Backward
103
107
in
104
108
let touchend (ev : Brr.Ev.Pointer.t Brr.Ev.t ) =
109
+ Brr.Ev. prevent_default ev;
110
+ Brr.Ev. stop_immediate_propagation ev;
111
+ Brr.Ev. stop_propagation ev;
105
112
check_condition ev @@ fun () ->
106
113
let end_ = coord_of_event ev in
107
114
let () =
@@ -116,7 +123,7 @@ let touch_setup (window : Window.window) =
116
123
in
117
124
start := None
118
125
in
119
- let _listener = Brr.Ev. listen Brr.Ev. pointerup touchend target in
126
+ let _listener = Brr.Ev. listen ~opts Brr.Ev. pointerup touchend target in
120
127
121
128
()
122
129
0 commit comments