0) Since the Pull request was out of date, I have rebased it to the latest master.
1) Sample client usage for OSX. Since there is no touch screen on OSX devices, the sample usage simulates touch screen by mapping touch events on TrackPad to Touch Events on Screen (and may be slightly flaky hence).To ensure it does not interfere with other Trackpad events, this mapping is only enabled if touch-events=enabled commandline is passed and caps lock key is on.
2) Sample Client Usage Win: Sample client usage for Win is based on WM_TOUCH (and not WM_POINTER) since WM_POINTER is not available on Win7, and a lot of clients will likely require Win7 support.
The unit tests are working on all platforms and the sample simulating Touch by mapping Trackpad seems to work reasonably well. Please review. Tammo Hinrichs It'll be great if you can help with adding Win sample usage to close this long standing issue.
Tammo Hinrichs I have added Windows sample usage also. The Windows Sample client usage for is based on WM_TOUCH (and not WM_POINTER) since WM_POINTER is not available on Win7, and we (and a lot of other clients likely) still require Win7 support.
Tammo Hinrichs [again overstepping the boundaries but :)] Please let me know if I can help further with rebasing these changes and keeping them in Sync with the master to ease with merging to Trunk. (While my other PRs were under review I had automated, rebasing, building and validating my PRs on Win/Mac.) Since we are now using this Touch implementation, I am doing the same with this PR by forking this as a local PR, with original commits rebased to master and sample usage + cleanup)
Thanks to all. As for Windows example while it miss WM_POINTER usage, i suggest just to include comment about in sample code, otherwise followers miss this point. (Argues about Windows 7 is correct, but on modern systems WM_POINTER support should be mandatory choice. )
Speaking of overstepping boundaries and now becoming the guy who demands stuff: Could you check John's comment on CefRenderWidgetHostViewOSR::OnGestureEvent() below and add the three lines of code he suggested?
Nishant Kaushik. I have complie CEF 3071 with changes from PR 104 and test on Win10. cefclient.exe --off-screen-rendering-enabled --touch-events-enabled You see, the problem is that though touch-scroll works just fine but if there is some texting and other objects then it become selected while I try to touch-scroll the page. Screen captupe link https://yadi.sk/i/fm-LggO-3KooNf Problem in the CefClient.
Nishant Kaushik, but if i disable all mouse Events in cefclient (osr_window_win.cc: // self->OnMouseEvent(message, wParam, lParam);) then it works just fine!!! It seems Touch events generate additional Mouse events.
Alexey Makarov Great catch! and thanks. Windows indeed sends synthesised mouse events from Touch events. I have updated the client usage to ignore mouse events coming from Touch (like we do in chromium eg. IsMouseEventFromTouch).
Hello everyone i follow this project for long time and I want to try it because is extremely charming but i tried to download the project and build it and I obtain a lot of error and I don't know how to solve it.
I have also tried to start from a standard build and follow the instruction from the guide but i obtain an error during the extracting.
So is there anyone that can can send me the build project with .sln file ?
Thanks to much
I have found the problem and make my own resolution (maybe not the best...)
My touch problem was located in the render_widget_host_view_osr.cc file, in the CefRenderWidgetHostViewOSR::TranslateTouchEvent method
Symptom : When you totally disable mouse events, you cannot pinch to zoom in maps.google.fr. You can invoke the devtool on this website and launch a monitorEvents(document) on the console. You will see (on a fully touch action) some mouse events.
Problem : In the given method, we call CreateWebTouchEventFromMotionEvent but this method does not fill properly the Id so that when we call MarkUnchangedTouchPointsAsStationary, we mark ALL events as stationary (even the last move event sent).
Solution : I just comment the call of MarkUnchangedTouchPointsAsStationary. This is not the best but i have now a fully functional solution with native touch/pinch to zoom.
(CreateWebTouchEventFromMotionEvent is actually implemented is chromium/src/ui/events/blink/blink_event_util.cc and is the same code that used by chromium and in non osr mode and that too is working as expected. So the issue likely lies elsewhere.)
Pinch to zoom on maps.google.fr seems to be working fine in sample CefClient (please make sure you pass touch-events=enabled command line flag). Can you please confirm if this is working in sample Cef client.