# 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 {

}

event axis_source {
    axis_source: u32,
}

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

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

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

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