[PATCH weston] window: allow changing cursor theme and size
Kristian Høgsberg
hoegsberg at gmail.com
Mon May 14 06:59:33 PDT 2012
On Mon, May 14, 2012 at 02:01:50PM +0300, Pekka Paalanen wrote:
> Toytoolkit clients will now use two new environment variables:
>
> TOYTOOLKIT_CURSOR_THEME=theme
> TOYTOOLKTI_CURSOR_SIZE=size
>
> where 'theme' can be e.g. whiteglass if you have the basic X.Org cursor
> themes installed. 'size' is a cursor size hint 4-64, by default 32.
Should we make it a weston.ini option instead?
Kristian
> See the Xcursor man page for how cursors are found for a theme.
>
> Signed-off-by: Pekka Paalanen <ppaalanen at gmail.com>
> ---
> clients/window.c | 23 ++++++++++++++++++++---
> 1 files changed, 20 insertions(+), 3 deletions(-)
>
> diff --git a/clients/window.c b/clients/window.c
> index e14edb0..63e57f7 100644
> --- a/clients/window.c
> +++ b/clients/window.c
> @@ -702,16 +702,33 @@ create_cursors(struct display *display)
> size_t pool_size = 0;
> struct cursor *cursor;
> XcursorImages **images;
> + const char *theme;
> + const char *tmpstr;
> + int cursor_size = 32;
> +
> + theme = getenv("TOYTOOLKIT_CURSOR_THEME");
> +
> + tmpstr = getenv("TOYTOOLKIT_CURSOR_SIZE");
> + if (tmpstr) {
> + char *end;
> + long size;
> +
> + size = strtol(tmpstr, &end, 0);
> + if (end != tmpstr && *end == 0 && size > 3 && size < 65)
> + cursor_size = size;
> + }
>
> count = ARRAY_LENGTH(cursors);
> display->cursors = malloc(count * sizeof *display->cursors);
> images = malloc(count * sizeof images[0]);
>
> for (i = 0; i < count; i++) {
> - images[i] = XcursorLibraryLoadImages(cursors[i], NULL, 32);
> + images[i] = XcursorLibraryLoadImages(cursors[i], theme,
> + cursor_size);
> if (!images[i]) {
> - fprintf(stderr, "Error loading cursor: %s\n",
> - cursors[i]);
> + fprintf(stderr, "Error loading cursor '%s' "
> + "from theme '%s'\n", cursors[i],
> + theme ? theme : "default");
> continue;
> }
> pool_size += data_length_for_cursor_images(images[i]);
> --
> 1.7.3.4
>
More information about the wayland-devel
mailing list