From 4b5f28eb1616f23b59effa7ecb191ed70b276085 Mon Sep 17 00:00:00 2001 From: sebastid Date: Wed, 28 Sep 2005 13:30:49 +0000 Subject: [PATCH] Move pointer to manager. Update pointer when changing by ipc. SVN revision: 17034 --- src/bin/e_container.c | 4 ---- src/bin/e_container.h | 4 ---- src/bin/e_init.c | 2 +- src/bin/e_ipc_handlers.h | 8 ++++++++ src/bin/e_manager.c | 3 +++ src/bin/e_manager.h | 2 ++ src/bin/e_pointer.c | 2 +- src/bin/e_pointer.h | 2 +- 8 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/bin/e_container.c b/src/bin/e_container.c index 9ef689a9b..532ac8d7b 100644 --- a/src/bin/e_container.c +++ b/src/bin/e_container.c @@ -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 */ diff --git a/src/bin/e_container.h b/src/bin/e_container.h index 4962fafd1..8ab94959f 100644 --- a/src/bin/e_container.h +++ b/src/bin/e_container.h @@ -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 diff --git a/src/bin/e_init.c b/src/bin/e_init.c index 58119a9ca..9745db93a 100644 --- a/src/bin/e_init.c +++ b/src/bin/e_init.c @@ -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); diff --git a/src/bin/e_ipc_handlers.h b/src/bin/e_ipc_handlers.h index 028de53f7..f7e812801 100644 --- a/src/bin/e_ipc_handlers.h +++ b/src/bin/e_ipc_handlers.h @@ -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) diff --git a/src/bin/e_manager.c b/src/bin/e_manager.c index 58169153d..9db06f71d 100644 --- a/src/bin/e_manager.c +++ b/src/bin/e_manager.c @@ -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); } diff --git a/src/bin/e_manager.h b/src/bin/e_manager.h index e5930f42d..8d8f31231 100644 --- a/src/bin/e_manager.h +++ b/src/bin/e_manager.h @@ -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); diff --git a/src/bin/e_pointer.c b/src/bin/e_pointer.c index f13d96875..400a41b6a 100644 --- a/src/bin/e_pointer.c +++ b/src/bin/e_pointer.c @@ -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; diff --git a/src/bin/e_pointer.h b/src/bin/e_pointer.h index 24075bb2a..6ae23a0d3 100644 --- a/src/bin/e_pointer.h +++ b/src/bin/e_pointer.h @@ -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);