Git Product home page Git Product logo

Comments (9)

RobertWHurst avatar RobertWHurst commented on May 24, 2024

I knew about this already but there is no way to fix it (that I know of). The issue lies with the browser (maybe even the OS). It never send the keyup event to javascript so the engine thinks that the key is still held down.

https://bugs.webkit.org/show_bug.cgi?id=67088

from keyboardjs.

aboutwout avatar aboutwout commented on May 24, 2024

Is it because the Cmd key is used for shortcuts in OSX? If so, is there no way to hijack it?

from keyboardjs.

aboutwout avatar aboutwout commented on May 24, 2024

Might have found something of use. It does require you to cancel the keydown event, so it could cause some issues with other event listeners.

http://stackoverflow.com/questions/902407/how-to-hijack-key-combos-in-javascript

from keyboardjs.

RobertWHurst avatar RobertWHurst commented on May 24, 2024

I wish i could just override by blocking event bubbling but it doesn't work because this bug doesn't live in JS land. Its outside of JavaScripts control. I made a JSFiddle demonstrating this.

http://jsfiddle.net/XghEt/

If you can fix it fork my repo and try it. I will pull your fix. I want this bug gone as mush as you, Its very aggravating for my programmers OCD.

from keyboardjs.

aboutwout avatar aboutwout commented on May 24, 2024

I'll give it a go, though I'm sure you've covered every angle yourself...

from keyboardjs.

RobertWHurst avatar RobertWHurst commented on May 24, 2024

Keep me posted. If you have any questions about the code let me know.

from keyboardjs.

aboutwout avatar aboutwout commented on May 24, 2024

I did figure out a way to at least clear the active key list when the window loses focus (find, save, open, etc...)

window.addEventListener('blur', function(event) {
  if (activeKeys.indexOf('meta') < 0 && activeKeys.indexOf('select') < 0) return;
    activeKeys = [];
    activeBindings = {};
});

This doesn't work for things like Cmd+A, but at least it's something... On the other hand, if you can't get this to work for all cases it might be better to leave things as is for the sake of consistency.

I did however noticed that there is a difference wether you press left or the right Cmd key. The right one has keycode 93 while he left one has keycode 91.

from keyboardjs.

RobertWHurst avatar RobertWHurst commented on May 24, 2024

Yea, I thought about adding that, But its easy enough to do that out side of the library. It'd rather not do that though because it may cause unexpected behavior and confuse programmers.

As for the two meta keys having different keycodes. I know that they do, but I haven't done anything with this yet. If you look in the library keys object there is a key called _91 that is suppose to make 92 an alias to 91.

The moral of the story is that the keyboard api the DOM uses is a piece of s**t, and you can only dress a pig so well.

from keyboardjs.

aboutwout avatar aboutwout commented on May 24, 2024

Well... Let's just close this issue and leave it be.

from keyboardjs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.