@@ -111,6 +111,14 @@ pub fn init_winit(
111111 state. backend_data = BackendData :: Winit ( Box :: new ( WinitData { backend, output, damage_tracker, hdr_tonemap_shader } ) ) ;
112112 state. seat . add_keyboard ( smithay:: input:: keyboard:: XkbConfig :: default ( ) , 400 , 30 ) . expect ( "keyboard" ) ;
113113 let _ = state. seat . add_pointer ( ) ;
114+ // Touch capability — was entirely absent (every InputEvent::Touch*
115+ // variant fell into handle_input's wildcard `_ => {}` and was
116+ // silently dropped). `add_touch()` is smithay's own seat-capability
117+ // call, same shape as add_keyboard/add_pointer right above — it's
118+ // what makes the wl_seat global actually advertise the `touch`
119+ // capability to clients and gives `seat.get_touch()` (used in
120+ // input/mod.rs's new touch handlers) something to return.
121+ let _ = state. seat . add_touch ( ) ;
114122
115123 loop_handle. insert_source ( events, |event, _, state| {
116124 match event {
@@ -276,6 +284,7 @@ pub fn init_udev(
276284
277285 state. seat . add_keyboard ( smithay:: input:: keyboard:: XkbConfig :: default ( ) , 400 , 30 ) . expect ( "kb" ) ;
278286 let _ = state. seat . add_pointer ( ) ;
287+ let _ = state. seat . add_touch ( ) ;
279288
280289 loop_handle. insert_source ( udev_backend, |event, _, state| {
281290 match event {
0 commit comments