mirror of
https://github.com/python/cpython.git
synced 2025-11-11 19:12:05 +00:00
Will backport to 2.2.
This commit is contained in:
parent
694570efcf
commit
043bbc7da3
1 changed files with 32 additions and 16 deletions
|
|
@ -1035,38 +1035,54 @@ def _substitute(self, *args):
|
||||||
"""Internal function."""
|
"""Internal function."""
|
||||||
if len(args) != len(self._subst_format): return args
|
if len(args) != len(self._subst_format): return args
|
||||||
getboolean = self.tk.getboolean
|
getboolean = self.tk.getboolean
|
||||||
|
|
||||||
getint = int
|
getint = int
|
||||||
|
def getint_event(s):
|
||||||
|
"""Tk changed behavior in 8.4.2, returning "??" rather more often."""
|
||||||
|
try:
|
||||||
|
return int(s)
|
||||||
|
except ValueError:
|
||||||
|
return s
|
||||||
|
|
||||||
nsign, b, f, h, k, s, t, w, x, y, A, E, K, N, W, T, X, Y, D = args
|
nsign, b, f, h, k, s, t, w, x, y, A, E, K, N, W, T, X, Y, D = args
|
||||||
# Missing: (a, c, d, m, o, v, B, R)
|
# Missing: (a, c, d, m, o, v, B, R)
|
||||||
e = Event()
|
e = Event()
|
||||||
|
# serial field: valid vor all events
|
||||||
|
# number of button: ButtonPress and ButtonRelease events only
|
||||||
|
# height field: Configure, ConfigureRequest, Create,
|
||||||
|
# ResizeRequest, and Expose events only
|
||||||
|
# keycode field: KeyPress and KeyRelease events only
|
||||||
|
# time field: "valid for events that contain a time field"
|
||||||
|
# width field: Configure, ConfigureRequest, Create, ResizeRequest,
|
||||||
|
# and Expose events only
|
||||||
|
# x field: "valid for events that contain a x field"
|
||||||
|
# y field: "valid for events that contain a y field"
|
||||||
|
# keysym as decimal: KeyPress and KeyRelease events only
|
||||||
|
# x_root, y_root fields: ButtonPress, ButtonRelease, KeyPress,
|
||||||
|
# KeyRelease,and Motion events
|
||||||
e.serial = getint(nsign)
|
e.serial = getint(nsign)
|
||||||
e.num = getint(b)
|
e.num = getint_event(b)
|
||||||
try: e.focus = getboolean(f)
|
try: e.focus = getboolean(f)
|
||||||
except TclError: pass
|
except TclError: pass
|
||||||
e.height = getint(h)
|
e.height = getint_event(h)
|
||||||
e.keycode = getint(k)
|
e.keycode = getint_event(k)
|
||||||
# For Visibility events, event state is a string and
|
e.state = getint_event(s)
|
||||||
# not an integer:
|
e.time = getint_event(t)
|
||||||
try:
|
e.width = getint_event(w)
|
||||||
e.state = getint(s)
|
e.x = getint_event(x)
|
||||||
except ValueError:
|
e.y = getint_event(y)
|
||||||
e.state = s
|
|
||||||
e.time = getint(t)
|
|
||||||
e.width = getint(w)
|
|
||||||
e.x = getint(x)
|
|
||||||
e.y = getint(y)
|
|
||||||
e.char = A
|
e.char = A
|
||||||
try: e.send_event = getboolean(E)
|
try: e.send_event = getboolean(E)
|
||||||
except TclError: pass
|
except TclError: pass
|
||||||
e.keysym = K
|
e.keysym = K
|
||||||
e.keysym_num = getint(N)
|
e.keysym_num = getint_event(N)
|
||||||
e.type = T
|
e.type = T
|
||||||
try:
|
try:
|
||||||
e.widget = self._nametowidget(W)
|
e.widget = self._nametowidget(W)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
e.widget = W
|
e.widget = W
|
||||||
e.x_root = getint(X)
|
e.x_root = getint_event(X)
|
||||||
e.y_root = getint(Y)
|
e.y_root = getint_event(Y)
|
||||||
try:
|
try:
|
||||||
e.delta = getint(D)
|
e.delta = getint(D)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue