-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Fixes issue #1259 - Added modifier key handling for macosx backend #1841
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…up key event handler.
Thanks for submitting this @cimarronm - its great to have your contribution! @mdehoon is our resident OSX backend expert, so it would be good to have his eyes on this change. I'll build this on my own machine this weekend to give it a whirl. @dmcdougall - I know you're also a ObjC wizz - any comments? |
@cimarronm , thanks for the contribution. I'll have a look over the next couple of days. |
This will break builds for older Macs due to the use of |
I've tried this and it seems to work, at least I tried to close the window using a keyboard shortcut and it worked. I had to use rather than , though. It'd be nice to have the keyboard shortcuts consistent with native OS X applications. Having said that, it is consistent with X window manager applications, and with the other backends, so I'd be happy for this to go in. A portable approach to the dictionary literal issue could possibility utilise this. I think that would work with Objective-C pre 2.0. Perhaps @mdehoon would also be able to advise in this regard. |
I'll update my branch to not use objc2.0 literals for the pre 2.0 compiler support...code looks much cleaner with the new literals though ;-) Also, to change to the native OS X feel for closing the window, you can change the keymap.quit to cmd+w (instead of default ctrl+w) in your matplotlibrc. If it makes sense, maybe we could modify the matplotlibrc template to default to cmd+w if the macosx backend is set upon build/install? |
@cimarronm - I think the order of the modifier keys is important: https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/backends/backend_tkagg.py#L460 So if I press I also believe that (at least on the TkAgg backend) pressing For reference see http://matplotlib.org/api/backend_bases_api.html#matplotlib.backend_bases.KeyEvent |
@dmcdougall , @cimarronm : With respect to the dictionary literal issue, it looks like @cimarronm 's updated code solves it. I'd like to try it on Mac OS X 10.5, just to make sure; I can do so in a few days when I have access to that machine. With respect to cmd+w vs. ctrl+w for closing the window, I think that by default the Mac OS X backend should follow the native Mac OS X behavior, not the X windows behavior. |
From memory, does |
@pelson : cmd+w, cmd+q, ctrl+w, ctrl+q do nothing on OSX 10.8 with the current matplotlib. |
@pelson - The order should be correct. Each statement is appending so you would get ctrl+alt+cmd+. I just tested it to print out what I get when I press the modifiers together and get
Should I eliminate the shift modifier? |
Apologies for that - I agree, it all looks good from that perspective. If the key is coming through after being shifted (e.g. we have |
…ncludes shift operation
I tried this on Mac OS X 10.5. It compiles and seems to work fine. |
Fixes issue #1259 - Added modifier key handling for macosx backend
Add modifier key handling to key event handlers for macosx backend. Clean up code to use NS foundation constants for keys and simplified convertKeyEvent selector