@@ -144,16 +144,12 @@ MSU.NestedTooltip = {
144
144
MSU . NestedTooltip . Events . cancelTimer ( "HIDE" ) ;
145
145
146
146
var $element = $ ( event . currentTarget ) ;
147
-
148
147
var data = $element . data ( "msu-nested" ) ;
149
- // Common source handling
150
148
if ( data === undefined ) {
151
149
MSU . NestedTooltip . Events . setTimer ( "SHOW" , function ( ) {
152
150
MSU . NestedTooltip . onShowTooltipTimerExpired ( $element ) ;
153
151
} ) ;
154
152
}
155
-
156
- // MSU.NestedTooltip.Events.setTimer("HIDE", MSU.NestedTooltip.updateStack.bind(MSU.NestedTooltip));
157
153
} ,
158
154
onSourceLeave : function ( event ) {
159
155
MSU . NestedTooltip . Events . cancelTimer ( "SHOW" ) ;
@@ -180,17 +176,8 @@ MSU.NestedTooltip = {
180
176
MSU . NestedTooltip . Events . setTimer ( "HIDE" , MSU . NestedTooltip . updateStack . bind ( MSU . NestedTooltip ) ) ;
181
177
} ,
182
178
183
- // Combined lock handler for both mouse and keyboard
184
179
onLockRequest : function ( event ) {
185
- var isKeyboard = event . type === 'keydown' ;
186
- // check for item moving due to click
187
- var shouldLock = isKeyboard ?
188
- MSU . Keybinds . isKeybindPressed ( MSU . ID , "LockTooltipKeyboard" , event ) :
189
- MSU . Keybinds . isMousebindPressed ( MSU . ID , "LockTooltip" ) ;
190
-
191
- if ( ! shouldLock ) {
192
- return ;
193
- } ;
180
+ if ( ! MSU . Keybinds . isKeybindPressed ( MSU . ID , "LockTooltipKeyboard" , event ) ) return ;
194
181
195
182
var stackData = MSU . NestedTooltip . TooltipStack . peek ( ) ;
196
183
if ( stackData == null ) return ;
@@ -201,7 +188,7 @@ MSU.NestedTooltip = {
201
188
progressImage . velocity ( "finish" ) ;
202
189
} ,
203
190
204
- onTooltipClick : function ( event ) {
191
+ onTooltipLeftClick : function ( event ) {
205
192
if ( event . which !== 1 ) return ;
206
193
207
194
event . stopPropagation ( ) ;
@@ -213,6 +200,23 @@ MSU.NestedTooltip = {
213
200
}
214
201
} ,
215
202
203
+ onTooltipRightClick : function ( event ) {
204
+ if ( event . which !== 3 ) return ;
205
+ MSU . NestedTooltip . TooltipStack . clear ( ) ;
206
+ var elementUnderCursor = $ ( document . elementFromPoint ( event . clientX , event . clientY ) ) ;
207
+ var $elementUnderCursor = $ ( elementUnderCursor ) ;
208
+ var $tooltipSource = $elementUnderCursor . closest ( ".msu-tooltip-source, .msu-nested-tooltip-source" ) ;
209
+
210
+ if ( $tooltipSource . length ) {
211
+ // Manually trigger mouseenter event
212
+ var enterEvent = new jQuery . Event ( "mouseenter" ) ;
213
+ enterEvent . clientX = event . clientX ;
214
+ enterEvent . clientY = event . clientY ;
215
+ enterEvent . currentTarget = elementUnderCursor ;
216
+ $tooltipSource . trigger ( enterEvent ) ;
217
+ }
218
+ } ,
219
+
216
220
// to confirm that we are still hovering an element, as .locked stuff isn't reliable. We should probably move this event handler to MSU.
217
221
onMouseMove : function ( event ) {
218
222
this . __lastMouseX = event . clientX ;
@@ -246,7 +250,10 @@ MSU.NestedTooltip = {
246
250
. on ( "keydown.msu-tooltip" , this . onLockRequest )
247
251
248
252
// Click handling
249
- . on ( "mousedown.msu-tooltip" , ".ui-control-tooltip-module" , this . onTooltipClick ) ;
253
+ . on ( "mousedown.msu-tooltip" , ".ui-control-tooltip-module" , this . onTooltipLeftClick ) ;
254
+
255
+ // this one we need to run outside
256
+ document . addEventListener ( "mousedown" , this . onTooltipRightClick , { "passive" : true , "capture" : true } ) ;
250
257
}
251
258
} ,
252
259
TileTooltipDiv : {
@@ -345,14 +352,12 @@ MSU.NestedTooltip = {
345
352
this . unbindFromElement ( _element ) ;
346
353
_element . data ( 'msu-tooltip-parameters' , _tooltipParams ) ;
347
354
_element . addClass ( 'msu-tooltip-source' ) ;
348
- _element . on ( "mousedown.msu-tooltip" , MSU . NestedTooltip . Events . onLockRequest ) ;
349
355
} ,
350
356
unbindFromElement : function ( _element )
351
357
{
352
358
_element . removeData ( "msu-nested" ) ;
353
359
_element . removeData ( 'msu-tooltip-parameters' ) ;
354
360
_element . removeClass ( 'msu-tooltip-source' ) ;
355
- _element . off ( "mousedown.msu-tooltip" ) ;
356
361
} ,
357
362
onShowTooltipTimerExpired : function ( _sourceContainer )
358
363
{
0 commit comments