Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore_fb Modified Files: Tag: SPLIT ecore_fb.c Log Message: prune fb mouse events :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_fb/Attic/ecore_fb.c,v retrieving revision 1.1.2.14 retrieving revision 1.1.2.15 diff -u -3 -r1.1.2.14 -r1.1.2.15 --- ecore_fb.c 8 Apr 2003 08:03:23 -0000 1.1.2.14 +++ ecore_fb.c 13 Jul 2003 08:22:25 -0000 1.1.2.15 @@ -94,6 +94,7 @@ int ECORE_FB_EVENT_MOUSE_MOVE = 0; static Ecore_Event_Handler *_ecore_fb_user_handler = NULL; +static Ecore_Event_Filter *_ecore_fb_filter_handler = NULL; static Ecore_Fd_Handler *_ecore_fb_ts_fd_handler_handle = NULL; static Ecore_Fd_Handler *_ecore_fb_kbd_fd_handler_handle = NULL; static int _ecore_fb_init_count = 0; @@ -120,6 +121,10 @@ static void (*_ecore_fb_func_fb_gain) (void *data) = NULL; static void *_ecore_fb_func_fb_gain_data = NULL; +static void *_ecore_fb_event_filter_start(void *data); +static int _ecore_fb_event_filter_filter(void *data, void *loop_data, int type, void *event); +static void _ecore_fb_event_filter_end(void *data, void *loop_data); + static double _ecore_fb_double_click_time = 0.25; static char *_ecore_fb_kbd_syms[128] = @@ -503,6 +508,7 @@ _ecore_fb_user_handler = ecore_event_handler_add(ECORE_EVENT_SIGNAL_USER, _ecore_fb_signal_usr_handler, NULL); + _ecore_fb_filter_handler = ecore_event_filter_add(_ecore_fb_event_filter_start, _ecore_fb_event_filter_filter, _ecore_fb_event_filter_end, NULL); return _ecore_fb_init_count; } @@ -541,11 +547,13 @@ ecore_main_fd_handler_del(_ecore_fb_kbd_fd_handler_handle); if (_ecore_fb_user_handler) ecore_event_handler_del(_ecore_fb_user_handler); + ecore_event_filter_del(_ecore_fb_filter_handler); _ecore_fb_ts_fd = 0; _ecore_fb_kbd_fd = 0; _ecore_fb_tty_fd = 0; _ecore_fb_ps2_fd = 0; _ecore_fb_ts_fd_handler_handle = NULL; + _ecore_fb_filter_handler = NULL; _ecore_fb_kbd_fd_handler_handle = NULL; _ecore_fb_user_handler = NULL; _ecore_fb_ctrl = 0; @@ -1275,4 +1283,48 @@ } } ioctl(_ecore_fb_tty_fd, VT_ACTIVATE, vt); +} + +typedef struct _Ecore_Fb_Filter_Data Ecore_Fb_Filter_Data; + +struct _Ecore_Fb_Filter_Data +{ + int last_event_type; +}; + +static void * +_ecore_fb_event_filter_start(void *data) +{ + Ecore_Fb_Filter_Data *filter_data; + + filter_data = calloc(1, sizeof(Ecore_Fb_Filter_Data)); + return filter_data; +} + +static int +_ecore_fb_event_filter_filter(void *data, void *loop_data,int type, void *event) +{ + Ecore_Fb_Filter_Data *filter_data; + + filter_data = loop_data; + if (!filter_data) return 1; + if (type == ECORE_FB_EVENT_MOUSE_MOVE) + { + if ((filter_data->last_event_type) == ECORE_FB_EVENT_MOUSE_MOVE) + { + filter_data->last_event_type = type; + return 0; + } + } + filter_data->last_event_type = type; + return 1; +} + +static void +_ecore_fb_event_filter_end(void *data, void *loop_data) +{ + Ecore_Fb_Filter_Data *filter_data; + + filter_data = loop_data; + if (filter_data) free(filter_data); } ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps1 _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs