diff -urN ../roundcubemail-1.4.4.orig/program/js/common.js ./program/js/common.js --- ../roundcubemail-1.4.4.orig/program/js/common.js 2020-04-26 22:50:08.000000000 +0300 +++ ./program/js/common.js 2020-05-26 00:03:46.820820000 +0300 @@ -211,6 +211,28 @@ }, /** + * Return absolute touch position of an event + */ +get_touch_pos: function(e) +{ + if (!e) e = window.event; + var mX = (e.touches[0].pageX) ? e.touches[0].pageX : e.touches[0].clientX, + mY = (e.touches[0].pageY) ? e.touches[0].pageY : e.touches[0].clientY; + + if (document.body && document.all) { + mX += document.body.scrollLeft; + mY += document.body.scrollTop; + } + + if (e._offset) { + mX += e._offset.left; + mY += e._offset.top; + } + + return { x:mX, y:mY }; +}, + +/** * Add an object method as event listener to a certain element */ add_listener: function(p) diff -urN ../roundcubemail-1.4.4.orig/program/js/common.min.js ./program/js/common.min.js --- ../roundcubemail-1.4.4.orig/program/js/common.min.js 2020-04-26 22:50:08.000000000 +0300 +++ ./program/js/common.min.js 2020-05-26 00:55:55.956665000 +0300 @@ -33,7 +33,21 @@ this.touch=this.mobile||this.tablet;this.pointer="function"==typeof window.PointerEvent;this.cookies=a.cookieEnabled;this.xmlhttp_test=function(){var a=new Function("try{var o=new ActiveXObject('Microsoft.XMLHTTP');return true;}catch(err){return false;}");return this.xmlhttp=window.XMLHttpRequest||"ActiveXObject"in window&&a()};this.set_html_class=function(){var a=" js";this.ie?a+=" ms ie ie"+parseInt(this.vendver):this.edge?a+=" ms edge":this.opera?a+=" opera":this.konq?a+=" konqueror":this.safari? a+=" chrome":this.chrome?a+=" chrome":this.mz&&(a+=" mozilla");this.iphone?a+=" iphone":this.ipad?a+=" ipad":this.webkit&&(a+=" webkit");this.mobile&&(a+=" mobile");this.tablet&&(a+=" tablet");document.documentElement&&(document.documentElement.className+=a)}} var rcube_event={get_target:function(a){return(a=a||window.event)&&a.target?a.target:a.srcElement||document},get_keycode:function(a){return(a=a||window.event)&&a.keyCode?a.keyCode:a&&a.which?a.which:0},get_button:function(a){return(a=a||window.event)&&void 0!==a.button?a.button:a&&a.which?a.which:0},get_modifier:function(a){var b=0;a=a||window.event;bw.mac&&a?b+=(a.metaKey&&CONTROL_KEY)+(a.shiftKey&&SHIFT_KEY):a&&(b+=(a.ctrlKey&&CONTROL_KEY)+(a.shiftKey&&SHIFT_KEY));return b},get_mouse_pos:function(a){a|| -(a=window.event);var b=a.pageX?a.pageX:a.clientX,c=a.pageY?a.pageY:a.clientY;document.body&&document.all&&(b+=document.body.scrollLeft,c+=document.body.scrollTop);a._offset&&(b+=a._offset.left,c+=a._offset.top);return{x:b,y:c}},add_listener:function(a){if(a.object&&a.method){a.element||(a.element=document);a.object._rc_events||(a.object._rc_events={});var b=a.event+"*"+a.method;a.object._rc_events[b]||(a.object._rc_events[b]=function(b){return a.object[a.method](b)});a.element.addEventListener?a.element.addEventListener(a.event, +(a=window.event);var b=a.pageX?a.pageX:a.clientX,c=a.pageY?a.pageY:a.clientY;document.body&&document.all&&(b+=document.body.scrollLeft,c+=document.body.scrollTop);a._offset&&(b+=a._offset.left,c+=a._offset.top);return{x:b,y:c}}, +get_touch_pos:function(e){if(!e)e=window.event; +var mX= (e.touches[0].pageX)?e.touches[0].pageX:e.touches[0].clientX, +mY=(e.touches[0].pageY)?e.touches[0].pageY:e.touches[0].clientY; +if(document.body&&document.all){ +mX+=document.body.scrollLeft; +mY+=document.body.scrollTop; +} +if(e._offset){ +mX+=e._offset.left; +mY+=e._offset.top; +} +return{x:mX,y:mY}; +}, +add_listener:function(a){if(a.object&&a.method){a.element||(a.element=document);a.object._rc_events||(a.object._rc_events={});var b=a.event+"*"+a.method;a.object._rc_events[b]||(a.object._rc_events[b]=function(b){return a.object[a.method](b)});a.element.addEventListener?a.element.addEventListener(a.event, a.object._rc_events[b],!1):a.element.attachEvent?(a.element.detachEvent("on"+a.event,a.object._rc_events[b]),a.element.attachEvent("on"+a.event,a.object._rc_events[b])):a.element["on"+a.event]=a.object._rc_events[b]}},remove_listener:function(a){a.element||(a.element=document);var b=a.event+"*"+a.method;a.object&&a.object._rc_events&&a.object._rc_events[b]&&(a.element.removeEventListener?a.element.removeEventListener(a.event,a.object._rc_events[b],!1):a.element.detachEvent?a.element.detachEvent("on"+ a.event,a.object._rc_events[b]):a.element["on"+a.event]=null)},cancel:function(a){a=a?a:window.event;a.preventDefault?a.preventDefault():a.returnValue=!1;a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0;return!1},is_keyboard:function(a){return a?a.type?!!a.type.match(/^key/)||"click"==a.type&&!a.clientX:!a.pageX&&0>=(a.pageY||0)&&!a.clientX&&0>=(a.clientY||0):!1},keyboard_only:function(a){return rcube_event.is_keyboard(a)?!0:rcube_event.cancel(a)},touchevent:function(a){return{pageX:a.pageX, pageY:a.pageY,offsetX:a.pageX-a.target.offsetLeft,offsetY:a.pageY-a.target.offsetTop,target:a.target,istouch:!0}}};function rcube_event_engine(){this._events={}}