nunuStudio icon indicating copy to clipboard operation
nunuStudio copied to clipboard

Scene does not support windows touchscreen events

Open helzapps opened this issue 1 year ago • 7 comments

nunu Scenes cannot be interacted with via a windows touch screen

Description
  • Our clients using windows touch screen laptops can navigate nunu scenes with a paired mouse peripheral, but if they utilize the windows touch screen, none of those touch events are being picked up by the nunu scene/code. The scenes when viewed on other touch based devices (iOS or Android tablets) work as expected. It's only windows touch screen devices that seem to experience the issue.
  • If you have a windows touch screen laptop, you can visit the nunustudio.org home page and see this issue on the sample scenes hosted their.
Version
  • current version
Platform
  • [X] Web Version
  • [X] Windows
  • [ ] Linux

helzapps avatar Mar 20 '23 20:03 helzapps

Hello Jordan

Currently dont have a windows based touchscreen device a hand, could you please create a sample web app to see what kind of DOM events are triggered when using touch on windows devices?

I will try to check if there is any sort of emulator that can be used to test these.

Thanks in advance

tentone avatar Mar 22 '23 14:03 tentone

Hi José,

This has been part of the problem with us figuring out the issue. We develop on macOS, with one developer working on a windows desktop, but don't actually have surface pros or another windows touch screen device, so our being able to recreate has been having friends/family try on one of their devices. I'll need to look into getting a test device to see if I can run the web app in debug mode and see what kind of events are getting fired from a windows touch screen.

Thanks, Jordan

helzapps avatar Mar 22 '23 16:03 helzapps

Just dumping some notes in here. I created a new web project and installed three.js using node ("version": "0.150.1"), created a scene, camera, renderer, cube, etc and applied a three.js orbit controller to the camera/renderer.domElement. Everything works as expected with a mouse, and it works with a windows touch screen. I added an event listener to the canvas for touchstart and just console logged the touch event

TouchEvent {isTrusted: true, touches: TouchList, targetTouches: TouchList, changedTouches: TouchList, altKey: false, …}
isTrusted: true
altKey: false
bubbles: true
cancelBubble: false
cancelable: true
changedTouches: TouchList {0: Touch, length: 1}
composed: true
ctrlKey: false
currentTarget: null
defaultPrevented: false
detail: 0
eventPhase: 0
metaKey: false
path: (5) [canvas#myCanvas, body, html, document, Window]
returnValue: true
shiftKey: false
sourceCapabilities: InputDeviceCapabilities {firesTouchEvents: true}
srcElement: canvas#myCanvas
target: canvas#myCanvas
targetTouches: TouchList {0: Touch, length: 1}
timeStamp: 7502.700000047684
touches: TouchList {0: Touch, length: 1}
type: "touchstart"
view: Window {window: Window, self: Window, document: document, name: '', location: Location, …}
which: 0
[[Prototype]]: 
TouchEvent

I'm almost wondering if the issue with windows touch screens might be related to the three.js version maybe. I wonder if once this issue is implemented if windows touch events would work. Ultimately it's super weird that other touch devices work just fine.

helzapps avatar Mar 24 '23 00:03 helzapps

Can you please test using this https://github.com/tentone/syncinput

Should allow for pinch events and three finger swipe. If it works here i might be able to easily fix this in nunuStudio.

This library was built from the input elements of nunuStudio.

https://tentone.github.io/syncinput/demo/

tentone avatar Mar 24 '23 09:03 tentone

Ok had a friend test the demo site on their windows surface pro and it looks like the touches are working \(^o^)/ Let me know if there's anything else I can do to help. Also if there's an ETA on when a fix might be available to test, please let me know. We have a client that has an upcoming event (4/11) where they were going to use a bunch of surface pros as kiosks with a solution we built for them running on them.

helzapps avatar Mar 27 '23 20:03 helzapps

Great, i will put some time this week to swap the input controls in nunuStudio to use the more recent code.

Thanks a lot!

tentone avatar Apr 02 '23 10:04 tentone

Hello

Made some changes to the mouse input last week. To use screenX/screenY seems to be the main diference that i have made to the lib where you tested.

Can you test with the current version on master?

I will update the online build soon.

Cheers

tentone avatar Apr 13 '23 08:04 tentone