Tkinter on OS X generates excessive event on non-US input sequence

Alexander Uvizhev <[email protected]>
Newsgroups gmane.comp.python.tkinter
Message-ID <[email protected]>
Hi,
I've found that Tkinter on Mac OS X somehow incorrectly works with events when bound sequence hit on non-US keyboard layout.
I use Russian keyboard layout along with English and I'm trying now to arrange Undo/Redo shortcuts to work correctly independent of layout. Under Linux everything works fine from the box. Under OS X it seems like a bug and when I hit <Command-Cyrillic_ya> which is the same physical keys as <Command-z> tkinter sends excessive KeyPress event.
Here is the test code.
================
from tkinter import *

class TkExample(Frame):
    def __init__(self, parent):
        Frame.__init__(self, parent)
        self.pack()
        text = Text(self)
        text.pack()
        text.bind('<KeyPress>', self.on_kp)
        text.bind('<<Undo>>', self.on_undo)

    def on_kp(self, event):
        print('CHAR:', event.char)

    def on_undo(self, event):
        print('UNDO')


if __name__ == '__main__':
    root = Tk()
    TkExample(root)
    root.mainloop()
================

When I run the app and hit <Command-z> I get this output:
CHAR:
UNDO

But if I hit <Command-Cyrillic_ya> I see this:
CHAR:  
CHAR: z
UNDO

Under Linux in both cases I get the same output (1).

Can anyone explain this? Maybe this is not a bug?

-- 
Alexander Uvizhev
[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.