[PATCH weston] window: allow changing cursor theme and size
Kristian Høgsberg
krh at bitplanet.net
Mon May 14 11:39:39 PDT 2012
On Mon, May 14, 2012 at 9:59 AM, Kristian Høgsberg <hoegsberg at gmail.com> wrote:
> 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?
On second thought, can you just put this in
/usr/share/icons/default/index.theme:
[Icon Theme]
Inherits=whiteglass
and have that work?
Kristian
> 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