#

API Docs for: 3.10.3
Show: Inherited Protected Private Deprecated

# File: dd/js/drag-gestures.js

        /**
        * This module is the conditional loaded `dd` module to support gesture events
        * in the event that `dd` is loaded onto a device that support touch based events.
        *
        * This module is loaded and over rides 2 key methods on `DD.Drag` and `DD.DDM` to
        * attach the gesture events. Overrides `DD.Drag._prep` and `DD.DDM._setupListeners`
        * methods as well as set's the property `DD.Drag.START_EVENT` to `gesturemovestart`
        * to enable gesture movement instead of mouse based movement.
        * @module dd
        * @submodule dd-gestures
        */
        Y.log('Drag gesture support loaded', 'info', 'drag-gestures');

        Y.DD.Drag.START_EVENT = 'gesturemovestart';

        Y.DD.Drag.prototype._prep = function() {
            Y.log('Using DD override prep to attach gesture events', 'info', 'drag-gestures');
            this._dragThreshMet = false;
            var node = this.get('node'), DDM = Y.DD.DDM;

            node.addClass(DDM.CSS_PREFIX + '-draggable');

            node.on(Y.DD.Drag.START_EVENT, Y.bind(this._handleMouseDownEvent, this), {
                minDistance: this.get('clickPixelThresh'),
                minTime: this.get('clickTimeThresh')
            });

            node.on('gesturemoveend', Y.bind(this._handleMouseUp, this), { standAlone: true });
            node.on('dragstart', Y.bind(this._fixDragStart, this));

        };

        var _unprep = Y.DD.Drag.prototype._unprep;

        Y.DD.Drag.prototype._unprep = function() {
            var node = this.get('node');
            _unprep.call(this);
            node.detachAll('gesturemoveend');
        };

        Y.DD.DDM._setupListeners = function() {
            var DDM = Y.DD.DDM;

            this._createPG();
            this._active = true;
            Y.one(Y.config.doc).on('gesturemove', Y.throttle(Y.bind(DDM._move, DDM), DDM.get('throttleTime')), { standAlone: true });
        };