# requests

request set_cursor = 0 {
    serial: u32,
    surface: id(wl_surface),
    hotspot_x: i32,
    hotspot_y: i32,
}

request release = 1 {

}

# events

event enter = 0 {
    serial: u32,
    surface: id(wl_surface),
    surface_x: fixed,
    surface_y: fixed,
}

event leave = 1 {
    serial: u32,
    surface: id(wl_surface),
}

event motion = 2 {
    time: u32,
    surface_x: fixed,
    surface_y: fixed,
}

event button = 3 {
    serial: u32,
    time: u32,
    button: u32,
    state: u32,
}

event axis = 4 {
    time: u32,
    axis: u32,
    value: fixed,
}

event frame = 5 {

}

event axis_source = 6 {
    axis_source: u32,
}

event axis_stop = 7 {
    time: u32,
    axis: u32,
}

event axis_discrete = 8 {
    axis: u32,
    discrete: i32,
}

event axis_value120 = 9 {
    axis: u32,
    value120: i32,
}

event axis_relative_direction = 10 {
    axis: u32,
    direction: u32,
}
