From 4dd95e3f3efb7973624c61d49ce8a35d75e0d016 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sat, 18 Feb 2006 04:40:14 +0000 Subject: [PATCH] disable double click flags if u clock on something else in between SVN revision: 20554 --- legacy/evas/src/lib/canvas/evas_events.c | 7 +++++++ legacy/evas/src/lib/include/evas_private.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/legacy/evas/src/lib/canvas/evas_events.c b/legacy/evas/src/lib/canvas/evas_events.c index fa632adef5..10b1ab8492 100644 --- a/legacy/evas/src/lib/canvas/evas_events.c +++ b/legacy/evas/src/lib/canvas/evas_events.c @@ -255,10 +255,17 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int ev.locks = &(e->locks); ev.flags = flags; ev.timestamp = timestamp; + if (ev.flags & (EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK)) + { + if (obj->last_click_counter < (e->last_click_counter - 1)) + ev.flags &= ~(EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK); + } if (e->events_frozen <= 0) evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_DOWN, &ev); + obj->last_click_counter = e->last_click_counter; } if (copy) copy = evas_list_free(copy); + e->last_click_counter++; } /** diff --git a/legacy/evas/src/lib/include/evas_private.h b/legacy/evas/src/lib/include/evas_private.h index fb02ccb830..ce08400343 100644 --- a/legacy/evas/src/lib/include/evas_private.h +++ b/legacy/evas/src/lib/include/evas_private.h @@ -329,6 +329,7 @@ struct _Evas Evas_Lock locks; unsigned int last_timestamp; void *attach_data; + int last_click_counter; }; struct _Evas_Layer @@ -414,6 +415,7 @@ struct _Evas_Object unsigned char deletions_waiting : 1; } smart; + int last_click_counter; int mouse_grabbed; unsigned short store : 1;