diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-02-16 12:06:10 +0100 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-02-16 12:06:10 +0100 |
| commit | 92d2f666a7a992c39a1f48886385850f6b93fa30 (patch) | |
| tree | 19332dc8366c7bb6a750535e10eb5f8b9bb2df54 | |
| parent | 02adfc056026ac8a56622fe2c0f2261543a99758 (diff) | |
Wayland: beef up cursor-related documentation
| -rw-r--r-- | documentation/src/wayland.dox | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/documentation/src/wayland.dox b/documentation/src/wayland.dox index 8c872cb59..6d6292d2e 100644 --- a/documentation/src/wayland.dox +++ b/documentation/src/wayland.dox @@ -449,14 +449,23 @@ in function \c Fl_Wayland_Window_Driver::set_cursor(Fl_Cursor). FLTK uses function \c init_cursors() from file \c Fl_Wayland_Screen_Driver.cxx to identify the app's 'cursor theme' using function \c libdecor_get_cursor_settings() of library \c libdecor, and to store it in member variable \c cursor_theme of the \ref seat record. -Function \c init_cursors() is itself called by a 'listener' installed when function -\c registry_handle_global() receives a \c "wl_seat" interface, at program startup. -It is also called when the value of the Wayland scaling factor changes. +Function \c init_cursors() is itself called by a 'listener' called \c seat_capabilities() +installed when function \c registry_handle_global() receives a \c "wl_seat" interface, at program +startup. It is also called when the value of the Wayland scaling factor changes: +\c output_done() calls \c try_update_cursor() calls \c init_cursors(). + +Each time member function \c Fl_Window::cursor(Fl_Cursor) runs, FLTK calls +\c Fl_Wayland_Window_Driver::set_cursor(Fl_Cursor) which stores the desired cursor shape in +member \c standard_cursor_ of the \c Fl_Wayland_Window_Driver object. Function <tt>Fl_Wayland_Window_Driver::set_cursor(const Fl_RGB_Image *rgb, int hotx, int hoty)</tt> is used to create a custom cursor shape. This operation is relatively complex, specially because it uses a non-public structure, <tt>struct cursor_image</tt>, defined in file \c wayland-cursor.c -of the Wayland project source code. +of the Wayland project source code. A pointer to the resulting <tt>struct wl_cursor</tt> object +is stored in member \c custom_cursor of the window's \ref wld_window. Member function +\c Fl_Wayland_Window_Driver::delete_cursor_() is used to delete any custom cursor shape. This +occurs when a window associated to a custom cursor is un-mapped and when such a window gets +associated to a standard cursor or to a new custom cursor. \section wayland-text Text input |
