aboutsummaryrefslogtreecommitdiff
path: root/src/library_sdl.js
diff options
context:
space:
mode:
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;