diff options
author | Ehsan Akhgari <ehsan.akhgari@gmail.com> | 2012-08-30 11:04:15 -0400 |
---|---|---|
committer | Ehsan Akhgari <ehsan.akhgari@gmail.com> | 2012-08-30 21:28:30 -0400 |
commit | e541e0d9327cc4f84d2f4c0e2b2437861169c4b6 (patch) | |
tree | 1f63d5b3dc4193085f1acbbe97c90be0f244ea15 /src/library_sdl.js | |
parent | d071fe295ceda099c7be63ccddae960082cea7b5 (diff) |
Two workarounds for Firefox bugs
Diffstat (limited to 'src/library_sdl.js')
-rw-r--r-- | src/library_sdl.js | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/library_sdl.js b/src/library_sdl.js index 5dd7783e..7772c19b 100644 --- a/src/library_sdl.js +++ b/src/library_sdl.js @@ -464,8 +464,14 @@ var LibrarySDL = { if (Browser.pointerLock) { // When the pointer is locked, calculate the coordinates // based on the movement of the mouse. - var movementX = Browser.getMovementX(event); - var movementY = Browser.getMovementY(event); + // Workaround for Firefox bug 764498 + if (event.type != 'mousemove' && + ('mozMovementX' in event)) { + var movementX = 0, movementY = 0; + } else { + var movementX = Browser.getMovementX(event); + var movementY = Browser.getMovementY(event); + } var x = SDL.mouseX + movementX; var y = SDL.mouseY + movementY; } else { @@ -1226,8 +1232,13 @@ var LibrarySDL = { if (info.buffer) { var contextCtor = null; if (audio && ('mozSetup' in audio)) { // Audio Data API - audio['mozSetup'](audio.getAttribute("data-numchannels"), audio.getAttribute("data-frequency")); - audio["mozWriteAudio"](info.buffer); + try { + audio['mozSetup'](audio.getAttribute("data-numchannels"), audio.getAttribute("data-frequency")); + audio["mozWriteAudio"](info.buffer); + } catch (e) { + // Workaround for Firefox bug 783052 + // ignore this exception! + } } else if (contextCtor = (window.AudioContext || // WebAudio API window.webkitAudioContext)) { var currentIndex = 0; |