homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: IDLE save keyboard shortcut problem
Type: behavior Stage: patch review
Components: IDLE Versions: Python 3.7, Python 3.6
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: terry.reedy Nosy List: Jacob.VB, Saimadhav.Heblikar, dpg, kbk, ned.deily, python-dev, rhettinger, roger.serwy, terry.reedy, westley.martinez
Priority: normal Keywords: easy, patch

Created on 2011年06月22日 17:59 by Jacob.VB, last changed 2022年04月11日 14:57 by admin.

Files
File name Uploaded Description Edit
windows_caps_lock.patch roger.serwy, 2012年04月15日 18:55 review
keybinding-issue12387-v1.diff Saimadhav.Heblikar, 2014年06月12日 11:00 review
Pull Requests
URL Status Linked Edit
PR 32245 open dpg, 2022年04月02日 01:39
Messages (14)
msg138828 - (view) Author: Jacob VB (Jacob.VB) Date: 2011年06月22日 17:59
IDLE (for Python 3.2) fails to save using the ctrl-s keyboard shortcut when caps-lock is enabled, and instead only saves when ctrl-shift-s is pressed.
When caps-lock is disabled, all shortcuts work normally.
msg138842 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2011年06月23日 00:24
(The message I deleted was a duplicate of the original).
Verified with 3.2.0 on WinXP (Jacob, I/O issues, including keyboard, especially need system specified. What is yours? If Windows, this might be Windows-specific.)
With CAPS LOCK on, Cntl-N, Cntl-O, Cntl-P, Alt-M, Alt-C work.
Cntl-S, Cntl-Shift-S, Alt-Shift-S, Cntl-Q do not.
(All of above from File menu). So behavior is variable.
msg138843 - (view) Author: Jacob VB (Jacob.VB) Date: 2011年06月23日 00:35
I'm running Windows 7 Home Premium 64-bit, on an Alienware M17x (a laptop) using the built-in keyboard.
It's definitely possible that the problem is Windows-specific; perhaps it has to do with the fact that when caps lock is on the shift modifier seems to invert the case back to lowercase; although I don't know how it would affect it in that way.
msg158303 - (view) Author: Roger Serwy (roger.serwy) * (Python committer) Date: 2012年04月15日 00:19
I can confirm this issue on Linux.
This issue is caused by not explicitly binding <Control-Key-S> to <<save-window>> in config-keys.def (and in configHandler.py's GetCoreKeys.) Presently, only <Control-key-s> binds to <<save-window>>.
Should all the lowercase bindings without uppercase bindings be changed, or should only a few be changed?
msg158309 - (view) Author: Raymond Hettinger (rhettinger) * (Python committer) Date: 2012年04月15日 03:46
I would like to see them all changed.
msg158312 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2012年04月15日 04:53
I agree; lets be consistently lenient.
msg158354 - (view) Author: Roger Serwy (roger.serwy) * (Python committer) Date: 2012年04月15日 18:55
Attached is a patch to fix the caps-lock issue with Windows key bindings in config-keys.def.
msg158368 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2012年04月15日 20:59
Changes look complete and correct as far as I can tell, except that I have some confusion about the relation of Shift and CapsLock key. For instance, Control-C and Control-Shift-C (using the key labels) both interrupt a loop whether or not CapsLock is on. In all, 4 combinations work even though only 2 are listed.
 interrupt-execution=<Control-Key-c> <Control-Key-C>
However, this pair of specifications
+save-window-as-file=<Control-Shift-Key-S> <Control-Shift-Key-s>
+save-window=<Control-Key-s> <Control-Key-S>
only makes sense to me if 's' and 'S' refer to the 'S' key without and with CapLock on as using Shift is meant to give a different meaning. It appears to split the 4 combinations into 2 pairs that do different things.
msg212611 - (view) Author: Westley Martínez (westley.martinez) * Date: 2014年03月03日 06:38
I know that Tk has individual states for whether or not a key is pressed with Caps Lock or Shift or other modifiers, so maybe there is a way to have the shortcuts ignore Caps Lock entirely.
More info: http://stackoverflow.com/questions/665502/status-of-shift-and-caps-lock-in-python 
msg212612 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2014年03月03日 06:59
See also "Modifier Keys" on the Tk Wiki:
 http://wiki.tcl.tk/28331
There are both deliberate and accidental platform-specific behavior differences among Tk implementations.
msg218776 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014年05月19日 00:51
Reading the Tk Wiki page, it appears that Shift undoes ShiftLock except on Mac, where it does nothing. So there is effectively only ^a and ^A, etc.
Looking as the Get New Keys dialog, the Basic Key Binding Entry pane says "New keys .." plural, but as far as I can tell, only one new key can be entered. Moreover, Control-Key-a and Control-Shift-Key-A are possible, but not Control-Key-A. The latter is only possible with hand entry in the Advanced Key Binding Entry pane. This might be why some functions have a single key binding and some both. Perhaps the dialog should auto-augment Control-Key-x with Control-Key-X, where x is a lowercase letter.
msg220331 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2014年06月12日 05:03
New changeset 55fed3eae14b by Terry Jan Reedy in branch '2.7':
Issue #12387: Add missing upper(lower)case versions of default Windows key
http://hg.python.org/cpython/rev/55fed3eae14b
New changeset 25fd9aeeff91 by Terry Jan Reedy in branch '3.4':
Issue #12387: Add missing upper(lower)case versions of default Windows key
http://hg.python.org/cpython/rev/25fd9aeeff91 
msg220332 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014年06月12日 05:16
I pushed Roger's patch so that the Windows section of config-keys.def is in a consistent state. However, this does not fix the problem for config-extensions.def or user versions of config-keys.def. A) The basic method of the key dialog does not allow entry of proper pairs. B) it is easy to forget to enter both versions when using the advanced method or editing a file directly.
So rather than develop a similar patch for the Unix block, which is always missing the uppercase version of key-bindings, our GSOC student will work on code to add the 'other' version when alpha key-bindings are read. If and when that works, the Unix block will work as is and the Windows block can have removed what will then become duplicates.
msg220338 - (view) Author: Saimadhav Heblikar (Saimadhav.Heblikar) * Date: 2014年06月12日 10:52
Attached patch is an attempt to fix the issue, based on msg220332.
With this patch, and with "IDLE Classic Unix" keybinding selected in IDLE,
actions like cut=<Control-Key-w>, redo=<Alt-Key-z> <Meta-Key-z>, and emac's style actions like open-new-window=<Control-Key-x><Control-Key-n>,
can be performed by just pressing the respective keys, irrespective of CAPS.
I would like to know if this patch is acceptable and whether it performs as expected on all platforms.
History
Date User Action Args
2022年04月11日 14:57:18adminsetgithub: 56596
2022年04月02日 01:39:59dpgsetnosy: + dpg
pull_requests: + pull_request30316
2017年06月30日 00:57:11terry.reedysetassignee: terry.reedy
stage: needs patch -> patch review
versions: + Python 3.6, Python 3.7, - Python 2.7, Python 3.4, Python 3.5
2014年06月12日 11:00:36Saimadhav.Heblikarsetfiles: + keybinding-issue12387-v1.diff
2014年06月12日 10:59:02Saimadhav.Heblikarsetfiles: - keybinding-issue12387-v1.diff
2014年06月12日 10:56:23Saimadhav.Heblikarsetfiles: + keybinding-issue12387-v1.diff
2014年06月12日 10:56:00Saimadhav.Heblikarsetfiles: - keybinding-issue12387-v1.diff
2014年06月12日 10:52:20Saimadhav.Heblikarsetfiles: + keybinding-issue12387-v1.diff

messages: + msg220338
2014年06月12日 05:16:14terry.reedysetversions: + Python 2.7
nosy: + Saimadhav.Heblikar

messages: + msg220332

stage: patch review -> needs patch
2014年06月12日 05:03:59python-devsetnosy: + python-dev
messages: + msg220331
2014年05月19日 00:51:07terry.reedysetmessages: + msg218776
2014年04月01日 01:30:37terry.reedysetversions: + Python 3.4, Python 3.5, - Python 3.2, Python 3.3
2014年03月03日 06:59:32ned.deilysetnosy: + ned.deily
messages: + msg212612
2014年03月03日 06:38:17westley.martinezsetnosy: + westley.martinez
messages: + msg212611
2012年04月15日 20:59:05terry.reedysetmessages: + msg158368
2012年04月15日 18:56:27roger.serwysetstage: patch review
versions: + Python 3.3
2012年04月15日 18:55:50roger.serwysetfiles: + windows_caps_lock.patch
keywords: + patch
messages: + msg158354
2012年04月15日 04:53:39terry.reedysetmessages: + msg158312
2012年04月15日 03:46:30rhettingersetnosy: + rhettinger
messages: + msg158309
2012年04月15日 00:19:19roger.serwysetkeywords: + easy
nosy: + roger.serwy
messages: + msg158303

2011年06月23日 00:35:11Jacob.VBsetmessages: + msg138843
2011年06月23日 00:24:53terry.reedysetmessages: + msg138842
2011年06月23日 00:13:52terry.reedysetmessages: - msg138829
2011年06月23日 00:07:56r.david.murraysetnosy: + terry.reedy, kbk
2011年06月22日 18:01:24Jacob.VBsetmessages: + msg138829
2011年06月22日 18:00:31Jacob.VBsettitle: IDLE save hotkey problem -> IDLE save keyboard shortcut problem
2011年06月22日 17:59:58Jacob.VBcreate

AltStyle によって変換されたページ (->オリジナル) /