# requests request set_cursor { serial: u32, surface: id(wl_surface), hotspot_x: i32, hotspot_y: i32, } request release (since = 3) { } # events event enter { serial: u32, surface: id(wl_surface), surface_x: fixed, surface_y: fixed, } event leave { serial: u32, surface: id(wl_surface), } event motion { time: u32, surface_x: fixed, surface_y: fixed, } event button { serial: u32, time: u32, button: u32, state: u32, } event axis { time: u32, axis: u32, value: fixed, } event frame (since = 5) { } event axis_source (since = 5) { axis_source: u32, } event axis_stop (since = 5) { time: u32, axis: u32, } event axis_discrete (since = 5) { axis: u32, discrete: i32, } event axis_value120 (since = 8) { axis: u32, value120: i32, } event axis_relative_direction (since = 9) { axis: u32, direction: u32, }