Skip to content

Commit dd501ed

Browse files
author
Aaron Sillus
committed
CanvasHoverController working with tooltips
AframeActionController.js now adds cursor coordinates as attributes .layerX and .layerY to "mouseenter" and "mouseleave" events. The cursors position gets stored on every "mousemove" event.
1 parent 5571930 commit dd501ed

2 files changed

Lines changed: 13 additions & 4 deletions

File tree

ui/scripts/AframeActionController.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ var actionController = (function () {
1919
var hoveredEntity = null;
2020
var latestMouseButtonPressed = null;
2121

22+
var cursorX = 0;
23+
var cursorY = 0;
24+
2225
//actions object
2326
var actions = {
2427
mouse: {
@@ -137,6 +140,8 @@ var actionController = (function () {
137140
hoveredEntity = component;
138141
}
139142
if(eventObject.target.id != canvasId) {
143+
eventObject.layerX = cursorX;
144+
eventObject.layerY = cursorY;
140145
hoverAction(actions.mouse, eventObject);
141146
}
142147

@@ -150,6 +155,8 @@ var actionController = (function () {
150155
});
151156
this.el.addEventListener("mouseleave", function (eventObject) {
152157
if(eventObject.target.id != canvasId) {
158+
eventObject.layerX = cursorX;
159+
eventObject.layerY = cursorY;
153160
unhoverAction(actions.mouse, eventObject);
154161
}
155162
hoveredEntity = canvas;
@@ -165,6 +172,8 @@ var actionController = (function () {
165172
// interrupts mousedown events somehow
166173
this.el.addEventListener("mousemove", function (eventObject) {
167174
moveAction(actions.mouse.move, eventObject);
175+
cursorX = eventObject.layerX;
176+
cursorY = eventObject.layerY;
168177

169178
if (actions.mouse.move.bubbles) {
170179
return true;

ui/scripts/CanvasHover/AframeCanvasHoverController.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,23 +101,23 @@ var canvasHoverController = (function() {
101101
var entity = model.getEntityById(eventObject.target.id);
102102
if(entity === undefined){
103103
entity = eventObject.target.id;
104-
events.log.error.publish({ text: "Entity of partID " + multipartEvent.partID + " not in model data."});
104+
events.log.error.publish({ text: "Entity of partID " + eventObject.target.id + " not in model data."});
105105
return;
106106
}
107107

108108
var applicationEvent = {
109109
sender : canvasHoverController,
110110
entities : [entity],
111-
/*posX : multipartEvent.layerX,
112-
posY : multipartEvent.layerY*/
111+
posX : eventObject.layerX,
112+
posY : eventObject.layerY
113113
};
114114
events.hovered.on.publish(applicationEvent);
115115
}
116116

117117
function handleOnMouseLeave(eventObject) {
118118
var entity = model.getEntityById(eventObject.target.id);
119119
if(entity === undefined){
120-
events.log.error.publish({ text: "Entity of partID " + multipartEvent.partID + " not in model data."});
120+
events.log.error.publish({ text: "Entity of partID " + eventObject.target.id + " not in model data."});
121121
return;
122122
}
123123

0 commit comments

Comments
 (0)