Move pointer to manager.

Update pointer when changing by ipc.


SVN revision: 17034
This commit is contained in:
sebastid 2005-09-28 13:30:49 +00:00 committed by sebastid
parent 426cb9c4be
commit 4b5f28eb16
8 changed files with 16 additions and 11 deletions

View File

@ -122,8 +122,6 @@ e_container_new(E_Manager *man)
evas_object_data_set(o, "e_container", con);
evas_object_show(o);
con->pointer.root = e_pointer_window_set(con->manager->root);
con->num = container_num;
container_num++;
snprintf(name, sizeof(name), _("Container %d"), con->num);
@ -949,8 +947,6 @@ _e_container_free(E_Container *con)
Evas_List *l, *tmp;
int i;
if (con->pointer.root) e_object_del(E_OBJECT(con->pointer.root));
ecore_x_window_del(con->event_win);
/* We can't use e_object_del here, because border adds a ref to itself
* when it is removed, and the ref is never unref'ed */

View File

@ -54,10 +54,6 @@ struct _E_Container
Ecore_X_Window win;
Evas_List *clients;
} layers[7];
struct {
E_Pointer *root;
} pointer;
};
struct _E_Border_List

View File

@ -62,7 +62,7 @@ e_init_init(void)
ecore_evas_name_class_set(_e_init_ecore_evas, "E", "Init_Window");
ecore_evas_title_set(_e_init_ecore_evas, "Enlightenment Init");
_e_init_pointer = e_pointer_window_set(_e_init_win);
_e_init_pointer = e_pointer_window_new(_e_init_win);
ecore_evas_raise(_e_init_ecore_evas);
ecore_evas_show(_e_init_ecore_evas);

View File

@ -4988,8 +4988,16 @@ break;
REQ_INT(atoi(params[0]), HDL);
#elif (TYPE == E_WM_IN)
START_INT(val, HDL);
Evas_List *ml;
e_config->use_e_cursor = val;
E_CONFIG_LIMIT(e_config->use_e_cursor, 0, 1);
for (ml = e_manager_list(); ml; ml = ml->next)
{
E_Manager *man;
man = ml->data;
if (man->pointer) e_object_del(E_OBJECT(man->pointer));
man->pointer = e_pointer_window_new(man->root);
}
SAVE;
END_INT;
#elif (TYPE == E_REMOTE_IN)

View File

@ -119,6 +119,8 @@ e_manager_new(Ecore_X_Window root, int num)
h = ecore_event_handler_add(ECORE_X_EVENT_PING, _e_manager_cb_ping, man);
if (h) man->handlers = evas_list_append(man->handlers, h);
man->pointer = e_pointer_window_new(man->root);
return man;
}
@ -444,6 +446,7 @@ _e_manager_free(E_Manager *man)
{
ecore_x_window_del(man->win);
}
if (man->pointer) e_object_del(E_OBJECT(man->pointer));
managers = evas_list_remove(managers, man);
free(man);
}

View File

@ -22,6 +22,8 @@ struct _E_Manager
Ecore_X_Window root;
Evas_List *handlers;
Evas_List *containers;
E_Pointer *pointer;
};
EAPI int e_manager_init(void);

View File

@ -10,7 +10,7 @@ static void _e_pointer_free(E_Pointer *p);
/* externally accessible functions */
E_Pointer *
e_pointer_window_set(Ecore_X_Window win)
e_pointer_window_new(Ecore_X_Window win)
{
Evas_Engine_Info_Buffer *einfo;
E_Pointer *p = NULL;

View File

@ -27,7 +27,7 @@ struct _E_Pointer
} hot;
};
EAPI E_Pointer *e_pointer_window_set(Ecore_X_Window win);
EAPI E_Pointer *e_pointer_window_new(Ecore_X_Window win);
EAPI void e_pointers_size_set(int size);
EAPI void e_pointer_idler_before(void);