widget: Fix propagation of events on hold
authorJean-Philippe Andre <jp.andre@samsung.com>
Wed, 3 Aug 2016 09:08:31 +0000 (18:08 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Wed, 3 Aug 2016 09:08:31 +0000 (18:08 +0900)
Because of the translation between legacy and eo key
events, the on_hold flag state could sometimes be lost.

Symptom:
 elementary_test -to Focus
 Click on a button inside the scroller
 Up/down would jump to the end of the scroller, rather than
 the next button.

Thanks a lot to Woohyeon for the very good bug report.

src/lib/elementary/elm_widget.c

index fe56a87..18e38da 100644 (file)
@@ -783,6 +783,8 @@ _propagate_event(void *data EINA_UNUSED, const Eo_Event *event)
      return;
 
    elm_widget_event_propagate(obj, type, &event_info, event_flags);
+   if (*event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+     efl_event_processed_set(event->info, EINA_TRUE);
 }
 
 /**