aboutsummaryrefslogtreecommitdiff
path: root/src/library_sdl.js
diff options
context:
space:
mode:
authorEhsan Akhgari <ehsan.akhgari@gmail.com>2012-08-30 11:04:15 -0400
committerEhsan Akhgari <ehsan.akhgari@gmail.com>2012-08-30 21:28:30 -0400
commite541e0d9327cc4f84d2f4c0e2b2437861169c4b6 (patch)
tree1f63d5b3dc4193085f1acbbe97c90be0f244ea15 /src/library_sdl.js
parentd071fe295ceda099c7be63ccddae960082cea7b5 (diff)
Two workarounds for Firefox bugs
Diffstat (limited to 'src/library_sdl.js')
-rw-r--r--src/library_sdl.js19
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;