io/pointer: [API] make cursor name into a byte

Add most of the common cursors defined by different systems.

Normalize cursor names to match CSS.

This is API change: some cursor names have changed, and the
underlying type is no longer a string.

Signed-off-by: Egon Elbre <egonelbre@gmail.com>
This commit is contained in:
Egon Elbre
2022-02-25 16:08:09 +02:00
committed by Elias Naur
parent a401d7aaff
commit 4172566aad
14 changed files with 356 additions and 197 deletions
+3 -35
View File
@@ -1095,41 +1095,9 @@ func (w *window) SetCursor(name pointer.CursorName) {
C.wl_pointer_set_cursor(ptr, w.serial, nil, 0, 0)
return
}
switch name {
default:
fallthrough
case pointer.CursorDefault:
name = "left_ptr"
case pointer.CursorText:
name = "xterm"
case pointer.CursorPointer:
name = "hand1"
case pointer.CursorCrossHair:
name = "crosshair"
case pointer.CursorRowResize:
name = "top_side"
case pointer.CursorColResize:
name = "left_side"
case pointer.CursorGrab:
name = "hand1"
case pointer.CursorTopLeftResize:
name = "top_left_corner"
case pointer.CursorTopRightResize:
name = "top_right_corner"
case pointer.CursorBottomLeftResize:
name = "bottom_left_corner"
case pointer.CursorBottomRightResize:
name = "bottom_right_corner"
case pointer.CursorLeftResize:
name = "right_side"
case pointer.CursorRightResize:
name = "left_side"
case pointer.CursorTopResize:
name = "top_side"
case pointer.CursorBottomResize:
name = "bottom_side"
}
cname := C.CString(string(name))
xcursor := xCursor[name]
cname := C.CString(xcursor)
defer C.free(unsafe.Pointer(cname))
c := C.wl_cursor_theme_get_cursor(w.cursor.theme, cname)
if c == nil {