<div dir="ltr">Hi, <br><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 25, 2015 at 8:03 AM, Peter Hutterer <span dir="ltr"><<a href="mailto:peter.hutterer@who-t.net" target="_blank">peter.hutterer@who-t.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">[...]<br><div><div>
> - break;<br>
> - case ABS_MT_TRACKING_ID:<br>
> + } else if(e->code == ABS_MT_TRACKING_ID) {<br>
> if (device->pending_event != EVDEV_NONE &&<br>
> device->pending_event != EVDEV_ABSOLUTE_MT_MOTION)<br>
> evdev_flush_pending_event(device, time);<br>
> - if (e->value >= 0)<br>
> + if (e->value >= 0) {<br>
> device->pending_event = EVDEV_ABSOLUTE_MT_DOWN;<br>
> - else<br>
> + current_slot->available_data = TOUCH_SLOT_DATA_NONE;<br>
> + current_slot->pressure = DEFAULT_TOUCH_PRESSURE;<br>
> + current_slot->orientation = DEFAULT_TOUCH_ORIENTATION;<br>
> + current_slot->touch_major = DEFAULT_TOUCH_MAJOR;<br>
> + current_slot->touch_minor = DEFAULT_TOUCH_MINOR;<br>
<br>
</div></div>no, get this from libevdev, otherwise we may have the wrong value if the<br>
kernel skips it when the value is unchanged to the last event. that's<br>
unlikely enough, but one of the bugs that's painful to debug when it does<br>
happen. see libevdev_get_slot_value().<br></blockquote><div><br></div><div>But libevdev should not have values in this case. This branch happens when a touch trackin id is removed. <br></div><div>So after the finger was lifted. <br><br></div><div>I agree with all the other findings. It was a busy week. I guess I can finish this over the weekend.</div><div>I also settled with the idea of using zero as indicator that there is no value available, which works well<br>with pressure and touch ellipse size, and does not matter for orientation<br><br></div><div>regards<br></div><div>Andreas<br></div></div><br></div></div></div>