@@ -78,11 +78,13 @@ def __init__(
78
78
self ._backend .io .display_framebuffer_scale = (scale , scale )
79
79
80
80
canvas .add_event_handler (self ._on_resize , "resize" )
81
- canvas .add_event_handler (self ._on_mouse_move , "pointer_move" )
82
- canvas .add_event_handler (self ._on_mouse , "pointer_up" , "pointer_down" )
83
- canvas .add_event_handler (self ._on_key , "key_up" , "key_down" )
84
- canvas .add_event_handler (self ._on_wheel , "wheel" )
85
- canvas .add_event_handler (self ._on_char_input , "char" )
81
+ canvas .add_event_handler (self ._on_mouse_move , "pointer_move" , order = - 99 )
82
+ canvas .add_event_handler (
83
+ self ._on_mouse , "pointer_up" , "pointer_down" , order = - 99
84
+ )
85
+ canvas .add_event_handler (self ._on_key , "key_up" , "key_down" , order = - 99 )
86
+ canvas .add_event_handler (self ._on_wheel , "wheel" , order = - 99 )
87
+ canvas .add_event_handler (self ._on_char_input , "char" , order = - 99 )
86
88
87
89
self ._update_gui_function = None
88
90
@@ -152,11 +154,17 @@ def _on_resize(self, event):
152
154
def _on_mouse_move (self , event ):
153
155
self ._backend .io .add_mouse_pos_event (event ["x" ], event ["y" ])
154
156
157
+ if self ._backend .io .want_capture_mouse :
158
+ event ["stop_propagation" ] = True
159
+
155
160
def _on_mouse (self , event ):
156
161
event_type = event ["event_type" ]
157
162
down = event_type == "pointer_down"
158
163
self ._backend .io .add_mouse_button_event (event ["button" ] - 1 , down )
159
164
165
+ if self ._backend .io .want_capture_mouse :
166
+ event ["stop_propagation" ] = True
167
+
160
168
def _on_key (self , event ):
161
169
event_type = event ["event_type" ]
162
170
down = event_type == "key_down"
@@ -182,8 +190,17 @@ def _on_key(self, event):
182
190
key = self .KEY_MAP_MOD [key_name ]
183
191
self ._backend .io .add_key_event (key , down )
184
192
193
+ if self ._backend .io .want_capture_keyboard :
194
+ event ["stop_propagation" ] = True
195
+
185
196
def _on_wheel (self , event ):
186
197
self ._backend .io .add_mouse_wheel_event (event ["dx" ] / 100 , event ["dy" ] / 100 )
187
198
199
+ if self ._backend .io .want_capture_mouse :
200
+ event ["stop_propagation" ] = True
201
+
188
202
def _on_char_input (self , event ):
189
203
self ._backend .io .add_input_characters_utf8 (event ["char_str" ])
204
+
205
+ if self ._backend .io .want_text_input :
206
+ event ["stop_propagation" ] = True
0 commit comments