@ -56,7 +56,7 @@ static void x11_handle_pointer_position(struct wlr_x11_output *output,
x11 - > time = time ;
x11 - > time = time ;
}
}
bool x11_handle_input_event ( struct wlr_x11_backend * x11 ,
void x11_handle_input_event ( struct wlr_x11_backend * x11 ,
xcb_generic_event_t * event ) {
xcb_generic_event_t * event ) {
switch ( event - > response_type & XCB_EVENT_RESPONSE_TYPE_MASK ) {
switch ( event - > response_type & XCB_EVENT_RESPONSE_TYPE_MASK ) {
case XCB_KEY_PRESS :
case XCB_KEY_PRESS :
@ -73,7 +73,7 @@ bool x11_handle_input_event(struct wlr_x11_backend *x11,
// TODO use xcb-xkb for more precise modifiers state?
// TODO use xcb-xkb for more precise modifiers state?
wlr_keyboard_notify_key ( & x11 - > keyboard , & key ) ;
wlr_keyboard_notify_key ( & x11 - > keyboard , & key ) ;
x11 - > time = ev - > time ;
x11 - > time = ev - > time ;
return true ;
return ;
}
}
case XCB_BUTTON_PRESS : {
case XCB_BUTTON_PRESS : {
xcb_button_press_event_t * ev = ( xcb_button_press_event_t * ) event ;
xcb_button_press_event_t * ev = ( xcb_button_press_event_t * ) event ;
@ -110,19 +110,17 @@ bool x11_handle_input_event(struct wlr_x11_backend *x11,
wlr_signal_emit_safe ( & x11 - > pointer . events . button , & button ) ;
wlr_signal_emit_safe ( & x11 - > pointer . events . button , & button ) ;
}
}
x11 - > time = ev - > time ;
x11 - > time = ev - > time ;
return true ;
return ;
}
}
case XCB_MOTION_NOTIFY : {
case XCB_MOTION_NOTIFY : {
xcb_motion_notify_event_t * ev = ( xcb_motion_notify_event_t * ) event ;
xcb_motion_notify_event_t * ev = ( xcb_motion_notify_event_t * ) event ;
struct wlr_x11_output * output =
struct wlr_x11_output * output =
x11_output_from_window_id ( x11 , ev - > event ) ;
x11_output_from_window_id ( x11 , ev - > event ) ;
if ( output = = NULL ) {
if ( output ! = NULL ) {
return false ;
x11_handle_pointer_position ( output , ev - > event_x , ev - > event_y , ev - > time ) ;
}
}
return ;
x11_handle_pointer_position ( output , ev - > event_x , ev - > event_y , ev - > time ) ;
return true ;
}
}
default :
default :
# ifdef WLR_HAS_XCB_XKB
# ifdef WLR_HAS_XCB_XKB
@ -131,13 +129,11 @@ bool x11_handle_input_event(struct wlr_x11_backend *x11,
( xcb_xkb_state_notify_event_t * ) event ;
( xcb_xkb_state_notify_event_t * ) event ;
wlr_keyboard_notify_modifiers ( & x11 - > keyboard , ev - > baseMods ,
wlr_keyboard_notify_modifiers ( & x11 - > keyboard , ev - > baseMods ,
ev - > latchedMods , ev - > lockedMods , ev - > lockedGroup ) ;
ev - > latchedMods , ev - > lockedMods , ev - > lockedGroup ) ;
return true ;
return ;
}
}
# endif
# endif
break ;
break ;
}
}
return false ;
}
}
const struct wlr_input_device_impl input_device_impl = { 0 } ;
const struct wlr_input_device_impl input_device_impl = { 0 } ;