Mercurial > hg > webaudioevaluationtool
changeset 298:5aaf26e925fb Dev_main
Fixing APE for Firefox builds
author | Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk> |
---|---|
date | Thu, 10 Sep 2015 15:22:58 +0100 |
parents | a8db8084d32a |
children | 18a6119854ac |
files | ape.js |
diffstat | 1 files changed, 24 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- 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 = '<span>'+audioObject.id+'</span>'; 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()