diff -r 27b0dbaf0ea8 Lib/tkinter/__init__.py --- a/Lib/tkinter/__init__.py Sun Jun 12 00:39:41 2016 +0300 +++ b/Lib/tkinter/__init__.py Sun Jun 12 01:50:14 2016 +0300 @@ -229,6 +229,19 @@ class Event: del state['send_event'] if self.state == 0: del state['state'] + elif isinstance(self.state, int): + flags = state['state'] + mods = ('Shift', 'Lock', 'Control', + 'Alt', 'Mod2', 'Mod3', 'Mod4', 'Mod5', + 'Button1', 'Button2', 'Button3', 'Button4', 'Button5') + s = [] + for i, n in enumerate(mods): + if flags & (1 << i): + s.append(n) + flags = flags & ~((1<< len(mods)) - 1) + if flags or not s: + s.append(str(flags)) + state['state'] = '|'.join(s) if self.delta == 0: del state['delta'] # widget usually is known