some Opera key handling fixes (not perfect yet)
This commit is contained in:
parent
5383a297c2
commit
a2d271677f
3 changed files with 10 additions and 3 deletions
|
|
@ -49,8 +49,14 @@ var KeyBinding = function(element, editor, config) {
|
|||
|
||||
var _self = this;
|
||||
event.addKeyListener(element, function(e) {
|
||||
var hashId = 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0)
|
||||
| (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);
|
||||
// opera on mac swaps ctrl and meta keys
|
||||
if (core.isOpera && core.isMac)
|
||||
var hashId = 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0)
|
||||
| (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0);
|
||||
else
|
||||
var hashId = 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0)
|
||||
| (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);
|
||||
|
||||
var key = _self.keyNames[e.keyCode];
|
||||
|
||||
var commandName = (_self.config.reverse[hashId] || {})[(key
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ exports.isMac = (os == "mac");
|
|||
exports.isLinux = (os == "linux");
|
||||
exports.isIE = ! + "\v1";
|
||||
exports.isGecko = window.controllers && window.navigator.product === "Gecko";
|
||||
exports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == "[object Opera]";
|
||||
|
||||
exports.provide = function(namespace) {
|
||||
var parts = namespace.split(".");
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ exports.addKeyListener = function(el, callback) {
|
|||
});
|
||||
|
||||
// repeated keys are fired as keypress and not keydown events
|
||||
if (core.isMac && core.isGecko) {
|
||||
if (core.isMac && (core.isGecko || core.isOpera)) {
|
||||
exports.addListener(el, "keypress", function(e) {
|
||||
var keyId = e.keyIdentifier || e.keyCode;
|
||||
if (lastDown !== keyId) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue