Browse Source

Better browser OS detection.

Apparently Firefox on Linux changed the value of navigator.appVersion,
causing our OS detection (used to determine how to interpret different
modifier keys) to fail.

Use navigator.platform instead, which should be more stable.

http://stackoverflow.com/a/19883965/33213
Jesper Dam 11 years ago
parent
commit
230784066c
1 changed files with 3 additions and 3 deletions
  1. 3 3
      include/keyboard.js

+ 3 - 3
include/keyboard.js

@@ -18,13 +18,13 @@ var kbdUtil = (function() {
     };
     };
 
 
     function isMac() {
     function isMac() {
-        return navigator && !!(/macintosh/i).exec(navigator.appVersion);
+        return navigator && !!(/mac/i).exec(navigator.platform);
     }
     }
     function isWindows() {
     function isWindows() {
-        return navigator && !!(/windows/i).exec(navigator.appVersion);
+        return navigator && !!(/win/i).exec(navigator.platform);
     }
     }
     function isLinux() {
     function isLinux() {
-        return navigator && !!(/linux/i).exec(navigator.appVersion);
+        return navigator && !!(/linux/i).exec(navigator.platform);
     }
     }
 
 
     // Return true if a modifier which is not the specified char modifier (and is not shift) is down
     // Return true if a modifier which is not the specified char modifier (and is not shift) is down