diff --git a/mod/assign/feedback/editpdf/styles.css b/mod/assign/feedback/editpdf/styles.css index 163026442da..844c9436eac 100644 --- a/mod/assign/feedback/editpdf/styles.css +++ b/mod/assign/feedback/editpdf/styles.css @@ -35,6 +35,7 @@ position: absolute; overflow: auto; background-color: #ccc; + touch-action: none; } .assignfeedback_editpdf_widget { @@ -388,6 +389,7 @@ ul.assignfeedback_editpdf_menu { position: relative; margin-bottom: 1em; top: 0; + max-height: 312px; } .assignfeedback_editpdf_widget .pageheader { diff --git a/mod/assign/feedback/editpdf/yui/build/moodle-assignfeedback_editpdf-editor/moodle-assignfeedback_editpdf-editor-debug.js b/mod/assign/feedback/editpdf/yui/build/moodle-assignfeedback_editpdf-editor/moodle-assignfeedback_editpdf-editor-debug.js index dc22ae11bfb..bea07f58bb8 100644 --- a/mod/assign/feedback/editpdf/yui/build/moodle-assignfeedback_editpdf-editor/moodle-assignfeedback_editpdf-editor-debug.js +++ b/mod/assign/feedback/editpdf/yui/build/moodle-assignfeedback_editpdf-editor/moodle-assignfeedback_editpdf-editor-debug.js @@ -4046,6 +4046,8 @@ EDITOR.prototype = { if (this.get('readonly')) { return; } + this.disable_touch_scroll(); + // Setup the tool buttons. Y.each(TOOLSELECTOR, function(selector, tool) { toolnode = this.get_dialogue_element(selector); @@ -4139,6 +4141,7 @@ EDITOR.prototype = { if (tool !== "comment" && tool !== "select" && tool !== "drag" && tool !== "stamp") { this.lastannotationtool = tool; } + this.refresh_button_state(); }, @@ -4683,6 +4686,54 @@ EDITOR.prototype = { for (i = 0; i < this.drawables.length; i++) { this.drawables[i].scroll_update(x, y); } + }, + + /** + * Test the browser support for options objects on event listeners. + * @return Boolean + */ + event_listener_options_supported: function() { + var passivesupported = false, + options, + testeventname = "testpassiveeventoptions"; + + // Options support testing example from: + // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener + + try { + options = Object.defineProperty({}, "passive", { + get: function() { + passivesupported = true; + } + }); + + // We use an event name that is not likely to conflict with any real event. + document.addEventListener(testeventname, options, options); + // We remove the event listener as we have tested the options already. + document.removeEventListener(testeventname, options, options); + } catch(err) { + // It's already false. + passivesupported = false; + } + return passivesupported; + }, + + /** + * Disable Touch Move scrolling + */ + disable_touch_scroll: function() { + if (this.event_listener_options_supported()) { + document.addEventListener('touchmove', this.stop_touch_scroll, {passive: false}); + } + }, + + /** + * Stop Touch Scrolling + * @param {Object} e + */ + stop_touch_scroll: function(e) { + e.stopPropagation(); + e.preventDefault(); } }; diff --git a/mod/assign/feedback/editpdf/yui/build/moodle-assignfeedback_editpdf-editor/moodle-assignfeedback_editpdf-editor-min.js b/mod/assign/feedback/editpdf/yui/build/moodle-assignfeedback_editpdf-editor/moodle-assignfeedback_editpdf-editor-min.js index 827e3d25ece..bb0f77debe2 100644 --- a/mod/assign/feedback/editpdf/yui/build/moodle-assignfeedback_editpdf-editor/moodle-assignfeedback_editpdf-editor-min.js +++ b/mod/assign/feedback/editpdf/yui/build/moodle-assignfeedback_editpdf-editor/moodle-assignfeedback_editpdf-editor-min.js @@ -4,6 +4,6 @@ M.assignfeedback_editpdf.drawable(this.editor),r,i,s;return i=new M.assignfeedba ,this),n.delegate("key",this.callback_handler,"down:13","button",this),this.set("headerText",M.util.get_string("stamppicker","assignfeedback_editpdf")),this.set("bodyContent",n),O.superclass.initializer.call(this,t)},callback_handler:function(t){t.preventDefault();var n=this.get("callback"),r=this.get("context"),i;this.hide(),i=e.bind(n,r,t),i()}},{NAME:A,ATTRS:{stamps:{value:[]},callback:{value:null},context:{value:null}}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.stamppicker=O;var _="Commentmenu",D;D=function(e){D.superclass.constructor.apply(this,[e])},e.extend(D,M.assignfeedback_editpdf.dropdown,{initializer:function(t){var n,r,i,s;s=this.get("comment"),n=e.Node.create('