struct wl_display *display = NULL;
if (wl2_display)
display = ecore_wl2_display_get(wl2_display);
+ struct wl_event_queue *queue = wl_display_create_queue(display);
- if (display) {
- while (ecore_time_get() - start_time < WAIT_FOR_FILTER_DONE_SECOND && _focused_ctx == ctx && wl_display_roundtrip(display) != -1) {
+ if (display && queue) {
+ while (ecore_time_get() - start_time < WAIT_FOR_FILTER_DONE_SECOND && _focused_ctx == ctx && wl_display_roundtrip_queue(display, queue) != -1) {
+ wl_display_dispatch_pending(display);
if (imcontext->last_key_event_filter.serial == serial) {
ret = imcontext->last_key_event_filter.state;
break;
break;
}
}
+
+ if (queue)
+ wl_event_queue_destroy(queue);
LOGD ("elapsed : %.3f ms, serial (last, require) : (%d, %d)", (ecore_time_get() - start_time)*1000, imcontext->last_key_event_filter.serial, serial);
} while (0);