1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/lib-tk/Tkinter.py,v
retrieving revision 1.160.10.2
retrieving revision 1.160.10.3
diff -u -r1.160.10.2 -r1.160.10.3
--- python/python/dist/src/Lib/lib-tk/Tkinter.py 2002/08/23 15:27:52 1.160.10.2
+++ python/python/dist/src/Lib/lib-tk/Tkinter.py 2003/03/29 09:48:12 1.160.10.3
@@ -27,7 +27,7 @@
tk.mainloop()
"""
-__version__ = "$Revision: 1.1 $"
+__version__ = "$Revision: 1.1 $"
import sys
if sys.platform == "win32":
@@ -1024,38 +1024,54 @@
"""Internal function."""
if len(args) != len(self._subst_format): return args
getboolean = self.tk.getboolean
+
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
# Missing: (a, c, d, m, o, v, B, R)
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.num = getint(b)
+ e.num = getint_event(b)
try: e.focus = getboolean(f)
except TclError: pass
- e.height = getint(h)
- e.keycode = getint(k)
- # For Visibility events, event state is a string and
- # not an integer:
- try:
- e.state = getint(s)
- except ValueError:
- e.state = s
- e.time = getint(t)
- e.width = getint(w)
- e.x = getint(x)
- e.y = getint(y)
+ e.height = getint_event(h)
+ e.keycode = getint_event(k)
+ e.state = getint_event(s)
+ e.time = getint_event(t)
+ e.width = getint_event(w)
+ e.x = getint_event(x)
+ e.y = getint_event(y)
e.char = A
try: e.send_event = getboolean(E)
except TclError: pass
e.keysym = K
- e.keysym_num = getint(N)
+ e.keysym_num = getint_event(N)
e.type = T
try:
e.widget = self._nametowidget(W)
except KeyError:
e.widget = W
- e.x_root = getint(X)
- e.y_root = getint(Y)
+ e.x_root = getint_event(X)
+ e.y_root = getint_event(Y)
try:
e.delta = getint(D)
except ValueError:
|