Enlightenment CVS committal Author : handyande Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_border.c e_border.h Log Message: Hook in a few callbacks, putting them in slowly but surely - just testing the water this time =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.52 retrieving revision 1.53 diff -u -3 -r1.52 -r1.53 --- e_border.c 10 Jan 2005 20:54:20 -0000 1.52 +++ e_border.c 10 Jan 2005 22:24:23 -0000 1.53 @@ -70,11 +70,17 @@ static void _e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_stick(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_border_event_border_resize_free(void *data, void *ev); +static void _e_border_event_border_move_free(void *data, void *ev); + /* local subsystem globals */ static Evas_List *handlers = NULL; static Evas_List *borders = NULL; static E_Border *focused = NULL; +int E_EVENT_BORDER_RESIZE = 0; +int E_EVENT_BORDER_MOVE = 0; + #define GRAV_SET(bd, grav) \ printf("GRAV TO %i\n", grav); \ ecore_x_window_gravity_set(bd->bg_win, grav); \ @@ -102,6 +108,10 @@ handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, _e_border_cb_window_focus_out, NULL)); handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, _e_border_cb_client_message, NULL)); ecore_x_passive_grab_replay_func_set(_e_border_cb_grab_replay, NULL); + + E_EVENT_BORDER_RESIZE = ecore_event_type_new(); + E_EVENT_BORDER_MOVE = ecore_event_type_new(); + return 1; } @@ -1594,6 +1604,7 @@ bd->mouse.current.my = ev->root.y; if (bd->moving) { + E_Event_Border_Move *pass; int x, y, new_x, new_y; Evas_List *skiplist = NULL; @@ -1620,10 +1631,20 @@ &new_x, &new_y); evas_list_free(skiplist); e_border_move(bd, new_x, new_y); + + pass = calloc(1, sizeof(E_Event_Border_Move)); + pass->border = bd; + e_object_ref(E_OBJECT(bd)); + ecore_event_add(E_EVENT_BORDER_MOVE, pass, _e_border_event_border_move_free, NULL); } else if (bd->resize_mode != RESIZE_NONE) { + E_Event_Border_Resize *pass; _e_border_resize_handle(bd); + pass = calloc(1, sizeof(E_Event_Border_Resize)); + pass->border = bd; + e_object_ref(E_OBJECT(bd)); + ecore_event_add(E_EVENT_BORDER_RESIZE, pass, _e_border_event_border_resize_free, NULL); } else { @@ -2629,3 +2650,24 @@ if (bd->sticky) e_border_unstick(bd); else e_border_stick(bd); } + +static void +_e_border_event_border_resize_free(void *data, void *ev) +{ + E_Event_Border_Resize *e; + + e = ev; + e_object_unref(E_OBJECT(e->border)); + free(e); +} + +static void +_e_border_event_border_move_free(void *data, void *ev) +{ + E_Event_Border_Resize *e; + + e = ev; + e_object_unref(E_OBJECT(e->border)); + free(e); +} + =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- e_border.h 8 Jan 2005 07:10:13 -0000 1.16 +++ e_border.h 10 Jan 2005 22:24:23 -0000 1.17 @@ -21,6 +21,9 @@ }; typedef enum _E_Transition E_Transition; +typedef struct _E_Event_Border_Resize E_Event_Border_Resize; +typedef struct _E_Event_Border_Move E_Event_Border_Move; + struct _E_Border { E_Object e_obj_inherit; @@ -183,6 +186,16 @@ } changes; }; +struct _E_Event_Border_Resize +{ + E_Border *border; +}; + +struct _E_Event_Border_Move +{ + E_Border *border; +}; + EAPI int e_border_init(void); EAPI int e_border_shutdown(void); @@ -216,4 +229,7 @@ EAPI void e_border_iconified_list(void); +extern EAPI int E_EVENT_BORDER_RESIZE; +extern EAPI int E_EVENT_BORDER_MOVE; + #endif ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs