Skip to content

Commit

Permalink
chore: remove touch integration
Browse files Browse the repository at this point in the history
Closes #796
  • Loading branch information
philippfromme committed Jan 16, 2024
1 parent 04b4f81 commit 7a4b327
Show file tree
Hide file tree
Showing 16 changed files with 24 additions and 658 deletions.
11 changes: 1 addition & 10 deletions assets/diagram-js.css
Original file line number Diff line number Diff line change
Expand Up @@ -749,22 +749,13 @@ marker.djs-dragger tspan {
}

/**
* touch
* bendpoints
*/

.djs-shape,
.djs-connection {
touch-action: none;
}

.djs-segment-dragger,
.djs-bendpoint {
display: none;
}

/**
* bendpoints
*/
.djs-segment-dragger .djs-visual {
display: none;

Expand Down
2 changes: 1 addition & 1 deletion lib/features/connect/Connect.js
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ export default function Connect(eventBus, dragging, modeling, rules) {
/**
* Start connect operation.
*
* @param {MouseEvent|TouchEvent} event
* @param {MouseEvent} event
* @param {Element} start
* @param {Point} [connectionStart]
* @param {boolean} [autoActivate=false]
Expand Down
51 changes: 10 additions & 41 deletions lib/features/dragging/Dragging.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,6 @@ function preventDefault(event) {
event.preventDefault();
}

function isTouchEvent(event) {

// check for TouchEvent being available first
// (i.e. not available on desktop Firefox)
return typeof TouchEvent !== 'undefined' && event instanceof TouchEvent;
}

function getLength(point) {
return Math.sqrt(Math.pow(point.x, 2) + Math.pow(point.y, 2));
}
Expand Down Expand Up @@ -174,8 +167,7 @@ export default function Dragging(eventBus, canvas, selection, elementRegistry) {
assign(
{},
dragContext.payload,
dragContext.data,
{ isTouch: dragContext.isTouch }
dragContext.data
)
);

Expand Down Expand Up @@ -332,10 +324,6 @@ export default function Dragging(eventBus, canvas, selection, elementRegistry) {
end(event);
}

function trapTouch(event) {
move(event);
}

// update the drag events model element (`hover`) and graphical element (`hoverGfx`)
// properties during hover and out and fire {prefix}.hover and {prefix}.out properties
// respectively
Expand Down Expand Up @@ -410,11 +398,6 @@ export default function Dragging(eventBus, canvas, selection, elementRegistry) {

domEvent.unbind(document, 'keyup', checkCancel);

domEvent.unbind(document, 'touchstart', trapTouch, true);
domEvent.unbind(document, 'touchcancel', cancel, true);
domEvent.unbind(document, 'touchmove', move, true);
domEvent.unbind(document, 'touchend', end, true);

eventBus.off('element.hover', hover);
eventBus.off('element.out', out);

Expand All @@ -441,7 +424,7 @@ export default function Dragging(eventBus, canvas, selection, elementRegistry) {
* If `localPosition` is given, drag events will be emitted
* relative to it.
*
* @param {MouseEvent|TouchEvent} [event]
* @param {MouseEvent} [event]
* @param {Point} [relativeTo] actual diagram local position this drag operation should start at
* @param {string} prefix
* @param {Object} [options]
Expand All @@ -465,8 +448,7 @@ export default function Dragging(eventBus, canvas, selection, elementRegistry) {
originalEvent,
globalStart,
localStart,
endDrag,
isTouch;
endDrag;

if (options.trapClick) {
endDrag = trapClickAndEnd;
Expand Down Expand Up @@ -495,41 +477,28 @@ export default function Dragging(eventBus, canvas, selection, elementRegistry) {
relativeTo = localStart;
}

isTouch = isTouchEvent(originalEvent);

context = assign({
prefix: prefix,
data: data,
payload: {},
globalStart: globalStart,
displacement: deltaPos(relativeTo, localStart),
localStart: localStart,
isTouch: isTouch
localStart: localStart
}, options);

// skip dom registration if trigger
// is set to manual (during testing)
if (!options.manual) {

// add dom listeners
domEvent.bind(document, 'mousemove', move);

if (isTouch) {
domEvent.bind(document, 'touchstart', trapTouch, true);
domEvent.bind(document, 'touchcancel', cancel, true);
domEvent.bind(document, 'touchmove', move, true);
domEvent.bind(document, 'touchend', end, true);
} else {

// assume we use the mouse to interact per default
domEvent.bind(document, 'mousemove', move);
// prevent default browser drag and text selection behavior
domEvent.bind(document, 'dragstart', preventDefault);
domEvent.bind(document, 'selectstart', preventDefault);

// prevent default browser drag and text selection behavior
domEvent.bind(document, 'dragstart', preventDefault);
domEvent.bind(document, 'selectstart', preventDefault);

domEvent.bind(document, 'mousedown', endDrag, true);
domEvent.bind(document, 'mouseup', endDrag, true);
}
domEvent.bind(document, 'mousedown', endDrag, true);
domEvent.bind(document, 'mouseup', endDrag, true);

domEvent.bind(document, 'keyup', checkCancel);

Expand Down
7 changes: 3 additions & 4 deletions lib/features/interaction-events/InteractionEvents.js
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ export default function InteractionEvents(eventBus, elementRegistry, styles) {
* Fire an interaction event.
*
* @param {string} type local event name, e.g. element.click.
* @param {MouseEvent|TouchEvent} event native event
* @param {MouseEvent} event native event
* @param {Element} [element] the diagram element to emit the event on;
* defaults to the event target
*/
Expand Down Expand Up @@ -159,7 +159,7 @@ export default function InteractionEvents(eventBus, elementRegistry, styles) {
* on the target shape or connection.
*
* @param {string} eventName the name of the triggered DOM event
* @param {MouseEvent|TouchEvent} event
* @param {MouseEvent} event
* @param {Element} targetElement
*/
function triggerMouseEvent(eventName, event, targetElement) {
Expand Down Expand Up @@ -508,8 +508,7 @@ InteractionEvents.$inject = [
*/

/**
* An event indicating that the context menu action is triggered
* via mouse or touch controls.
* An event indicating that the context menu action is triggered via mouse.
*
* @event element.contextmenu
*
Expand Down
2 changes: 1 addition & 1 deletion lib/features/move/Move.js
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ export default function MoveEvents(
/**
* Start move.
*
* @param {MouseEvent|TouchEvent} event
* @param {MouseEvent} event
* @param {Shape} element
* @param {boolean} [activate]
* @param {Object} [context]
Expand Down
2 changes: 1 addition & 1 deletion lib/features/resize/Resize.js
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ Resize.prototype.canResize = function(context) {
* You may specify additional contextual information and must specify a
* resize direction during activation of the resize event.
*
* @param {MouseEvent|TouchEvent} event
* @param {MouseEvent} event
* @param {Shape} shape
* @param {Object|Direction} contextOrDirection
*/
Expand Down
1 change: 0 additions & 1 deletion lib/features/resize/ResizeHandles.js
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,6 @@ ResizeHandles.prototype.makeDraggable = function(element, gfx, direction) {
}

domEvent.bind(gfx, 'mousedown', startResize);
domEvent.bind(gfx, 'touchstart', startResize);
};


Expand Down
6 changes: 3 additions & 3 deletions lib/features/space-tool/SpaceTool.js
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ SpaceTool.$inject = [
/**
* Activate space tool selection.
*
* @param {MouseEvent|TouchEvent} event
* @param {MouseEvent} event
* @param {boolean} autoActivate
* @param {boolean} reactivate
*/
Expand All @@ -187,7 +187,7 @@ SpaceTool.prototype.activateSelection = function(event, autoActivate, reactivate
/**
* Activate space tool make space.
*
* @param {MouseEvent|TouchEvent} event
* @param {MouseEvent} event
*/
SpaceTool.prototype.activateMakeSpace = function(event) {
this._dragging.init(event, 'spaceTool', {
Expand Down Expand Up @@ -215,7 +215,7 @@ SpaceTool.prototype.makeSpace = function(movingShapes, resizingShapes, delta, di
/**
* Initialize make space and return true if that was successful.
*
* @param {MouseEvent|TouchEvent} event
* @param {MouseEvent} event
* @param {Object} context
*
* @return {boolean}
Expand Down
63 changes: 0 additions & 63 deletions lib/features/touch/TouchFix.js

This file was deleted.

Loading

0 comments on commit 7a4b327

Please sign in to comment.