mirror of
https://github.com/nasa/openmct.git
synced 2025-03-22 12:05:19 +00:00
[Mobile] Gestures
Now to dismiss bubble, touch anywhere the touch will not fire other gestures (such as the pressing of another object).
This commit is contained in:
parent
3d524d7572
commit
66408eeec8
@ -39,7 +39,6 @@ define(
|
||||
*/
|
||||
function InfoGestureButton($document, agentService, infoService, element, domainObject) {
|
||||
var dismissBubble,
|
||||
pendingBubble,
|
||||
touchPosition,
|
||||
scopeOff,
|
||||
body = $document.find('body');
|
||||
@ -59,6 +58,7 @@ define(
|
||||
dismissBubble();
|
||||
dismissBubble = undefined;
|
||||
}
|
||||
|
||||
// Detaches body touch listener
|
||||
body.off('touchstart', hideBubble);
|
||||
}
|
||||
@ -68,17 +68,24 @@ define(
|
||||
// and then on any body touch the bubble is dismissed
|
||||
function showBubble(event) {
|
||||
trackPosition(event);
|
||||
|
||||
|
||||
// Show the bubble, but on any touchstart on the
|
||||
// body (anywhere) call hidebubble
|
||||
pendingBubble =
|
||||
dismissBubble = infoService.display(
|
||||
"info-table",
|
||||
domainObject.getModel().name,
|
||||
domainObject.useCapability('metadata'),
|
||||
touchPosition
|
||||
);
|
||||
body.on('touchstart', hideBubble);
|
||||
dismissBubble = infoService.display(
|
||||
"info-table",
|
||||
domainObject.getModel().name,
|
||||
domainObject.useCapability('metadata'),
|
||||
touchPosition
|
||||
);
|
||||
|
||||
// On any touch on the body, default body touches/events
|
||||
// are prevented, the bubble is dismissed, and the touchstart
|
||||
// body event is unbound, reallowing gestures
|
||||
body.on('touchstart', function (event) {
|
||||
event.preventDefault();
|
||||
hideBubble();
|
||||
body.unbind('touchstart');
|
||||
});
|
||||
}
|
||||
|
||||
// Checks if you are on a mobile device, if the device is
|
||||
|
@ -61,10 +61,11 @@ define(
|
||||
// info bubble positioned as normal (with triangle pointing
|
||||
// to where clicked or pressed)
|
||||
bubble.css('position', 'absolute');
|
||||
if(agentService.isPhone(navigator.userAgent)) {
|
||||
bubble.css('right', 5 + 'px');
|
||||
bubble.css('left', 5 + 'px');
|
||||
bubble.css('top', 40 + 'px');
|
||||
if (agentService.isPhone(navigator.userAgent)) {
|
||||
bubble.css('right', 0 + 'px');
|
||||
bubble.css('left', 0 + 'px');
|
||||
bubble.css('top', 'auto');
|
||||
bubble.css('bottom', 25 + 'px');
|
||||
} else {
|
||||
if (goLeft) {
|
||||
bubble.css('right', (winDim[0] - position[0] + OFFSET[0]) + 'px');
|
||||
@ -79,7 +80,7 @@ define(
|
||||
}
|
||||
// Add the menu to the body
|
||||
body.append(bubble);
|
||||
|
||||
|
||||
// Return a function to dismiss the bubble
|
||||
return function () { bubble.remove(); };
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user