File tree Expand file tree Collapse file tree 5 files changed +42
-0
lines changed Expand file tree Collapse file tree 5 files changed +42
-0
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ " tauri-runtime-wry " : minor:feat
3
+ " tauri-runtime " : minor:feat
4
+ " tauri " : minor:feat
5
+ ---
6
+
7
+ Implement ` App::set_device_event_filter ` for ` AppHandle ` also.
Original file line number Diff line number Diff line change @@ -1434,6 +1434,7 @@ pub enum WebviewMessage {
1434
1434
pub enum EventLoopWindowTargetMessage {
1435
1435
CursorPosition ( Sender < Result < PhysicalPosition < f64 > > > ) ,
1436
1436
SetTheme ( Option < Theme > ) ,
1437
+ SetDeviceEventFilter ( DeviceEventFilter ) ,
1437
1438
}
1438
1439
1439
1440
pub type CreateWindowClosure < T > =
@@ -2641,6 +2642,13 @@ impl<T: UserEvent> RuntimeHandle<T> for WryHandle<T> {
2641
2642
)
2642
2643
}
2643
2644
2645
+ fn set_device_event_filter ( & self , filter : DeviceEventFilter ) {
2646
+ let _ = send_user_message (
2647
+ & self . context ,
2648
+ Message :: EventLoopWindowTarget ( EventLoopWindowTargetMessage :: SetDeviceEventFilter ( filter) ) ,
2649
+ ) ;
2650
+ }
2651
+
2644
2652
#[ cfg( target_os = "android" ) ]
2645
2653
fn find_class < ' a > (
2646
2654
& self ,
@@ -3901,6 +3909,9 @@ fn handle_user_message<T: UserEvent>(
3901
3909
EventLoopWindowTargetMessage :: SetTheme ( theme) => {
3902
3910
event_loop. set_theme ( to_tao_theme ( theme) ) ;
3903
3911
}
3912
+ EventLoopWindowTargetMessage :: SetDeviceEventFilter ( filter) => {
3913
+ event_loop. set_device_event_filter ( DeviceEventFilterWrapper :: from ( filter) . 0 ) ;
3914
+ }
3904
3915
} ,
3905
3916
}
3906
3917
}
Original file line number Diff line number Diff line change @@ -329,6 +329,15 @@ pub trait RuntimeHandle<T: UserEvent>: Debug + Clone + Send + Sync + Sized + 'st
329
329
#[ cfg_attr( docsrs, doc( cfg( target_os = "macos" ) ) ) ]
330
330
fn hide ( & self ) -> Result < ( ) > ;
331
331
332
+ /// Change the device event filter mode.
333
+ ///
334
+ /// See [Runtime::set_device_event_filter] for details.
335
+ ///
336
+ /// ## Platform-specific
337
+ ///
338
+ /// See [Runtime::set_device_event_filter] for details.
339
+ fn set_device_event_filter ( & self , filter : DeviceEventFilter ) ;
340
+
332
341
/// Finds an Android class in the project scope.
333
342
#[ cfg( target_os = "android" ) ]
334
343
fn find_class < ' a > (
Original file line number Diff line number Diff line change @@ -623,6 +623,17 @@ impl<R: Runtime> AppHandle<R> {
623
623
. set_dock_visibility ( visible)
624
624
. map_err ( Into :: into)
625
625
}
626
+
627
+ /// Change the device event filter mode.
628
+ ///
629
+ /// See [App::set_device_event_filter] for details.
630
+ ///
631
+ /// ## Platform-specific
632
+ ///
633
+ /// See [App::set_device_event_filter] for details.
634
+ pub fn set_device_event_filter ( & self , filter : DeviceEventFilter ) {
635
+ self . runtime_handle . set_device_event_filter ( filter) ;
636
+ }
626
637
}
627
638
628
639
impl < R : Runtime > Manager < R > for AppHandle < R > {
Original file line number Diff line number Diff line change @@ -270,6 +270,10 @@ impl<T: UserEvent> RuntimeHandle<T> for MockRuntimeHandle {
270
270
Ok ( ( ) )
271
271
}
272
272
273
+ fn set_device_event_filter ( & self , _: DeviceEventFilter ) {
274
+ // no-op
275
+ }
276
+
273
277
#[ cfg( target_os = "android" ) ]
274
278
fn find_class < ' a > (
275
279
& self ,
You can’t perform that action at this time.
0 commit comments