Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore_x Modified Files: Tag: SPLIT Ecore_X.h ecore_x.c ecore_x_events.c Log Message: cleanup warnings simplify event freeing for x module (less code, less worries) optimise some of the event loop to only loop thru handlers, idlers, etc. for deletion if the delete flag is set. not sure i can optimise this much more, and even so i'm not sure anyone would ever notice if i could... =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_x/Attic/Ecore_X.h,v retrieving revision 1.1.2.6 retrieving revision 1.1.2.7 diff -u -3 -r1.1.2.6 -r1.1.2.7 --- Ecore_X.h 23 Jan 2003 11:12:18 -0000 1.1.2.6 +++ Ecore_X.h 23 Jan 2003 23:03:24 -0000 1.1.2.7 @@ -138,6 +138,8 @@ struct _Ecore_X_Event_Window_Focus_In { Window win; + + Time time; }; struct _Ecore_X_Event_Window_Focus_Out @@ -284,6 +286,8 @@ int ecore_x_init(const char *name); Display *ecore_x_display_get(void); +void ecore_x_double_click_time_set(double t); +double ecore_x_double_click_time_get(void); void ecore_x_error_handler_set(void (*func) (void *data), const void *data); int ecore_x_error_request_get(void); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_x/Attic/ecore_x.c,v retrieving revision 1.1.2.5 retrieving revision 1.1.2.6 diff -u -3 -r1.1.2.5 -r1.1.2.6 --- ecore_x.c 23 Jan 2003 11:12:18 -0000 1.1.2.5 +++ ecore_x.c 23 Jan 2003 23:03:24 -0000 1.1.2.6 @@ -200,6 +200,33 @@ return _ecore_x_disp; } +/** + * Set the timeout for double/triple click to be flagged + * @param t The time in seconds + * + * This sets the time between clicks before the double_click flag is set in a + * button down event. If 3 clicks occur within double this time then the + * triple_click flag is also set. + */ +void +ecore_x_double_click_time_set(double t) +{ + if (t < 0.0) t = 0.0; + _ecore_x_double_click_time = t; +} + +/** + * Get the double/triple click timeout + * @return The timeout for double clicks in seconds + * + * This returns the tiemout that can be set by ecore_x_double_click_time_set() + */ +double +ecore_x_double_click_time_get(void) +{ + return _ecore_x_double_click_time; +} + static int _ecore_x_fd_handler(Ecore_Fd_Handler *fd_handler, void *data) { =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_x/Attic/ecore_x_events.c,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -3 -r1.1.2.3 -r1.1.2.4 --- ecore_x_events.c 23 Jan 2003 11:12:18 -0000 1.1.2.3 +++ ecore_x_events.c 23 Jan 2003 23:03:24 -0000 1.1.2.4 @@ -2,16 +2,12 @@ #include "ecore_x_private.h" #include "Ecore_X.h" -static void _ecore_x_event_handle_key_press_free(void *ev, void *data); -static void _ecore_x_event_handle_key_release_free(void *ev, void *data); -static void _ecore_x_event_handle_button_press_free(void *ev, void *data); -static void _ecore_x_event_handle_button_release_free(void *ev, void *data); -static void _ecore_x_event_handle_motion_notify_free(void *ev, void *data); -static void _ecore_x_event_handle_enter_notify_free(void *ev, void *data); -static void _ecore_x_event_handle_leave_notify_free(void *ev, void *data); +static void _ecore_x_event_free_key_down(void *ev, void *data); +static void _ecore_x_event_free_key_up(void *ev, void *data); +static void _ecore_x_event_free_generic(void *ev, void *data); static void -_ecore_x_event_handle_key_press_free(void *ev, void *data) +_ecore_x_event_free_key_down(void *ev, void *data) { Ecore_X_Event_Key_Down *e; @@ -21,6 +17,23 @@ free(e); } +static void +_ecore_x_event_free_key_up(void *ev, void *data) +{ + Ecore_X_Event_Key_Up *e; + + e = ev; + if (e->keyname) free(e->keyname); + if (e->key_compose) free(e->key_compose); + free(e); +} + +static void +_ecore_x_event_free_generic(void *ev, void *data) +{ + free(ev); +} + void _ecore_x_event_handle_key_press(XEvent *xevent) { @@ -53,19 +66,7 @@ e->subwin = xevent->xkey.subwindow; e->time = xevent->xkey.time; e->modifiers = xevent->xkey.state; - ecore_event_add(ECORE_EVENT_X_KEY_DOWN, e, - _ecore_x_event_handle_key_press_free, NULL); -} - -static void -_ecore_x_event_handle_key_release_free(void *ev, void *data) -{ - Ecore_X_Event_Key_Up *e; - - e = ev; - if (e->keyname) free(e->keyname); - if (e->key_compose) free(e->key_compose); - free(e); + ecore_event_add(ECORE_EVENT_X_KEY_DOWN, e, _ecore_x_event_free_key_down, NULL); } void @@ -100,17 +101,7 @@ e->subwin = xevent->xkey.subwindow; e->time = xevent->xkey.time; e->modifiers = xevent->xkey.state; - ecore_event_add(ECORE_EVENT_X_KEY_UP, e, - _ecore_x_event_handle_key_release_free, NULL); -} - -static void -_ecore_x_event_handle_button_press_free(void *ev, void *data) -{ - Ecore_X_Event_Mouse_Button_Down *e; - - e = ev; - free(e); + ecore_event_add(ECORE_EVENT_X_KEY_UP, e, _ecore_x_event_free_key_up, NULL); } void @@ -137,8 +128,7 @@ e->win = xevent->xbutton.window; e->subwin = xevent->xbutton.subwindow; e->time = xevent->xbutton.time; - ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e, - _ecore_x_event_handle_motion_notify_free, NULL); + ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e, _ecore_x_event_free_generic, +NULL); } { Ecore_X_Event_Mouse_Button_Down *e; @@ -161,8 +151,7 @@ did_triple = 1; e->triple_click = 1; } - ecore_event_add(ECORE_EVENT_X_MOUSE_BUTTON_DOWN, e, - _ecore_x_event_handle_button_press_free, NULL); + ecore_event_add(ECORE_EVENT_X_MOUSE_BUTTON_DOWN, e, +_ecore_x_event_free_generic, NULL); } if (did_triple) { @@ -177,15 +166,6 @@ } } -static void -_ecore_x_event_handle_button_release_free(void *ev, void *data) -{ - Ecore_X_Event_Mouse_Button_Up *e; - - e = ev; - free(e); -} - void _ecore_x_event_handle_button_release(XEvent *xevent) { @@ -203,8 +183,7 @@ e->win = xevent->xbutton.window; e->subwin = xevent->xbutton.subwindow; e->time = xevent->xbutton.time; - ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e, - _ecore_x_event_handle_motion_notify_free, NULL); + ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e, _ecore_x_event_free_generic, +NULL); } { Ecore_X_Event_Mouse_Button_Up *e; @@ -218,21 +197,11 @@ e->win = xevent->xbutton.window; e->subwin = xevent->xbutton.subwindow; e->time = xevent->xbutton.time; - ecore_event_add(ECORE_EVENT_X_MOUSE_BUTTON_UP, e, - _ecore_x_event_handle_button_release_free, NULL); + ecore_event_add(ECORE_EVENT_X_MOUSE_BUTTON_UP, e, +_ecore_x_event_free_generic, NULL); } } } -static void -_ecore_x_event_handle_motion_notify_free(void *ev, void *data) -{ - Ecore_X_Event_Mouse_Move *e; - - e = ev; - free(e); -} - void _ecore_x_event_handle_motion_notify(XEvent *xevent) { @@ -246,17 +215,7 @@ e->win = xevent->xmotion.window; e->subwin = xevent->xmotion.subwindow; e->time = xevent->xmotion.time; - ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e, - _ecore_x_event_handle_motion_notify_free, NULL); -} - -static void -_ecore_x_event_handle_enter_notify_free(void *ev, void *data) -{ - Ecore_X_Event_Mouse_In *e; - - e = ev; - free(e); + ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e, _ecore_x_event_free_generic, NULL); } void @@ -273,8 +232,7 @@ e->win = xevent->xcrossing.window; e->subwin = xevent->xcrossing.subwindow; e->time = xevent->xcrossing.time; - ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e, - _ecore_x_event_handle_motion_notify_free, NULL); + ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e, _ecore_x_event_free_generic, +NULL); } { Ecore_X_Event_Mouse_In *e; @@ -310,20 +268,10 @@ e->notify.non_linear = 1; } e->time = xevent->xcrossing.time; - ecore_event_add(ECORE_EVENT_X_MOUSE_IN, e, - _ecore_x_event_handle_enter_notify_free, NULL); + ecore_event_add(ECORE_EVENT_X_MOUSE_IN, e, _ecore_x_event_free_generic, NULL); } } -static void -_ecore_x_event_handle_leave_notify_free(void *ev, void *data) -{ - Ecore_X_Event_Mouse_Out *e; - - e = ev; - free(e); -} - void _ecore_x_event_handle_leave_notify(XEvent *xevent) { @@ -338,8 +286,7 @@ e->win = xevent->xcrossing.window; e->subwin = xevent->xcrossing.subwindow; e->time = xevent->xcrossing.time; - ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e, - _ecore_x_event_handle_motion_notify_free, NULL); + ecore_event_add(ECORE_EVENT_X_MOUSE_MOVE, e, _ecore_x_event_free_generic, +NULL); } { Ecore_X_Event_Mouse_Out *e; @@ -375,8 +322,7 @@ e->notify.non_linear = 1; } e->time = xevent->xcrossing.time; - ecore_event_add(ECORE_EVENT_X_MOUSE_OUT, e, - _ecore_x_event_handle_leave_notify_free, NULL); + ecore_event_add(ECORE_EVENT_X_MOUSE_OUT, e, _ecore_x_event_free_generic, NULL); } } ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs