Merge branch 'ui' of github.com:SamGondelman/hifi into ui

This commit is contained in:
Dante Ruiz 2017-11-14 14:09:29 -08:00
commit 558a34d7b8
3 changed files with 24 additions and 8 deletions

View file

@ -341,7 +341,9 @@ void Web3DOverlay::hoverEnterOverlay(const PointerEvent& event) {
if (_inputMode == Mouse) { if (_inputMode == Mouse) {
handlePointerEvent(event); handlePointerEvent(event);
} else if (_webSurface) { } else if (_webSurface) {
_webSurface->hoverBeginEvent(event, _touchDevice); PointerEvent webEvent = event;
webEvent.setPos2D(event.getPos2D() * (METERS_TO_INCHES * _dpi));
_webSurface->hoverBeginEvent(webEvent, _touchDevice);
} }
} }
@ -354,7 +356,9 @@ void Web3DOverlay::hoverLeaveOverlay(const PointerEvent& event) {
PointerEvent endMoveEvent(PointerEvent::Move, event.getID()); PointerEvent endMoveEvent(PointerEvent::Move, event.getID());
handlePointerEvent(endMoveEvent); handlePointerEvent(endMoveEvent);
} else if (_webSurface) { } else if (_webSurface) {
_webSurface->hoverEndEvent(event, _touchDevice); PointerEvent webEvent = event;
webEvent.setPos2D(event.getPos2D() * (METERS_TO_INCHES * _dpi));
_webSurface->hoverEndEvent(webEvent, _touchDevice);
} }
} }

View file

@ -316,13 +316,17 @@ void WebEntityRenderer::loadSourceURL() {
void WebEntityRenderer::hoverEnterEntity(const PointerEvent& event) { void WebEntityRenderer::hoverEnterEntity(const PointerEvent& event) {
if (!_lastLocked && _webSurface) { if (!_lastLocked && _webSurface) {
_webSurface->hoverBeginEvent(event, _touchDevice); PointerEvent webEvent = event;
webEvent.setPos2D(event.getPos2D() * (METERS_TO_INCHES * _lastDPI));
_webSurface->hoverBeginEvent(webEvent, _touchDevice);
} }
} }
void WebEntityRenderer::hoverLeaveEntity(const PointerEvent& event) { void WebEntityRenderer::hoverLeaveEntity(const PointerEvent& event) {
if (!_lastLocked && _webSurface) { if (!_lastLocked && _webSurface) {
_webSurface->hoverEndEvent(event, _touchDevice); PointerEvent webEvent = event;
webEvent.setPos2D(event.getPos2D() * (METERS_TO_INCHES * _lastDPI));
_webSurface->hoverEndEvent(webEvent, _touchDevice);
} }
} }

View file

@ -163,11 +163,8 @@ void Pointer::generatePointerEvents(unsigned int pointerID, const PickResultPoin
} }
} }
} }
}
if (_hover) { if (hoveredObject.type == NONE) {
// send hoverEnd events if we disable the pointer, disable hovering, or actually stop hovering over an object
if ((!_enabled && _prevEnabled) || (!doHover && _prevDoHover) || (hoveredObject.type == NONE && _prevHoveredObject.type != NONE)) {
if (_prevHoveredObject.type == ENTITY) { if (_prevHoveredObject.type == ENTITY) {
emit pointerManager->hoverEndEntity(_prevHoveredObject.objectID, hoveredEvent); emit pointerManager->hoverEndEntity(_prevHoveredObject.objectID, hoveredEvent);
} else if (_prevHoveredObject.type == OVERLAY) { } else if (_prevHoveredObject.type == OVERLAY) {
@ -178,6 +175,17 @@ void Pointer::generatePointerEvents(unsigned int pointerID, const PickResultPoin
} }
} }
// send hoverEnd events if we disable the pointer or disable hovering
if (_hover && (!_enabled && _prevEnabled) || (!doHover && _prevDoHover)) {
if (_prevHoveredObject.type == ENTITY) {
emit pointerManager->hoverEndEntity(_prevHoveredObject.objectID, hoveredEvent);
} else if (_prevHoveredObject.type == OVERLAY) {
emit pointerManager->hoverEndOverlay(_prevHoveredObject.objectID, hoveredEvent);
} else if (_prevHoveredObject.type == HUD) {
emit pointerManager->hoverEndHUD(hoveredEvent);
}
}
// Trigger begin // Trigger begin
const std::string SHOULD_FOCUS_BUTTON = "Focus"; const std::string SHOULD_FOCUS_BUTTON = "Focus";
for (const std::string& button : newButtons) { for (const std::string& button : newButtons) {