diff --git a/swipe.js b/swipe.js index cf7dc50..a275437 100644 --- a/swipe.js +++ b/swipe.js @@ -220,8 +220,8 @@ rcube_webmail.prototype.swipe_event = function(opts) { }; var touchstart = {}; - // use pointer events if the browser supports them but not touch (eg Edge) - if (bw.pointer && !bw.touch) { + // use pointer events if the browser supports them + if (bw.pointer) { touchevents = { 'startevent': 'pointerdown', 'moveevent': 'pointermove', @@ -234,12 +234,13 @@ rcube_webmail.prototype.swipe_event = function(opts) { // prevent accidental message list scroll when swipe active rcmail.env.swipe_parent.on('scroll', function() { - if (bw.pointer && !bw.touch) { + if (bw.pointer) { // allow vertical pointerevents to fire (if one is configured) if ($(this).scrollTop() == 0) { var action = rcmail.swipe_select_action('down'); - rcmail.env.swipe_parent.css('touch-action', action.callback ? 'none' : 'pan-y'); - $(rcmail.gui_objects.messagelist).children('tbody > tr').css('touch-action', action.callback ? 'none' : 'pan-y'); + // Edge does not support pan-down, only pan-y + rcmail.env.swipe_parent.css('touch-action', action.callback ? (bw.edge ? 'none' : 'pan-down') : 'pan-y'); + $(rcmail.gui_objects.messagelist).children('tbody > tr').css('touch-action', action.callback ? (bw.edge ? 'none' : 'pan-down') : 'pan-y'); } } else if (bw.touch) { @@ -293,7 +294,7 @@ rcube_webmail.prototype.swipe_event = function(opts) { return; if (temp_axis == 'vertical') { - if (bw.pointer && !bw.touch && changeY < 0) { + if (bw.pointer && changeY < 0) { $('#swipe-action').removeClass().hide(); if (touchstart.scrollable) { @@ -301,8 +302,6 @@ rcube_webmail.prototype.swipe_event = function(opts) { $(rcmail.gui_objects.messagelist).children('tbody > tr').css('touch-action', 'pan-y'); } - // TODO perform "normal" scroll action - //opts.vertical.target_obj.parent().scrollTop((opts.vertical.target_obj.parent().scrollTop() + changeY) * -1); return; } else if (changeY < 0 || (changeY > 0 && opts.vertical.target_obj.parent().scrollTop() > 0)) { @@ -367,7 +366,8 @@ rcube_webmail.prototype.swipe_event = function(opts) { callback({'uid': opts[touchstart.axis].uid, 'obj': opts[touchstart.axis].target_obj, 'originalEvent': e}); $('#swipe-action').removeClass().hide(); - opts[touchstart.axis].target_obj.removeClass('swipe-active swipe-block'); + opts[touchstart.axis].target_obj.removeClass('swipe-active'); + $(rcmail.gui_objects.messagelist).removeClass('swipe-block'); touchstart = {}; rcmail.env.swipe_active = null;