# HG changeset patch # User Nicholas Jillings # Date 1441894978 -3600 # Node ID 5aaf26e925fb6bf9c58ebb1b83105f8e788622e6 # Parent a8db8084d32af5c01db2de06361db9a4c2d75d04 Fixing APE for Firefox builds diff -r a8db8084d32a -r 5aaf26e925fb ape.js --- a/ape.js Thu Sep 10 13:16:16 2015 +0100 +++ b/ape.js Thu Sep 10 15:22:58 2015 +0100 @@ -239,6 +239,8 @@ canvas.align = "left"; canvas.addEventListener('dragover',function(event){ event.preventDefault(); + event.dataTransfer.effectAllowed = 'none'; + event.dataTransfer.dropEffect = 'copy'; return false; },false); var sliderMargin = document.createAttribute('marginsize'); @@ -452,19 +454,29 @@ this.trackSliderObj.innerHTML = ''+audioObject.id+''; this.trackSliderObj.draggable = true; this.trackSliderObj.ondragend = dragEnd; + + this.trackSliderObj.ondragstart = function(event){ + event.dataTransfer.setData('Text',null); + }; + + this.trackSliderObj.ondrop = function(event) + { + if(event.stopPropagation) {event.stopPropagation();} + return false; + }; // Onclick, switch playback to that track - this.trackSliderObj.onclick = function() { + this.trackSliderObj.onclick = function(event) { // Start the test on first click, that way timings are more accurate. audioEngineContext.play(); if (audioEngineContext.audioObjectsReady) { // Cannot continue to issue play command until audioObjects reported as ready! // Get the track ID from the object ID var element; - if (event.srcElement.nodeName == "SPAN") { - element = event.srcElement.parentNode; + if (event.currentTarget.nodeName == "SPAN") { + element = event.currentTarget.parentNode; } else { - element = event.srcElement; + element = event.currentTarget; } var id = Number(element.attributes['trackIndex'].value); //audioEngineContext.metric.sliderPlayed(id); @@ -506,9 +518,11 @@ var marginSize = Number(slider.attributes['marginsize'].value); var w = slider.style.width; w = Number(w.substr(0,w.length-2)); - var x = ev.x; - x += Math.abs(ev.view.screenLeft); - x = x % ev.view.outerWidth; + var x = ev.screenX; + + x += Math.abs(window.screenX); + x = x % window.outerWidth; + if (x >= marginSize && x < w+marginSize) { this.style.left = (x)+'px'; } else { @@ -519,9 +533,9 @@ } } var time = audioEngineContext.timer.getTestTime(); - var id = Number(ev.srcElement.getAttribute('trackindex')); - audioEngineContext.audioObjects[id].metric.moved(time,convSliderPosToRate(ev.srcElement)); - console.log('slider '+id+' moved to '+convSliderPosToRate(ev.srcElement)+' ('+time+')'); + var id = Number(ev.currentTarget.getAttribute('trackindex')); + audioEngineContext.audioObjects[id].metric.moved(time,convSliderPosToRate(ev.currentTarget)); + console.log('slider '+id+' moved to '+convSliderPosToRate(ev.currentTarget)+' ('+time+')'); } function buttonSubmitClick()