diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 002663290ff9bea06f678e4998c39ea6303c44fd..c2ce49df2bb1d80312c02c3c314220cdc4049ea9 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -6,6 +6,7 @@ Drupal 7.51, xxxx-xx-xx (development version) - Exceptions thrown in dblog_watchdog() are now caught and ignored. - Clarified the warning that appears when modules are missing or have moved. - If the page title is "0", it is now displayed. +- Draggable tables do now work on touch screen devices. - Numerous small performance improvements. - Numerous small bugfixes. - Numerous API documentation improvements. diff --git a/misc/tabledrag.js b/misc/tabledrag.js index 3cc270194f9b6a0bd46b5b7f10c502f1f91d817b..416eed46ba6b7ff465f192331009a9e2fa339db5 100644 --- a/misc/tabledrag.js +++ b/misc/tabledrag.js @@ -106,8 +106,10 @@ Drupal.tableDrag = function (table, tableSettings) { // Add mouse bindings to the document. The self variable is passed along // as event handlers do not have direct access to the tableDrag object. - $(document).bind('mousemove', function (event) { return self.dragRow(event, self); }); - $(document).bind('mouseup', function (event) { return self.dropRow(event, self); }); + $(document).bind('mousemove pointermove', function (event) { return self.dragRow(event, self); }); + $(document).bind('mouseup pointerup', function (event) { return self.dropRow(event, self); }); + $(document).bind('touchmove', function (event) { return self.dragRow(event.originalEvent.touches[0], self); }); + $(document).bind('touchend', function (event) { return self.dropRow(event.originalEvent.touches[0], self); }); }; /** @@ -274,7 +276,10 @@ Drupal.tableDrag.prototype.makeDraggable = function (item) { }); // Add the mousedown action for the handle. - handle.mousedown(function (event) { + handle.bind('mousedown touchstart pointerdown', function (event) { + if(event.originalEvent.type == "touchstart"){ + event=event.originalEvent.touches[0]; + } // Create a new dragObject recording the event information. self.dragObject = {}; self.dragObject.initMouseOffset = self.getMouseOffset(item, event);