Page MenuHomePhabricator

ecore_wayland: set touch_focus window when gets pointer_enter

Authored by ohduna on Jan 7 2016, 1:01 AM.



When user touches the screen, ecore_wayland gets touch_motion event before touch_down event.
But touch_focus would be NULL in cb_touch_motion, so doesn't send ECORE_EVENT_MOUSE_MOVE event to client.
This fix set touch_focus when gets pointer_enter same as pointer_focus.

Test Plan

when the application is launched for first time, user clicks on any area of the screen.
We can see the posion of touch event wrong.

Diff Detail

rEFL core/efl
No Linters Available
No Unit Test Coverage
Build Status
Buildable 1030
Build 1095: arc lint + arc unit
ohduna updated this revision to Diff 8093.Jan 7 2016, 1:01 AM
ohduna retitled this revision from to ecore_wayland: set touch_focus window when gets pointer_enter.
ohduna updated this object.
ohduna edited the test plan for this revision. (Show Details)
ohduna added reviewers: devilhorns, raster, ManMower, zmike.
ohduna added subscribers: JHyun, input.hacker.
devilhorns accepted this revision.Jan 7 2016, 5:50 AM
devilhorns edited edge metadata.
This revision is now accepted and ready to land.Jan 7 2016, 5:50 AM
devilhorns closed this revision.Jan 7 2016, 5:50 AM
ManMower edited edge metadata.Jan 7 2016, 7:19 AM

Hi, I realize this has landed and fixes a bug, but I'm very confused by the commit log.

wl_touch.motion should never happen before wl_touch.down - what compositor are you seeing this happen with?

wl_pointer.enter may not be sent before wl_touch.anything - why would it? pointer and touch are totally separate - you may have a touch screen and no pointer device at all (quite common in ivi...)

This seems like it's hiding a bug lurking somewhere else?

Thanks, ManMower.
I created new revision according your comment.
Please refer to