Update cursor size.

SVN revision: 16462
This commit is contained in:
sebastid 2005-09-02 08:28:12 +00:00 committed by sebastid
parent 2291bf5d54
commit f5e90c9069
3 changed files with 34 additions and 2 deletions

View File

@ -4591,8 +4591,8 @@ break;
#elif (TYPE == E_WM_IN)
START_INT(val, HDL);
e_config->cursor_size = val;
/* TODO: Update cursor size on screen! */
E_CONFIG_LIMIT(e_config->cursor_size, 0, 1024);
e_pointers_size_set(e_config->cursor_size);
SAVE;
END_INT;
#elif (TYPE == E_REMOTE_IN)

View File

@ -34,7 +34,7 @@ e_pointer_window_set(Ecore_X_Window win)
evas_output_size_set(p->evas, p->w, p->h);
evas_output_viewport_set(p->evas, 0, 0, p->w, p->h);
p->pixels = calloc(p->w * p->h, sizeof(int));
p->pixels = malloc(p->w * p->h * sizeof(int));
einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(p->evas);
if (einfo)
@ -88,6 +88,37 @@ e_pointer_window_set(Ecore_X_Window win)
return p;
}
void
e_pointers_size_set(int size)
{
Evas_List *l;
for (l = _e_pointers; l; l = l->next)
{
E_Pointer *p;
Evas_Engine_Info_Buffer *einfo;
p = l->data;
p->w = p->h = size;
evas_output_size_set(p->evas, p->w, p->h);
evas_output_viewport_set(p->evas, 0, 0, p->w, p->h);
p->pixels = realloc(p->pixels, p->w * p->h * sizeof(int));
einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(p->evas);
if (einfo)
{
einfo->info.dest_buffer = p->pixels;
einfo->info.dest_buffer_row_bytes = p->w * sizeof(int);
evas_engine_info_set(p->evas, (Evas_Engine_Info *)einfo);
}
evas_object_move(p->pointer_object, 0, 0);
evas_object_resize(p->pointer_object, p->w, p->h);
}
}
void
e_pointer_idler_before(void)
{

View File

@ -28,6 +28,7 @@ struct _E_Pointer
};
EAPI E_Pointer *e_pointer_window_set(Ecore_X_Window win);
EAPI void e_pointers_size_set(int size);
EAPI void e_pointer_idler_before(void);
#endif