• Martin Flöser's avatar
    [wayland] Set internal cursor through WaylandCursorTheme in AbstractBackend · 2b185fa7
    Martin Flöser authored
    Getting the cursor image from the cursor theme is unfortunately not
    straight forward. We have three different libraries and all have
    drawbacks:
    * XCursor - we just kicked it out
    * xcb-util/cursor - only provides xcb_cursor_t, so a dependency on X
    * wayland-cursor - only a client side API
    
    The picked solution is using wayland-cursor. It provides the cursor in a
    wl_buffer. Unfortunately the client side API does not easily allow to
    a) read it back
    b) init without a wl_shm_pool
    
    Thus we need to work this around:
    * create an internal connection
    * get a ShmPool on it
    * init WaylandCursorTheme with this ShmPool
    * get the cursor wl_buffer from the theme
    * trigger a roundtrip
    * get the corresponding BufferInterface for the buffer
    * set the content as the software cursor
    2b185fa7
wayland_server.cpp 4.83 KB