vircadia / vircadia-native-core

Vircadia open source agent-based metaverse ecosystem.
https://vircadia.com/
Other
533 stars 175 forks source link

Web entity does not respond to scroll bars using Macos client #512

Open ArcadeFever opened 4 years ago

ArcadeFever commented 4 years ago

Web entity does not respond to scroll bar using Macos client.

On my 15-inch Macbook pro running Mojave (version 10.14.6) with the 2020.2.2 release client, I get the following debug errors when trying to slide the scroll bars on web entities:

[07/05 15:54:27] [WARNING] [qt.webengine.touch] Sending simulated touch events to Chromium does not work properly on macOS. Consider using QNativeGestureEvents or QMouseEvents.

JulianGro commented 4 years ago

Normally you would scroll by pressing on the page and dragging it up (like on a phone). Does that work?

ArcadeFever commented 4 years ago

Yes, clicking on the page or on the scroll bar, and dragging should scroll the page (as it does in Windows client), but in macos client neither works.

ArcadeFever commented 4 years ago

After more testing, I've found some interesting observations about this bug that may help in solving the issue.

Using the Vircadia calendar located in the Hub, Here is what the scroll bar on the top right looks like (note its much thinner compared to the windows web entity scrollbar).

1

When I pass my mouse pointer over the scrollbar, it changes in width to be a little wider, I assume to indicate that its now active.

2

If I click (and hold down left mouse button) on this bar, and keep my mouse positioned within the width of the bar, I am able to scroll the page up or down. The moment my mouse pointer goes outside this width of this bar or I release the mouse button, the scrolling stops. I see the same qt.webengine.touch error messages in the console while I was scrolling the page. The scroll bar remains the wider version, but is now inactive/unclickable.

3

If I click on a web link within the page and get the web-entity to reload the webpage, the scroll bar becomes active again, and I am able to mouse over it and can scroll like before. One more interesting note, in the Arcadia calendar, there is also another scrollbar within the calendar entries section of the page. I am unable to click this or get this to scroll bar to become active.

I should also note that clicking anywhere else on the page and dragging, does nothing at all. I've also tested the HighFidelity v86 client and it exhibits the same behavior, so this isn't something that recently broke...its just never worked as far as I can tell.

ArcadeFever commented 4 years ago

FYI, browser pop up window inside interface (like when you click on the http link in chat) works perfectly fine. No problems scrolling, and no warnings in the log like with web entity. Why is this? Wouldn't the web entity use the same Qt browser window just mapped onto a surface?

ArcadeFever commented 4 years ago

Good info by HifiExperiments: the web browser is a normal QML window that gets mouse/touch events natively, whereas the web entity is backed by QML, but we actually manually generate events to send to it based on its 3D transform and everything. our manual generation of the events has always been wonky, especially on mac. that code is in RenderableWebEntityItem.cpp, specifically, WebEntityRenderer::handlePointerEvent

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 2 years ago

Hello! Is this still an issue?