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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
|
This file summarizes all changes made to Tk since version 1.0 was
released on March 13, 1991. Changes that aren't backward compatible
are marked specially.
RCS: @(#) $Id: changes,v 1.43 2000/06/05 23:09:17 ericm Exp $
3/16/91 (bug fix) Modified tkWindow.c to remove Tk's Tcl commands from
the interpreter when the main window is deleted (otherwise there will
be dangling pointers to the non-existent window).
3/16/91 (bug fix) Modified tkColor.c not to free black or white colors:
some X servers get upset at this.
3/18/91 (bug fix) Modified tkShare.c to fix bug causing "DeleteGroup
couldn't find group on shareList" panic.
3/18/91 (bug fix) Several changes to tkListbox.c and tkScrollbar.c to
handle listboxes (and scrollbars) with zero total entries in them.
3/22/91 (bug fix) Fixed a few ='s in tkListbox.c that should be ==.
3/22/91 (bug fix) Fixed error in main.c that caused BadWindow errors
in some cases where wish scripts invoke "destroy .".
3/23/91 (new feature) Added Tk_CancelIdleCall to remove Tk_DoWhenIdle
handler.
3/23/91 (bug fix and new feature) Added -name option to main.c, made
it more clever about choosing name (was always using the name "wish"
on most Unix systems).
3/23/91 (new feature) Added TK_CONFIG_STRING option to Tk_ConfigureWidget,
used it to malloc strings for various widget options that used to be
Tk_Uid's (e.g. button text, message strings, etc.). Eliminates core
leaks when values change in continuous non-repeating fashion.
3/29/91 (new feature) Added Tk_Preserve, Tk_Release, and
Tk_EventuallyFree procedures to help manage widget records and avoid
premature memory free-ing.
4/4/91 (bug fix) Fixed problem in tkWm.c where top-level window geometry
wasn't tracking correctly when wm-induced size change also changed window
position (e.g. menus wouldn't be displayed at the right places).
4/5/91 (new feature) Added "invoke" option to widget command for buttons,
check buttons, and radio buttons.
4/5/91 (new feature) Added "unpack" option to "pack" command.
4/5/91 (bug fix) Changed tkPack.c to use new Tk_Preserve code and be
more careful about window deletions that occur while repacking is in
progress.
4/6/91 (bug fix) Major overhaul of deletion code in all widgets to use
Tk_Preserve and Tk_Release. Should fix many problems.
4/6/91 (bug fix) Changed "winfo children" to generate correct lists
when child names have embedded spaces.
4/6/91 (new feature) Added "screenheight" and "screenwidth" options to
"winfo".
4/18/91 (bug fix) Binding mechanism didn't correctly handle very long
%-substitutions in commands (e.g. long path names) and caused memory
to be overwritten. Modified tkBind.c to fix.
---------------------- Release 1.1, 4/18/91 -------------------------
4/19/91 (bug fix) Inconsistent ICCCM handling of coordinates of reparented
windows causes windows to gradually walk south when moved or resized.
Fixed tkWm.c to patch around the problem.
---------------------- Release 1.2, 4/24/91 -------------------------
4/26/91 (new feature) Added -geometry and -display switches to wish.
Also wrote wish manual entry.
5/3/91 (bug fix) Fixed bug in tkListbox.c that caused garbage to appear
at right edge of window when strings were to large to fit in window.
5/3/91 (bug fix) Fixed bug in tkListbox.c where topIndex wasn't getting
updated when elements were deleted: tended to cause errors in
communication with scrollbars.
5/16/91 (bug fix) Fixed bug in tk3d.c, which caused core dumps when
consecutive points in a polygon were the same (happened with some
configurations of radio buttons, for example).
5/16/91 (bug fix) Fixed main.c to allow stdin to be redirected.
6/1/91 (bug fix) Make sure that pointers are never used after being
freed.
6/15/91 (bug fix) Fixed bug in tkBind.c that caused current binding
values to not always be printed correctly.
6/15/91 (bug fix) Make sure that interpreters are always unregistered
when their main windows are deleted, and make wish delete the main
window before exiting.
8/21/91 (misfeature correction) Automatically set source of window
position to "user" in "wm geometry" command, unless it has been
explicitly set to "program".
9/5/91 (bug fix) Modified option code to accept '#' as a comment
character in .Xdefaults files, in addition to '!'.
9/10/91 (misfeature correction) Changed binding mechanism so that
numeric %-sequences are output in decimal instead of hex.
9/19/91 (bug fix) Fixed bug in Tk_DoOneEvent(1) where it wasn't
checking files and X connections properly so it missed events.
10/6/91 (new feature) Reorganized tkBind.c to provide generic "binding
table" structure, which can be used to create bindings on items in
canvases as well as windows.
10/6/91 (new feature) Upgraded buttons and menus to use new tracing
code in Tcl 6.0. Allows radio buttons and check buttons to both set
and clear themselves when associated variable changes.
10/17/91 (bug fix) Fixed 2 bugs in listboxes: accidentally advanced the
selection when new entries were inserted in the listbox after the location
of the selected item(s), and goofed up on redisplay if selected item
was deleted and then selection was immediately lost.
10/27/91 (bug fix) "pack unpack" wasn't telling Tk that it no longer
manages window; this led to core dumps in some situations.
10/31/91 (reorganization) Renamed manual entries so that they are no
more than 14 characters in length.
10/31/91 (reorganization) Changed tk.h and tkInt.h so that tkInt.h
doesn't needed to be included by tk.h.
11/3/91 (portability improvement) Eliminated use of "class" as a variable
name, since it's a reserved word in C++.
11/7/91 (reorganization) Many changes to upgrade for Tcl 6.1 including
use of Tcl hash tables instead of separate "Hash_" module. The "lib"
subdirectory is no longer needed in Tk.
---------------------- Release 1.3, 11/7/91 -------------------------
11/24/91 (bug fix) Fixed bug causing occasional errors if existing bindings
are modified (FindSequence in tkBind.c forget to set *maskPtr).
11/24/91 (bug fix) Used wrong hash table in Tk_GetColorByValue. Could
cause new entries to get created unnecessarily.
12/2/91 (bug fix) Changed "bind" code to put backslashes in front of
special characters (e.g. [ or \) that appear in %-replacements, so that
they can be parsed cleanly.
12/10/91 (bug fix) Manual entries had first lines that caused "man" program
to try weird preprocessor. Added blank comment lines to fix problem.
1/2/92 (documentation cleanup) Changed manual entries for Tk_GetBitmap
and the like to make it more clear that the argument must be a Tk_Uid
and not a string.
1/2/92 (bug fix) Fixed problem where scrollbars that were very short or
very narrow (too small to hold both arrows) could cause negative values
in calls to XClearArea, which crashed some servers.
1/2/92 (bug fix) Fixed bug in TkMeasureChars occurring when maxChars
is 0. Occasionally affected things like message window geometry.
1/3/92 (new feature) Added procedures Tk_GetJustify, Tk_GetAnchor,
Tk_GetCapStyle, and Tk_GetJoinStyle, plus support for these things
in Tk_ConfigureWidget.
---------------------- Release 1.4, 1/10/92 -------------------------
1/12/92 (bug fix) TkMenubutton.c wasn't cleaning up mbPtr->varName
properly during menubutton cleanup if an error occurred during
menubutton creation.
1/19/92 (bug fix) Fixed off-by-one bug in tkListbox.c that caused
scrollbars to display a slider that was too large.
2/10/92 (bug fix) Tk_CreateFileHandler didn't correctly handle case
where new mask was specified for existing handler.
2/13/92 (bug fix) Tk_DeleteAllBindings wasn't correctly removing
bindings from the pattern table: only did the removal for the
first pattern in a pattern list.
2/15/92 (new feature) Added procedures Tk_DefineBitmap and
Tk_SizeOfBitmap. Tk_GetBitmapFromData is now considered obsolete
and probably shouldn't be used anymore. Tk_GetBitmapFromData
is now implemented by calling Tk_DefineBitmap and Tk_GetBitmap.
2/15/92 (new feature) Added "curselection" and "select clear" options
to widget command for listboxes.
2/15/92 (new feature) Added Tk_3DBorderColor procedure.
2/17/92 (relaxed limitations) Changed scrollbars so they no longer limit
the slider position to lie within the object's range: can scroll off the
end of an object, if the object permits it. Changed listboxes and
entries to explicitly prevent viewing off the ends. Also relaxed
listbox index checks so that out-of-range indices are automatically
adjust to fit within the listbox range.
2/19/92 (bug fix) tkWindow.c tended to leave half-created windows around
if a new window's name was found to be in use already. Fixed to clean
them up.
2/22/92 (new feature) Added -anchor, -bitmap, -height, -textvariable,
-width options to labels, buttons, check buttons, menu buttons, and radio
buttons. This means that (a) size can be controlled better, (b) bitmaps
can be displayed in any buttons, (c) the position of the text within the
button can be controlled, and (d) a button can be made to display the value
of a variable, continuously updating itself. Also changed -selector option
so that if it's specified as an empty string then no selector is drawn
for the button.
2/22/92 (new feature) Changed menus to support bitmaps in menu entries:
added new -bitmap option for entries.
2/26/92 (bug fix) "after" command, when invoked with just one argument,
called Tk_Sleep rather than registering a timer handler and looping on
Tk_DoOneEvent. As a result, it caused the application to become non-
responsive to X events during the sleep. Changed to use a Tk_DoOneEvent
loop so that it is responsive.
2/26/92 (bug fix) Tk's main program didn't map the main window until
after the startup script returned. Changed to map the window as a
do-when-idle handler, so that scripts can cause the window to be
mapped immediately with a call to "update" or "after".
2/28/92 (bug fix) "wm withdraw" wasn't working if invoked before window
was originally mapped: window got mapped anyway. Fixed so that the
window doesn't get mapped as long as it's withdrawn.
2/29/92 (new feature) Can use "focus none" to clear input focus.
2/29/92 (bug fix) Fixed tkEvent.c to generate SubstructureNotify events
properly. These weren't being generated previously.
2/29/92 (bug fix) Fixed entries so that newline characters can be properly
displayed (as `\x0a'). Had to change interface to TkDisplayChars in order
to do this (added flags argument).
2/29/92 (bug fix) Change Tk not to update size and position of top-level
windows directly during calls like Tk_ResizeWindow. Instead, wait until
actual event is received. This makes updates happen at same time as
callbacks.
3/6/92 (bug fix) TkMenubutton.c was dumping core when a menubutton was
pressed at a time when there was no associated menu for the button.
3/6/92 (new feature) Added Tk script library directory with official
Tk initialization file "tk.tcl". Other procedures used by Tk are in
other files. Tk procedures and variables all have names starting
with "tk_". Also added Wish startup script "wish.tcl", which sources
both the Tk and Tcl startup scripts. This means that things like
auto-loading and abbreviation expansion are now available in wish.
Added new variables tk_library, tk_priv, and tk_version.
3/6/92 (new feature) It's now possible to set bindings for whole
classes by using the class name in the bind command. For example,
"bind Button <Enter> {puts stdout Hi!}" will cause a message to be
printed whenever any mouse button is entered. Can also use "all"
to set bindings for all widgets. Widget-specific bindings override
class bindings which override "all" bindings.
3/6/92 (reorganization) Changed buttons (all flavors) and listboxes to
eliminate all hard-wired behavior. Instead, default behavior is set
by class bindings in tk.tcl. Also set up class bindings for menus,
menubuttons, and entries, which previously had no default behavior at
all. Scrollbars and scales still have hard-wired behavior that can't
be overridden.
3/7/92 (look-and-feel change) Changed listboxes and entries and menus
to use button 2 for scanning instead of button 3. This is more consistent
with the official Motif use of button 2 for dragging.
3/10/92 (new features) Added more options to "winfo" command: screencells,
screendepth, screenmmheight, screenmmwidth, and screenvisual.
3/13/92 (bug fix) Event sharing mechanism (tkShare.c) wasn't checking
to see whether window was mapped before sharing events with it.
3/16/92 (bug fix) Tk_SetInternalBorderWidth was passing wrong window to
geometry-management procedures, causing core-dumps when menu buttons
had their border widths changed.
3/16/92 (bug fix) Menus were setting their geometry directory rather
than using Tk_GeometryRequest mechanism.
3/17/92 (new feature) Added -cursor option to all widgets to set the
active cursor for the widget. Also added TK_CONFIG_ACTIVE_CURSOR
configure type.
3/18/92 (new feature) Implemented generalized screen coordinates to
allow resolution-independent specification in many cases (but pixel-
based coordinates are still OK). Added Tk_GetScreenMM(),
Tk_GetPixels(), new configure types TK_CONFIG_SCREEN_MM and
TK_CONFIG_PIXELS. Changed widgets to use this new configure types
wherever possible (a few of the more complex cases still haven't
been taken care of yet). Added "pixels" and "fpixels" options to
"winfo" command.
3/18/92 (new feature) First cut at canvas widgets is done and part of
the official Tk now. Canvases display text and structured graphics,
and allow you to bind commands to events related to the text and
graphics.
3/21/92 (new feature) Added new "place" command. It implements a
new geometry manager that provides fixed placement, rubber-sheet
placement, and combinations of the two. Eliminated the commands
"move", "resize", and "map" that were provided by main.c but never
officially supported; the placer provides all of this functionality.
3/23/92 (bug fix) Fixed bug in tkWm.c where top-level windows were
occasionally not being given the right size. The problem occurred
when a string of resizes happened all in a row (such as deleting all
the windows in an application and then recreating them).
3/23/92 (new feature) Added Tk_CoordsToWindow procedure and
"winfo containing" command. These may be used to locate the window
containing a given point.
3/28/92 (new feature) Added "-exportselection" option to listboxes,
so that listbox selection need not necessarily be the X selection.
4/12/92 (bug fix) Changed menu buttons to store name of menubutton
in the associated variable, rather than the name of the menu. This
is necessary in order to allow several menu buttons to share the
same menu.
*** POTENTIAL INCOMPATIBILITY ***
4/12/92 (bug fix) Fixed core dump that occurred in tkError.c when
removing the first error record from the error list.
4/15/92 (bug fix) Fixed bug in tkBind.c that prevented <KeyPress-1>
event specifications from being processed correctly: the "1" was
treated as a button name rather than a keysym.
4/18/92 (new feature) Added Tk_DefineCursor and Tk_UndefineCursor
procedures.
4/18/92 (new feature) Major revision to listboxes. Can now scroll and
scan in both x and y, plus -exportselection option allows selection not
to be exported. The "view" widget command has been replaced by "xview"
and "yview", and the "scan" widget command has a new syntax.
*** POTENTIAL INCOMPATIBILITY ***
4/18/92 (new feature) Added -exportselection option to entries, so you
can select whether you want the entry selection to be the X selection
or not.
4/24/92 (new features) Added TK_CONFIG_CUSTOM type to Tk_ConfigureWidget,
plus added new flags TK_CONFIG_NULL_OK, TK_CONFIG_DONT_SET_DEFAULT,
and TK_CONFIG_OPTION_SPECIFIED. Several other new types, such as
TK_CONFIG_CAP_STYLE, were also added as part of implementing canvases.
4/29/92 (bug fix) Changed "-selector" default for menus to have separate
values for mono and color.
4/30/92 (bug fix) Fixed bug in tkListbox.c where it occasionally generated
bogus scroll commands (last index less than first).
4/30/92 (reorganization) Moved demos directory to "library/demos".
---------------------- Release 2.0, 5/1/92 -------------------------
5/2/92 (bug fix) Fixed problem in tkListbox.c where it was doing too many
redisplays after repeated insertions. Also reduced number of invocations
of scrollbar commands.
5/7/92 (portability improvement) Changed main.c not to use TK_EXCEPTION
flag; it isn't needed and it causes problems on some systems.
5/9/92 (bug fix) Plugged core leaks in tkListbox.c and tkBind.c
5/9/92 (bug fix) TkBind.c was accidentally deleting bindings during
attempts to print non-existent bindings.
5/11/92 (bug fix) Maximum name length for applications (name used in
"send" commands) was too short (only 20); increased to 1000. Also
fixed bug related to over-long names that caused core dumps.
5/13/92 (bug fix) tkShare.c was using a dangling pointer if a share
group was deleted as a side-effect of a shared event.
5/13/92 (bug fix) Various initialization and core leak problems in
tkGC.c, tkSend.c, tkMenu.c, tkEvent.c, tkCanvas.c, tkCanvPoly.c,
tkCanvLine.c, tkListbox.c, tkEntry.c.
5/13/92 (bug fix) Empty entries could be scanned off the left edge,
displaying a garbage character.
5/13/92 (bug fix) Fixed a few problems with window manager interactions,
such as tendency for windows to spontaneously shrink in size. By no
means are all of the problems fixed, though.
5/13/92 (performance optimization) Changed Tk_GeometryRequest not to
invoke geometry manager unless requested size has changed.
---------------------- Release 2.1, 5/14/92 -------------------------
5/1/92 (new features) Added flags like TK_IDLE_EVENTS to Tk_DoWhenIdle,
plus added "idletasks" option to "update" command. Tk_DoWhenIdle arguments
look different now, but the change should be upward-compatible.
5/17/92 (new feature/bug fix) Added support for VisibilityNotify events
to the "bind" command. For some reason they weren't supported previously.
5/17/92 (new feature) Added "tkwait" command.
5/17/92 (new feature) Added "grab" command.
5/17/92 (new feature) Added "-width" option to messages. Also changed
messages to use the computed (i.e. desired) line length when displaying,
not the actual width of the window.
5/17/92 (bug fixes) Did some more fiddling with tkWm.c in the hopes
of improving window manager interactions. Now there won't be more than
one configure request outstanding to the wm at a time.
5/17/92 (bug fix) Arrowheads on canvas lines weren't being translated
or scaled correctly.
5/20/92 (bug fix) Page-mode scrolling didn't work correctly for canvases
(wrong windowUnits was passed to scrollbars).
5/20/92 (bug fix) Changed scrollbars not to lose highlight when pointer
leaves window with button down. Also changed redisplay to double-buffer
for smoother redraws.
5/21/92 (new feature) Added "gray50" and "gray25" as predefined bitmaps.
5/22/92 (new feature) Buttons can now be disabled using the "-state" and
"-disabledforeground configuration options. The "activate" and "deactivate"
widget commands for buttons are now obsolete and will go away soon.
Please change Tcl scripts not to use them.
5/23/92 (new feature) Entries can now be disabled using the "-state"
config option. Also improved class bindings for entries to keep the
cursor visible in the window when operations occur. Also made slight
improvements in the way redisplay is done.
5/23/92 (new feature) Added "-textvariable" option to entries so that
the text in an entry can be tied to the value of a global variable in
a fashion similar to buttons.
5/27/92 (new feature) Added "-textvariable" and "-anchor" options to
messages.
5/28/92 (new feature) Added "-padx" and "-pady" and "-underline" options
to menubuttons.
5/28/92 (feature change) Changed "-width" and "-height" options on
all flavors of buttons and menubuttons so that they are orthogonal
to "-padx" and "-pady". It used to be that -width overrode -padx
(no padding). Now they accumulate.
5/29/92 (new feature) Added "-disabledforeground" option to menus and
all flavors of buttons (can specify color for disabled things rather
than just using stipple to gray out).
5/29/92 (new features) Added many new options to menu entries:
-activebackground, -background, -font, -state, -underline. The
"disable" and "enable" widget commands for menus are now obsolete
and will go away soon. Please change Tcl scripts not to use them.
5/29/92 (new features) Added "atom" and "atomname" options to "winfo"
command.
5/29/92 (new feature) Wrote tk_listboxSingleSelect procedure, which
can be used to change listbox behavior so that only a single item is
selected at once.
6/1/92 (new feature) Added new modifier names "Meta" and "Alt" for
"bind" command.
6/3/92 (new feature) Added "winfo toplevel" command.
6/3/92 (new feature) Made several changes for greater Motif compliance,
including:
- menu retention if you click and release in the menu button,
- keyboard traversal of menus (see traversal.man)
- no widget flashing if you set $tk_strictMotif to 1
6/15/92 (bug fix) Fixed problem in tkBind.c where command string for a
binding could get reallocated while the command was being executed (e.g.
bindings that delete or change themselves).
6/15/92 (bug fix) Don't allow "tabWidth" field to become zero in tkFont.c:
can cause core dumps for fonts that don't enough information to compute
tab widths.
6/19/92 (bug fix) Fixed bug in binding mechanism that caused structure-
related events to be reported both to the correct window and its parent.
7/14/92 (bug fix) Changed tkColor.c not to free colors for visual types
StaticGray or StaticColor.
7/15/92 (new feature) Text widgets now exist. They display any number of
lines of text with a variety of display formats, and include hypertext
facilities. See the manual page for details.
7/20/92 (bug fix) If a top-level window was put in the iconic state to
begin with, it could be deiconified with "wm deiconify .foo" until it had
first been deiconified by hand from the window manager. Tk was getting
confused and thought the window was mapped when it wasn't.
7/29/92 (bug fix) Don't permit rectangles or ovals to have zero-sized
dimensions. Round up to at least one pixel.
7/29/92 (new features) Major upgrade to canvases:
- new item types: arc, window, bitmap
- added Bezier spline support for lines and polygons
- rectangles and ovals now center their outlines on the shape,
rather than drawing them entirely inside the shape
- new "coords" and "bbox" widget commands
- new "-tags" option for all item types.
- new "-confine" option to prevent scrolling off edge of canvas.
8/6/92 (new feature) Added "-width" and "-height" options to frames.
The "-geometry" option is now obsolete and should be removed from Tcl
scripts: it may go away in the future.
8/7/92 (bug fix) Error messages in Tk_ParseArgv were sometimes including
the option name where they should have included its value.
---------------------- Release 2.2, 8/7/92 -------------------------
8/7/92 (bug fix) Changed tkCanvas.c to be more conservative in the area
it passes to XCopyArea.
8/8/92 (bug fix) Fixed bug in tkTextDisp.c that sometimes caused core
dumps when text views changed (e.g. typing return on last line of screen).
8/8/92 (bug fix) Fixed bug in menu.tcl that caused errors when using
keyboard to traverse over separator menu entries.
8/10/92 (bug fix) Changed to use OPEN_MAX instead of MAX_FD to compute
maximum # of open files.
8/10/92 (bug fix) Canvases weren't updating scrollbars on window size
changes. They also weren't recentering canvases on window size changes.
8/10/92 (bug fix) There were still a few places where commands were being
invoked at local level instead of global level (e.g. commands associated
with buttons and menu entries).
8/10/92 (bug fix) TkBind.c used to ignore explicit shift modifiers for
all keys (i.e. <Shift-Tab> was treated the same as <Tab>). Modified to
allow explicit request for shift modifier, like <Shift-Tab>.
8/13/92 (feature change) Changed default fonts to request "Adobe" fonts
explicitly.
8/16/92 (bug fixes) Modified tkCanvArc.c and tkTrig.c to increase slightly
the bounding boxes for arcs, in order to make sure that proper redisplay
occurs when arcs are moved (little turds were getting left behind).
8/16/92 (bug fix) Modified tkCanvas.c not to redraw at all if the redisplay
area is off the screen. Also, only do a background clear for the portion
of the redraw area that is on-screen. Also, reduced size of off-screen
pixmaps used for redisplaying, which speeds up redisplay in some cases.
8/19/92 (bug fix) Canvases that were taller than wide were not being
redisplayed properly.
8/20/92 (new feature) Added Tk_CreateGenericHandler procedure for trapping
all X events (useful for tracing, watching non-Tk windows, etc.).
8/21/92 (bug fix) Widgets weren't always being notified when they got
the focus back again (the problem had to do with grabs and menus in
particular).
8/21/92 (new feature) Added "-state" option to scale widgets.
8/22/92 (new feature) Changed tkBitmap.c to allow tilde-substitution
to occur in bitmap file names.
---------------------- Release 2.3, 8/24/92 -------------------------
8/27/92 (bug fix) Changes to -activebackground and -activeforeground options
for menubuttons were being lost.
8/27/92 (bug fix) Entries were selecting last character when a B1-drag
occurred past the right edge of the text.
8/28/92 (bug fix) Fixed bug in canvases where a grab during a button
press caused the canvas state to lock up so that it didn't select a
new current item.
9/7/92 (bug fix) Changed tkMenu.c to accept numerical menu indices that
are out of range; now it just rounds them off to the nearest existing
entry.
9/7/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps when
invoking "yview -pickplace" widget command on texts that are too small
to hold any lines at all.
9/11/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps
when adding tags to non-existent lines.
9/11/92 (bug fix) Line items in canvases didn't permit an empty fill
color (i.e. couldn't make them transparent).
9/14/92 (reorganization) Changed manual entries to use .1, .3, and .n
extensions. Added "install" target to Makefile to suggest how Tk should
be installed.
9/16/92 (bug fix) Changed tkSend.c to always specify the root window of
screen 0 rather than using DefaultRootWindow. DefaultRootWindow doesn't
always go to screen 0 on displays with multiple screens, which can result
in send's not being possible between the screens.
9/18/92 (new feature) Added three new options to "wm" command: "protocol",
"client", and "command". These provide support for window manager protocols
such as WM_DELETE_WINDOW and WM_TAKE_FOCUS, plus support for the
WM_CLIENT_MACHINE and WM_COMMAND properties.
9/30/92 (new feature) Implemented color model support, including
"tk colormodel" command and Tk_GetColorModel and Tk_SetColorModel
procedures. These allow you to force mono operation even on a color
display. Also changed color allocation not to give errors when colors
run out, but just to switch to a mono color model.
10/1/92 (bug fixes) Fixed two bugs in tkTextBTree.c that caused core dumps
during text deletion.
10/5/92 (bug work-around) Changed tkColor.c to ignore errors when freeing
colors. This is needed to work around improper reference count management
for colormap entries under X11/NeWS.
10/7/92 (new feature) Added support for different visual types, including
procedures Tk_SetWindowVisual and Tk_SetWindowColormap, plus macros
Tk_Visual, Tk_Depth, and Tk_Colormap. The code for this was contributed
by Paul Mackerras.
10/7/92 (new feature) Added Tk_IsTopLevel macro.
10/12/92 (bug fix) Fixed bug in tk.tcl that caused torn-off menus with
cascaded children not to track mouse motion correctly (the cascade
switched in response to mouse motions within the cascaded child).
10/12/92 (new feature) Major changes to focus handling:
(a) Tk watches FocusIn and FocusOut events for focus changes, not Enter
and Leave, so it will work better with explicit-focus-model window
managers (e.g. mwm in default mode).
(b) Tk generates FocusIn and FocusOut events for the focus window now.
The old procedural interface (via Tk_CreateFocusHandler) is obsolete
and is no longer used inside Tk. It is still supported for
compatibility, but won't be for long. You should change your code
to use FocusIn and FocusOut events instead.
(c) The model for FocusIn and FocusOut events is different than the
one described in Xlib documentation. See the "focus" manual entry
for details.
(d) If there is no input focus then keyboard events are discarded. They
used to be directed to the mouse pointer window, although this wasn't
documented. The focus now defaults to the root window.
*** POTENTIAL INCOMPATIBILITY ***
10/15/92 (bug fix) Fixed text items in canvases where they didn't
display the insertion cursor if the item had no characters in it.
10/26/92 (bug fix) Fixed bug in tkSelect.c that occasionally caused
BadWindow X protocol errors when retrieving the selection. Tk wasn't
making sure that a window existed before using it to retrieve the
selection.
10/30/92 (feature change) Changed canvases so that if the scroll region
is smaller than the window and -confine is on, the scroll region isn't
forced to be centered in the window; it can be anywhere that meets the
confinement restrictions.
11/2/92 (new feature) Added "winfo exists" command.
11/5/92 (new feature) Changed DoWhenIdle handlers so that if a new
when-idle handler is created as a side-effect of another when-idle
handler, the new handler isn't invoked until Tk has first checked
for other events to process.
11/6/92 (bug fixes, new features) Major overhaul of window manager
interface:
(a) Tk should now work with virtual-root window managers;
(b) windows will now place more accurately on the screen and stay where
they're supposed to;
(c) size changes handled more reliably;
(d) code now works robustly in the face of withdrawals followed
immediately by deiconifications.
(e) Added new procedure Tk_GetVRootInfo and new options to "winfo" command:
vrootx, vrooty, vrootwidth, vrootheight.
(f) Added "overrideredirect" option to "wm".
(g) Fixed bug where change in width-only via "wm geom" didn't always work
(min and max window sizes weren't being set properly for the wm).
11/6/92 (bug fixes) Modified menus so that they work correctly with
virtual root window managers. Also fixed bug where menus didn't move
along with their associated windows, so that the menu popped up at
the old location of the window rather than its new location.
11/9/92 (new constraint) Made it illegal to give windows names that
start with upper-case letters, since such names will goof up the
option database by appearing to be classes rather than names.
*** POTENTIAL INCOMPATIBILITY ***
11/10/92 (new feature) Added Postscript output to canvases.
11/13/92 (bug fix) Changed default for maximum size passed to window
manager from 1000000 (which causes some wm's to make windows too large
when "maximized") to the size of the display.
11/14/92 (feature change) Major overhaul of menubuttons and pull-down
menus. Removed event-sharing code, including Tk_ShareEvents and
Tk_UnshareEvents. The -variable option for menubuttons has been
removed,and the "post" and "unpost" widget commands for menubuttons
no longer exist. The "post" widget command for menus no longer
allows a group option. The procedure tk_menus has been replaced
with a new procedure, tk_menuBar, which has a slightly different
interface.
*** POTENTIAL INCOMPATIBILITY ***
11/20/92 (new features, feature changes) Major overhaul of grab
mechanism to produce more correct event streams. Also changed Tcl
commands to require explicit window for grab releases (makes it
possible for grabs to work on multiple displays simultaneously).
The old "grab none" command no longer exists, but new options
have been added: "current", "release", "set", and "status".
*** POTENTIAL INCOMPATIBILITY ***
11/20/92 (new feature) Use TK_LIBRARY environment variable to set library
directory location, if it is defined. Otherwise fall back on usual
compiled-in value.
11/25/92 (bug fix) "wm grid" command was using wrong window.
11/29/92 (bug fix) Fixed core dump that occurred when trying to use
placer on top-level windows: return error instead.
11/29/92 (bug fix) Selection retrieval wasn't making sure that the window
on whose behalf selection is being retrieved actually exists.
12/3/92 (new feature) Added support for Mode_switch key to support the
full ISO character set. Also added event handlers for MappingNotify
events so that Tk updates itself in response to keycode and modifier
changes.
12/6/92 (bug fix) Ignore recursive attempts to destroy window.
12/9/92 (new demos) Added "tcolor" and "rmt" demos.
12/10/92 (new features) Added "yposition" widget command for menus,
changed "delete" widget command to take an optional second index,
and changed -command option for cascade entries so that it is
invoked when the entry is activated rather than when it is invoked.
*** POTENTIAL INCOMPATIBILITY ***
12/12/92 (implementation change) Changed the procedures Tk_FreeBitmap,
Tk_NameOfBitmap, Tk_SizeOfBitmap, Tk_FreeCursor, Tk_NameOfCursor, and
Tk_FreeGC to require an addition Display argument. This is needed for
Tk to function correctly when an application has windows on multiple
displays.
*** POTENTIAL INCOMPATIBILITY ***
12/12/92 (new feature) Started creating a test suite. Right now it
only has a few tests.
12/12/92 (new feature) Modified the packer so that a window can be
packed in descendants of its parent (used to be restricted to the
parent alone). This makes it possible to hide extra windows used
for geometry management. Also, can use generalized screen distances
in the "pack" command.
12/16/92 (feature change) Boolean options such as -exportselection now
print as 0/1 rather than true/false (both the default and current values
print this way). This makes it easier to use these values in expressions.
*** POTENTIAL INCOMPATIBILITY ***
12/16/92 (name change) The classes "RadioButton" and "CheckButton" have
been renamed "Radiobutton" and "Checkbutton" for consistency. From now
on widget class names will have exactly one capital letter.
*** POTENTIAL INCOMPATIBILITY ***
12/16/92 (new feature) Added -setgrid option to listboxes.
12/16/92 (new feature) The "destroy" command, and the "delete" widget
command for canvases, now accept any number of arguments, including
zero.
12/16/92 (new feature) Changed internal TkBindError procedure to
Tk_BackgroundError and exported it to Tk clients.
12/16/92 (option name change) Changed the place command's "dependents"
option to "slaves" for better consistency with documentation.
*** POTENTIAL INCOMPATIBILITY ***
12/16/92 (name changes) Renamed the "cursor*" options in entries and
canvases to "insert*". Also renamed the "cursor" index to "insert" and
the "cursor" widget command to "icursor". This was done to avoid
confusion between the mouse cursor and the insertion cursor.
*** POTENTIAL INCOMPATIBILITY ***
---------------------- Release 3.0, 12/17/92 -------------------------
12/17/92 (bug fix) Fixed dangling-pointer bug in canvases that occurred
if a <LeaveNotify> binding deleted the current item.
12/18/92 (bug fix) Core dump occurred if "wm" invoked with no arguments.
Also, tkWm.c wasn't properly setting WM_CLASS property on application
startup.
12/18/92 (incorrect documentation) Updated manual entries for Tk_FreeGC,
Tk_FreeCursor, and Tk_FreeBitmap to reflect new interface that requires
"display" argument.
12/18/92 (missing documentation) Added documentation for the canvas
"postscript" command, which was missing in the 3.0 release.
12/21/92 (bug fixes) There were lots of problems with the new installation
targets in the Makefiles, such as using "cp -f" and not installing
prolog.ps. Made several other miscellaneous improvements to Makefile.
12/21/92 (bug fix) Arrowheads on canvas line items weren't moving properly
after coordinate changes made with the "coords" widget command.
12/21/92 (bug fix) If top-level window was initially withdrawn, couldn't
ever deiconify it again.
12/21/92 (bug fix) Double-button event sequences didn't always trigger
properly when grabs were in effect.
12/22/92 (bug fix) The packer didn't display any top or bottom windows
after a left or right expanded window, and vice versa. Also made the
distribution of space among expanded windows more even.
12/28/92 (new features) Several improvements to selection:
(a) Added procedures Tk_ClearSelection and Tk_DeleteSelHandler.
(b) Added "clear" and "own" options to "selection" command, extended
"handle" option to delete handlers.
(c) Error returns from "selection handle" scripts are now turned into
selection retrieval errors ("no such selection") rather than an
empty selection.
(d) Tk responds automatically for targets APPLICATION (name of application,
so you can "send" to it) and WINDOW_NAME (name of window within
application.
(e) Added test file "select.test" to test suite.
12/28/92 (bug fix) Fixed problem with flashing menus that occurred
because menu.tcl was willing to unpost and then immediately repost
the same menu.
1/6/93 (bug fix) Test for UnmapNotify events in tkPack.c used = instead
of ==.
1/21/93 (bug fix) Changed many widgets to eliminate use of
DefaultVisualofScreen, DefaultColormap, etc. and use the visuals
and colormaps for the actual windows instead. Also changed to
inherit colormaps and windows from parent by default.
1/21/93 (new features) Added new winfo options "cells", "depth", and
"visual".
1/23/93 (bug fix) Fixed problem with text display that could result
in negative XCopyArea heights being sent to X server. This causes some
servers (e.g. some versions of OpenWindows) to crash.
1/25/93 (new feature) Added -postcommand option to menus, so that menus
can be reconfigured before each posting.
1/29/93 (feature change) Changed %X and %Y in bindings so that they
refer to the virtual root rather than the true root. Although
potentially incompatible, this change should almost always "do the
right thing".
*** POTENTIAL INCOMPATIBILITY ***
1/31/93 (bug fix) Changed "send" code to grab server while updating
the registry property (before this fix, two programs could allocate
the same interpreter name if they started up simultaneously). In
order to make this fix I had to change the code for reclaiming
names of dead interpreters in a way that sometimes allows dead
interpreters to persist in the registry.
2/1/93 (feature change) Changed entries to allow leftmost "visible"
character to be the end of the text (i.e. no characters actually visible).
This is needed so that the cursor can be displayed even if the last
actual character is too wide to fit in the window.
2/3/93 (bug fix) Fixed two bugs in tkFocus.c: (a) FocusIn events
were getting lost in some cases because the focus window hadn't been
created yet (e.g. new top-level window pops up underneath the mouse);
(b) Tk was accidentally triggering FocusOut events when the mouse
moved from a top-level window to one of its children.
2/4/93 (new feature) Added "visibility" option to "tkwait" command to make
it easier to wait for a new window to appear on the screen.
---------------------- Release 3.1, 2/5/93 -------------------------
2/10/93 (installation improvements) Makefile improvements: added RANLIB
variable for easier Sys-V installation, changed to use INCLUDE_DIR
properly, and added SHELL variable for SGI systems.
---------------------- Release 3.2, 2/11/93 -------------------------
2/11/93 (new feature) Added "wm state" command, and improved wm so that
the right thing will happen if you invoke "wm iconify" when a window is
withdrawn.
2/14/93 (bug fix) When -colormap option was used in generating Postscript
for canvases, Tk didn't add an extra space after the color command.
2/14/93 (new feature) Changed "extern" declarations in tk.h to "EXTERN",
which will use the definition of EXTERN from tcl.h and work correctly
in C++ programs.
2/18/93 (bug fix) Item-specific bindings weren't getting deleted from
canvas items when the items were deleted. As a result, they could
suddenly re-appear for new items if the new items were allocated a
record at the same addresses as the old ones.
2/18/93 (feature reversal) Changed "after" back again, so that it sleeps
*without* responding to events when it is invoked with just one argument;
can always use tkwait plus after with additional arguments to achieve
the effect of responding to events.
*** POTENTIAL INCOMPATIBILITY ***
2/20/93 (bug fix) Fixed bug in tkWindow.c where colormaps weren't being
set correctly for new top-level windows on different screens than their
parents (the bug results in X protocol errors: "invalid Colormap
parameter").
2/22/93 (bug fix) Changed "#!/usr/local/wish" in demo scripts to
"#!/usr/local/bin/wish" to reflect new location of binary.
2/22/93 (new feature) Added new reliefs "groove" and "ridge".
2/25/93 (new feature) Added new built-in bitmaps: "error", "hourglass",
"info", "question", "questhead", and "warning". Also added new demo in
"widget" to display all of these (under the Miscellaneous menu).
2/25/93 (improved implementation) Changed DrawText procedure in
prolog for outputting Postscript from canvases to use stringwidth
instead of charpath+pathbbox: avoids limitcheck problems with long
strings, and also properly includes space characters in calculation.
2/25/93 (bug fix) Fixed several bugs in library/menu.tcl that caused
menu traversal to mis-behave when menu had no entries.
2/26/93 (new feature) Added "wm frame" command.
3/6/93 (bug fix) Mwm in click-to-focus mode was goofing up grabs so that
pull-down menus were sometimes unresponsive. Modified tk.tcl to ignore
the spurious B1-Enter events generated by mwm, plus modified tkGrab.c to
release simulated button grabs correctly.
3/8/93 (bug fix) Tk had wrong interpretation of "lbearing" font metric,
which caused text to be displayed at the wrong horizontal position in
several places (labels/buttons, listboxes, canvas text, scales). This
change will cause slight changes in the way certain widgets are
displayed.
3/12/93 (bug fix) Fixed core dumps that occurred in tkEntry.c because of
zero values in entryPtr->avgWidth.
3/12/93 (bug fix) Tk_CoordsToWindow was using root coordinates always.
Changed to use virtual-root coordinates when a virtual-root window
manager is being used. Before this fix, "winfo containing" didn't
return the correct window under virtual-root window managers.
3/18/93 (bug fix) Modified tkWm.c so that Tk doesn't fight with window
manager over position of window; it just takes what the window manager
gives it.
3/21/93 (new feature) Changed menus to display cascade entries with
standard Motif arrows at right side.a
3/22/93 (bug fix) Fixed bug in tkPack.c that was causing memory to
get trashed with the integer value 1.
3/22/93 (bug fix) Canvas text didn't print correctly if it contained
an open paren (or other special character) immediately followed by
an octal digit.
3/22/93 (bug fix) Text widgets didn't redisplay properly in cases
where two or more groups of lines both got taller at the same time
(e.g. from tag changes), causing two separate bit copies where the
first bit copy's target area overlapped the source area for
the second bit copy.
4/1/93 (bug fix) Changed canvases to use ISO Latin-1 font encoding
if that's supported by the Postscript interpreter. Also added workaround
for bug in NeWSprint related to stipple fills.
4/1/93 (bug fixes) Made various changes to focusing and grabs to
eliminate extraneous focus events and generally improve behavior.
4/2/93 (bug fix) Modified tkWm.c not to wait indefinitely for the window
manager to map or reconfigure a window: this led to deadlock in some
situations, such as creating a new top-level window with a grab held.
4/19/93 (bug fix) Fixed another bug in tkWm.c that caused windows to walk
across the screen in some situations. Also fixed problem where rapid
posting and unposting of cascaded submenus (or menus?) could cause Tk
to become confused about whether or not a window is mapped (added
TkWmUnmapWindow procedure to make top-level unmaps synchronous).
4/24/93 (feature change) Changed the "after" command to allow times
less than or equal to 0, and to use 0 whenever they occur.
4/26/93 (new feature) Implemented security check for "send" as proposed
by Bennett Todd: incoming sends are now rejected unless (a) xhost-style
access control is enabled and (b) the list of authorized hosts is
empty. In other words, you have to use xauth to use send. This feature
can be disabled by setting the TK_NO_SECURITY flag at compile-time.
5/15/93 (improvement) Switched to use Tcl_PrintDouble whenever returning
real values as Tcl results. This potentially allows higher precision.
Switched to use %.15g whenever printing reals in Postscript files.
However, the change Tcl_PrintDouble causes incompatibilities. For
now, it's disabled with a macro in tclInt.h that redefines Tcl_PrintDouble.
Tk 4.0 will delete the macro, and you can also delete it now if you
want the better (but incompatible) behavior.
5/19/93 (bug fix) Fixed divide-by-zero problem that could occur in
closeness calculations for canvas oval items.
5/30/93 (bug fix) PROP and CONFIG were accidentally #defined to the same
value in tkBind.c, which could cause incorrect %-substitutions in event
bindings in a few exotic cases.
6/4/93 (improvement) Changed to use GNU autoconfig for configuration.
Makefile format changed, and Tcl is no longer automatically included
in Tk releases.
6/7/93 (bug fix) Fixed off-by-one error in rounding negative coordinates
during redisplay of canvases.
6/9/93 (feature improvement) Modified default bindings for entries to
keep one character visible to the left of the cursor during backspaces.
6/18/93 (feature improvement) Added patchlevel.h, for use in coordinating
future patch releases, and also added tk_patchLevel variable to make the
patch level available in scripts.
6/26/93 (bug fix) Fixed numeric problems in scales that occurred with
very large scale values.
6/26/93 (bug fix) Polygon items in canvases could cause core dumps if
the "coords" widget command was used to add one new coordinate.
6/26/93 (bug fix) Changed canvases to handle large stipple patterns
gracefully (stipples used to jump around during redisplay and lose
coherency).
7/1/93 (syntax change, new feature) Implemented the new packer syntax
as described in the book. For now the old syntax will continue to be
supported too. Converting over is straightforward except (a) use
"-anchor" instead of "frame", and (b) padding is different (separate
internal and external padding, plus pad amounts are *on each side*
instead of total). Also added "pack propagate" command for keeping
the packer from setting the master's requested size.
7/1/93 Changed copyright notices. The effect is the same as with the
old notices, but the new notices more clearly disclaim liability.
7/7/93 (new feature) Added support for window stacking order. Windows
will now stack in the order created (most recent on top), plus "raise"
and "lower" commands may be used to restack (Tk_RestackWindow procedure
is available from C level).
7/7/93 (reorganization) Moved main.c to tkMain.c, reorganized it to
call Tcl_AppInit just like tclsh does, and added argv0 variable to contain
application name, and added default Tcl_AppInit procedure for wish.
Also added tkTest.c to hold C code for testing.
7/7/93 (new feature) Added new Tk-specific "exit" command, which cleans
up properly before exiting. It replaces the Tcl "exit" command, and
can be used in place of "destroy .".
7/9/93 (new features) Added tk_dialog library procedure that creates
dialogs with a bitmap, message, and any number of buttons. Also changed
default tkerror procedure to use tk_dialog plus offer the user a chance
to see a Tcl stack trace.
-------------------- Release 3.3 Beta 1, 7/9/93 -------------------------
7/12/93 (configuration changes) Eliminated leading blank line in
configure script; provided separate targets in Makefile for installing
binary and non-binary information; fixed -lnsl and -lsocket handling
in configure; added autoconf support for fd_set type; check for various
typedefs like mode_t and size_t, and provide substitutes if they
don't exist; don't include tkAppInit.o in libtk.a; try to locate the
X includes and library in all of the standard places for various systems.
7/14/93 (new feature) Modified tkMain.c so that it stores the value
of the -display command-line option into the DISPLAY environment
variable, if it is specified.
7/15/93 (feature removal) Removed auto-initialization feature from
Tk_ConfigureWidget, so that you must once again initialize all fields
of a widget record before calling Tk_ConfigureWidget. This restores
the behavior back to what it was in Tk 3.2.
7/16/93 (bug fix) Modified tkBind.c to ignore the Caps Lock modifier
unless it is explicitly requested in a binding. Without this fix,
buttons and menus and other things didn't work if the Caps Lock key
was active.
-------------------- Release 3.3 Beta 2, 7/21/93 -------------------------
7/21/93 (new feature) Change "make install" so that it will modify the
#! lines on demo scripts to reflect the place where the wish binary
is installed.
7/23/93 (new feature) Added Tk_MainWindow procedure that returns the
main window associated with a Tcl interpreter. This is intended for
use by Tcl_AppInit and other initialization procedures.
7/24/93 (configuration improvements) Changed configure script not to
omplain about "fd_set" missing if it's defined in <sys/select.h>.
7/28/93 (bug fix) "Bad Match - parameter mismatch" errors were
sometimes occurring when several top-level windows got created
at the same time, due to wrong choice of sibling when stacking
windows.
8/14/93 (new feature) Added support for tcl_prompt1 and tcl_prompt2
to wish main program: makes prompts user-settable.
8/19/93 (bug fix) Bindings to event sequences like "aD" never matched
because the Shift key has to be pressed before D. Modified Tk to
ignore extraneous keypresses if they are for modifier keys.
8/26/93 (configuration changes) Added Tk_Init, modified Tcl_AppInit
procedures to use it and Tcl_Init. Added support for .wishrc file.
8/28/93 (new feature) The main window is now a legitimate toplevel
widget.
-------------------- Release 3.3 Beta 3, 8/30/93 -------------------------
9/2/93 (bug fix) The packer wasn't always relaying out a master after
changes to some of the configuration options of its slaves.
9/2/93 (bug fix) The binding mechanism made it impossible for patterns
like <Double-ButtonRelease-1> to ever match.
9/2/93 (bug fix) Fixed core dump that occurred for bitmap canvas items
if Postscript is generated but no -bitmap option has been specified.
9/4/93 (enhancement) Slight improvements to menu traversal: set menu
traversal bindings for menubar window in tk_menuBar, plus trigger
traversal on <Any-Alt-Keypress> instead of <Alt-Keypress>.
9/9/93 (bug fix) Changed tkBind.c so that the Num_Lock key doesn't
prevent events from triggering bindings.
9/9/93 (bug fix) Changed tkOption.c to always fetch RESOURCE_MANAGER
property from root window of screen 0, rather than using default
screen.
9/9/93 (bug fix) Entry widgets weren't allocating quite enough width
for themselves. Fixed this and changed the size computation to match
what's done for buttons and texts.
9/16/93 (bug fix) Changed tkMain.c not to call exit C procedure directly;
instead always invoke "exit" Tcl command so that application can redefine
the command to do additional cleanup.
-------------------- Release 3.3, 9/29/93 -------------------------
9/30/93 (bug fix) Packer wasn't unmapping slaves when master got deleted.
9/30/93 (bug fix) Binding event sequences such as <Right> were being
misprinted as ASCII characters such as "S".
10/6/93 (bug fix) Canvases weren't unmapping window items when the canvas
got unmapped, which caused problems for window items whose windows weren't
descendants of the canvas (they got left on the screen).
10/7/93 (feature change) NULL proc arguments to Tk_CreateFileHandler used
to have a special undocumented meaning (fd was display); eliminated this
special interpretation.
10/7/93 (configuration change) Eliminated dependency of tkMain.c on
tkInt.h and tkConfig.h, so that it's easier for people to copy the file
out of the source directory to make modified versions.
10/8/93 (bug fix) 3.0 introduced a bug where the class of the application
wasn't being set properly, so options based on the application class
weren't triggering. Fixed by adding new argument to Tk_CreateMainWindow.
10/11/93 (bug fix) Fixed bug in tkTextBTree.c where some deletions would
cause core dumps due to halfwayLinePtr not getting set correctly.
10/18/93 (bug fix) Fixed a couple of bugs that made it hard to actually
display N characters in an entry with "-width N" (tended to scroll the
entry so that only N-1 characters were visible at once).
10/22/93 (bug fix) During configuration, XINCLUDE_DIR and XLIBRARY_DIR
weren't overriding xmkmf like they were supposed to.
10/23/93 (new feature) Allow negative scale factors in canvas "scale"
widget command.
10/23/93 (bug fix) Grabs weren't being cleaned up right if the grab
window was deleted, causing core-dumps in some cases.
10/23/93 (bug fix) tk_TextSelectTo wasn't checking to be sure that
the "anchor" mark exists.
10/27/93 (bug fix) Fixed core dump that could occur in a text widget if
the scroll command modifies the text.
11/1/93 (bug fix) Change texts so that the -yscrollcommand option is
invoked at display time, not when the window is re-layed out. This
eliminated various core dumps that could occur if -yscrollcommand modified
the text.
-------------------- Release 3.4, 11/04/93 -------------------------
Note: there is no 3.5 release. It was flawed and was thus withdrawn
shortly after it was released.
11/12/93 (bug fix) TkMain.c didn't compile on some systems because of
R_OK in call to "access". Changed to eliminate call to "access".
-------------------- Release 3.6, 11/26/93 -------------------------
11/10/93 (bug fix) Packer and placer didn't always reposition a window
correctly if it was managed inside a neice or lower descendant (using
"-in" option) and the neice's parent moved.
11/24/93 (bug fix) Fixed time problem in selection (retrievals could
fail if retriever hasn't received any X events since selection was
made, so that time of retrieval appears to be older than time of
selection). Selection code is now much less picky about times, both
on retrieving and supplying sides.
12/2/93 (new feature) Changed arrow-head drawing code for canvas
lines to draw a 0-width outline in addition to filling the area:
this produces much nicer, more symmetrical displays.
12/2/93 (bug fix) When colors ran out, Tk was invoking "tkerror"
when its state was internally inconsistent, which could cause
core dumps in some situations (e.g. if tkerror used the same color
that caused colors to run out). Changed notification to occur
as a when-idle handler.
12/3/93 (bug fix) During a global grab, Tk wasn't including PointerMotion
in the list of grabbed events, so pointer motion couldn't be tracked
outside the grabbing application.
12/3/93 (bug fix) Canvases didn't handle smoothed lines correctly
when they only contained two points.
12/3/93 (bug fix) Fixed bug in tkWindow.c where certain kinds of
errors during window creation could cause Destroy events to be generated
for a window that was never completely initialized.
12/13/93 (bug fix) Fixed bug in tkTextDisp.c that resulted in core
dumps at line 1467 under exmh. The exact situation is that a text
widget was being redisplayed at a time when it had a -yscrollcommand
option but hadn't yet been mapped onto the screen.
12/17/93 (bug fix) Fixed bug in tkWindow.c whereby new top-level windows
with non-default visuals still inherited border pixmap from parent (root),
which could cause visual clash and X error.
12/17/93 (bug fix) Fixed bug in tkTextDisp.c that caused round-off
error in the information passed to scroll commands.
12/18/93 (bug fix) Fixed bug in tkPack.c that caused core dumps in
some situations if a master with siblings packed "-in" it was deleted.
12/18/93 (bug fix) Added "compat" directory to distribution, since it's
referenced by tkConfig.h on some systems.
12/18/93 (performance improvement) Improved performance of appending to
a listbox, so that inserting N items doesn't take N**2 time.
12/20/93 (bug fix) Fixed bug in canvas ovals that caused the fill color
for the oval to stick out past the outline.
1/2/94 (fixed Xlib bug) Added code to reuse X resource identifiers so
that they won't run out in long running applications. There are three
new library procedures: Tk_FreeXId, Tk_GetPixmap, and Tk_FreePixmap.
Modified all Tk code to use these procedures, so wish applications should
now be able to run forever without running out of identifiers.
1/10/94 (bug fix) tkCursor wasn't freeing pixmaps used to create
cursors, which caused memory leaks in programs that changed cursors
frequently.
1/21/94 (bug fix) Fixed bug in scales that caused them to loop
infinitely drawing tick-marks when -from and -to were the same.
2/2/94 (bug fix) Fixed problem where messages that contained tabs
didn't always compute the correct size, so that text spilled off
the right edge. The fix adds an extra "tabOrigin" parameter to
the internal procedures TkMeasureChars, TkDisplayChars, and
TkUnderlineChars.
2/4/94 (bug fix) Fixed off-by-one problem in tkBind.c that caused
it to read past the initialized part of dispPtr->modKeyCodes.
2/7/94 (bug fix) Text widgets didn't handle grabs correctly, such
that the "current" character got stuck if a grab occurred while a
mouse button was down. It would get unstuck until after the
next button press and release.
2/19/94 (bug fix) Fixed prolog.ps (prolog for Postscript printing from
canvases) so that it correctly prints all of the characters in the
ISO Latin-1 character set.
2/19/94 (bug fix) Modified tkBind.c to save and restore the interpreter's
result across the execution of binding scripts. Otherwise if an event
triggers in the middle of some other script (e.g. a destroy event during
window creation, because there was an error in the creation command),
the intepreter's result gets lost.
2/19/94 (bug fix) Fixed bug in dealing with results of sent command
that could cause them to get lost in some situations.
2/21/94 (bug fix) Don't let user close a dialog window created by
tk_dialog, since this would cause tk_dialog to hang: force the user
to select one of the dialog's buttons.
2/21/94 (bug fix) Fixed bug in canvas polygons whereby they didn't
correctly handle changes in the number of points (via "coords"
widget command).
2/23/94 (bug fix) Large bitmaps in canvases didn't print correctly
because they overflowed the 64-KB limit on strings in Postscript.
Changed canvas printing to split up large bitmaps into mutliple
smaller ones for printing.
2/25/94 (bug fix) The "." window was being set up with -width
and -height options, which interfered with geometry management (any
configuration change on "." causes the window to change size to
200x200, then change back again).
2/26/94 (bug fix) Fixed several bugs that occurred when a Destroy
event handler for a window deleted the window's parent.
3/3/94 (new features) Changes to binding mechanism:
- The modifiers for "Alt", "Meta", and "M" are now computed by
examining the modifier map, rather than being hardwired to
M2, M1, and M1.
- When processing events, one script is invoked for each object
in the list passed to Tk_BindEvent, rather than stopping as
soon as a script is invoked for some object. The "break" and
"continue" commands can be used within a script to abort all
scripts for the event or the current one.
*** POTENTIAL INCOMPATIBILITY ***
- Added "bindtags" command so that new binding groups can be
defined for widgets and the evaluation order can be changed.
- When matching events to bindings, extra modifiers are now ignored,
as if "Any" were specified for every event. The "Any" modifier
is still recognized, but it is ignored and is deprecated.
*** POTENTIAL INCOMPATIBILITY ***
- In % sequences that print window identifiers (e.g. %a and %S), print
in hexadecimal rather than decimal, for consistence with "winfo id".
*** POTENTIAL INCOMPATIBILITY ***
- The "bind" command no longer supports the event types CirculateRequest,
ConfigureRequest, MapRequest, or ResizeRequest. These event types
are somewhat dangerous, and they never worked anyway.
3/13/94 (bug fix) Fixed numerous problems with the "wm iconwindow" command.
It appears that this command never really worked at all, but it should
work OK now.
3/14/94 (feature changes) Removed several obsolete features:
- Eliminated "enable" and "disable" widget commands for menus.
*** POTENTIAL INCOMPATIBILITY ***
- Eliminated "activate" and "deactivate" widget commands for buttons,
checkbuttons, radiobuttons, and menubuttons.
*** POTENTIAL INCOMPATIBILITY ***
- Removed -geometry option for frames and toplevels: it causes
problems when .Xdefaults files contain entries like
"*geometry: +0+0". Must use -width and -height instead.
*** POTENTIAL INCOMPATIBILITY ***
- Desupported "tkVersion" variable: use "tk_version" instead.
*** POTENTIAL INCOMPATIBILITY ***
3/16/94 (feature changes) Changes to listboxes:
- Eliminated -geometry option (it causes problems when .Xdefaults
files contain entries like "*geometry: +0+0"). Added -width
and -height options to use instead.
*** POTENTIAL INCOMPATIBILITY ***
3/21/94 (bug fix) Fixed bug in tkOption.c where the option cache wasn't
properly cleaned up after window deletion; this could cause the wrong
value from the option database to be used under some conditions.
3/25/94 (new features) Changes to geometry management:
- Added Tk_MaintainGeometry and Tk_UnmaintainGeometry procedures
to solve problems with -in windows. Modified the packer, the
placer, and canvases to use them.
- Changed 2nd argument to Tk_ManageGeometry from Tk_GeometryProc *
to a pointer to a structure with additional information about
the geometry manager, such as name and procedure to call when
slaves are stolen.
*** POTENTIAL INCOMPATIBILITY ***
3/28/94 (new feature) Overhauled event management:
- Added "cancel" option to the "after" command so that you can
cancel previously-scheduled commands.
- Separated X-specific stuff from generic event management. The
file tkEvent.c can now be used stand-alone without the rest of Tk.
See the manual entry for Tk_EventInit for information on which
procedures are available this way.
- Added Tk_CreateFileHandler2 procedure, which provides a lower-level
and more powerful form of file event handler.
- Fixed bug in Tk_DoOneEvent where an infinite loop could occur if
the TK_FILE_EVENT and TK_DONT_WAIT flags were set simultaneously
(there were bugs with several other combinations too; all should
be fixed now).
3/28/94 (new feature) Added "fileevent" command, which allows event-
driven I/O in the style of Mark Diekhans' "addinput" command.
4/11/94 (new feature) Better support for colormaps and visuals:
- Added new -colormap and -visual options to toplevels and frames.
- Added "winfo visualsavailable" command.
- Added "wm colormapwindows" command, plus support for WM_COLORMAP_WINDOWS
to Tk_SetWindowColormap.
- Added new library procedures Tk_GetVisual, Tk_GetColormap,
and Tk_FreeColormap.
4/11/94 (bug fix) Fixed core dump that used to occur when specifying
an iconwindow ("wm iconwindow") for a toplevel on a different screen
than the main window.
4/23/94 (new feature) Added support for images, including the following:
- New "image" command for creating images.
- Built-in image type: bitmap.
- New "image" item type in canvases.
- Labels, buttons, checkbuttons, radiobuttons, menubuttons, and
menu entries now support a -image option for displaying images.
- Tk_CreateImageType and Tk_ImageChanged procedures, for defining
new types of images in C.
- Tk_GetImage, Tk_FreeImage, Tk_RedrawImage, and Tk_SizeOfImage
procedures, for using images in widgets.
5/1/94 (new features) Added new procedures Tk_3DVerticalBevel and
Tk_3DHorizontalBevel.
5/11/94 (new features) Major overhaul of text widgets:
- Implemented embedded windows and "window" widget command.
- Added new configuration options for tags: -justify, -lmargin1,
-lmargin2, -rmargin, -offset, -spacing1, -spacing2, and -spacing3.
See the "Display styles" widget demo for examples.
- Added new configuration options for texts: -spacing1, -spacing2,
and -spacing3.
- Added "tagList" option to "insert" widget command to control
tags on new text. Made tagged regions so they aren't sticky on
either side: new characters get a tag only if the old chars. on
both sides had it.
*** POTENTIAL INCOMPATIBILITY ***
- Added gravity for marks, and "mark gravity" widget command.
- Added horizontal scrolling, "xview" widget command, -xscrollcommand
option. Changed "scan" widget commands to support horizontal
scrolling.
*** POTENTIAL INCOMPATIBILITY ***
- Added "search" widget command for searching (either exact matches
or regular expressions).
- New widget commands: bbox, dlineinfo, and see.
- Changed implementation of bindings so that Enter and Leave
events are not generated unless the tag has just become present
(or just ceased to be present) on the current character. Also
changed bindings to process separately for each tag, rather than
having high-priority tags override low-priority ones.
- The "end" index now refers to the character after the last newline
rather than the newline itself. You can now tag the final newline
and set a mark after the final newline.
- Deletions of the "sel" tag and the "insert" and "current" marks
are now ignored silently, rather than generating errors. This means
you can do things like "eval .t tag delete [.t tag names]".
5/19/94 (bug fix) Canvases didn't generate proper Postscript for stippled
text.
5/20/94 (new feature) Added "bell" command to ring the display's bell.
5/20/94 (new feature) Incorporated "square" demonstration widget into
tktest application.
5/20/94 (new features) Changed wish application (tkMain.c):
- wish no longer processes the -help option.
*** POTENTIAL INCOMPATIBILITY ***
- The wish main program is now called Tk_Main; tkAppInit.c has a
"main" procedure that calls Tk_Main. This makes it easier to use
Tk with C++ programs, which need their own main programs, and it
also allows an application to prefilter the argument list before
calling Tk_Main.
*** POTENTIAL INCOMPATIBILITY ***
- The application's class is now the same as its name (except the
first letter is capitalized), instead of "Tk".
*** POTENTIAL INCOMPATIBILITY ***
- The -file keyword is no longer required: the script file name can
be provided as the first argument without being preceded by "-file",
as in tclsh. For backward compatibility the "-file" keyword is
ignored if it is the first argument, but it is deprecated.
5/26/94 (feature removed) Removed support for "fill" justify mode from
Tk_GetJustify and from the TK_CONFIG_JUSTIFY configuration option. None
of the built-in widgets ever supported this mode anyway.
*** POTENTIAL INCOMPATIBILITY ***
5/27/94 (feature change) Changed Tk to use Tk_PrintDouble everywhere
that it converts reals to strings. This means that floating-point
values will be generated in some cases where integer-like values were
generated before.
*** POTENTIAL INCOMPATIBILITY ***
6/1/94 (feature change) Renamed "pack newinfo" command to "pack info".
The old "pack info" command is no longer available.
*** POTENTIAL INCOMPATIBILITY ***
6/20/94 (feature changes) Overhaul of entry widgets:
- Added "-justify" option.
- Added "-show" option to make entries easier to use for passwords.
- Added "cget" widget command.
- Added "selection range" and "selection present" widget commands.
- Added "anchor" symbolic index.
- Changed "-scrollcommand" option to "-xscrollcommand", "view"
widget command to "xview", for compatibility with other widgets.
*** POTENTIAL INCOMPATIBILITY ***
- Changed sel.last to refer to character just *after* last one
selected, again for compatibility with other widgets.
*** POTENTIAL INCOMPATIBILITY ***
- For "delete" widget command, second index now refers to character
just *after* last one to delete.
*** POTENTIAL INCOMPATIBILITY ***
- Overhauled bindings to be more Motif-compatible and to include
common Emacs bindings for editing.
- Changed -width option: if specified as 0, widget sizes to fit
its current text.
6/11/94 (new features) Improved Motif compatibility:
- Added "-highlightwidth" and "-highlightcolor" options to all widgets.
6/27/94 (bug fix) Postscript generation for text items in canvases was
not justifying the text properly when a -width was specified that was
longer than the longest line.
6/27/94 (bug fix) "winfo exists" used to report a window as existing
if it was in the process of being destroyed (i.e., a destroy handler
is in the middle of execution). Changed to report it as non-existent
under these conditions.
*** POTENTIAL INCOMPATIBILITY ***
7/11/94 (bug fix) Selections claimed via "selection own" weren't always
being cleared properly when the selection was claimed away. Also fixed
bug where Tk wasn't properly claiming the selection, if there haven't
been any recent X events at the time of the claim.
7/13/94 (feature changes) Overhaul of scrollbar widgets:
- New widget commands: "activate", "cget", "fraction", and "identify".
- New options: -activebackground, -activerelief, -highlightcolor,
-jump, -highlightthickness, and -troughcolor. What used to be
-background is now -troughcolor, -foreground is now -background,
and -activeforeground is now -activebackground.
*** POTENTIAL INCOMPATIBILITY ***
- Added new syntax for "set" command, "get" result, and generated
commands. Changed other widgets to use the new syntax.
- Moved the bindings out of C and into Tcl scripts, using the new
options and widget commands. Added support for all Motif
bindings, plus jump scrolling and cancelling of slider drags.
7/16/94 (bug fix) Canvases assumed that the Leave event for one item
didn't modify or delete the next current item; this could cause core
dumps under some conditions.
7/23/94 (feature change) Modified Tk_BackgroundError so that tkerror
is invoked as an idle handler. If tkerror generates a break exception
then all other queued reports are aborted.
8/14/94 (bug fix) "cursorOffTime" and "cursorOnTime" were confused in
canvases, resulting in the same time being used for both.
8/16/94 (bug fix) "tkwait variable" command didn't detect errors in
variable name, such as trying to wait for an entire array.
9/2/94 (new features) Overhaul of scale widgets:
- Floating-point values are supported now, following Paul Mackerras'
"fscale" widget. Added "-resolution" and "-digits" options.
- Added "-variable" option to link scale to variable, following
Henning Schulzrinne's implementation.
- Added focus highlight (-highlightthickness and -highlightcolor
options).
- Added new widget commands "cget", "coords", "identify", plus
improved "get"; removed wired-in bindings, added complete set
of Motif bindings via Tcl scripts.
- Changed -sliderforeground option to -background, -background to
-troughColor, -activeforeground to -activebackground.
*** POTENTIAL INCOMPATIBILITY ***
- Moved value label from below horizontal scales to above the scale,
for Motif compliance.
9/9/94 (bug fix) Fixed bug in tkWm.c that caused long delays in "raise"
command under some conditions (window already at the top of the stack).
9/10/94 (new features) Overhaul of label/button/checkbutton/radiobutton
widgets:
- Added focus highlight (-highlightthickness and -highlightcolor
options).
- Added new widget command "cget".
- Changed -selector option to -selectcolor, and changed its meaning
too: empty no longer means don't draw the indicator; it means
don't use a special color when selected.
*** POTENTIAL INCOMPATIBILITY ***
- Added -indicatoron (controls whether indicator is displayed) and
-selectimage (gives special image to display when selected) options.
- Modified bindings to be more Motif-like, added binding for space
key.
- Changed padding defaults to give widgets correct Motif appearance
by default. Also, changed to ignore padding options when displaying
an image or bitmap.
*** POTENTIAL INCOMPATIBILITY ***
- Can now display text on multiple lines: newlines cause line breaks,
and word wrapping can be requested with -wraplength option. Also
added -justify and -underline options.
- The -value option for radiobuttons can now have an empty string as
its value; it no longer defaults to the name of the widget.
*** POTENTIAL INCOMPATIBILITY ***
9/13/94 (new features) Modified both canvases and messages to support
-highlightthickness and -highlightcolor options plus "cget" widget
command.
9/19/94 (new features) Added Tk_UnsetGrid procedure, modified widgets
to use it. Also changed Tk_SetGrid so that at most one window per
toplevel can have gridding enabled.
9/23/94 (new features) Major overhaul of listbox widgets:
- Added focus highlight (-highlightthickness and -highlightcolor
options).
- Added new widget command "cget".
- Revised selection commands to support single selections as well
as multiple disjoint selections; syntax of "selection" widget
command has changed to support this. Added new option -selectmode
for specifying which mode to use. Default is single selection;
tk_listboxSingleSelect procedure no longer exists. Selections
now return as items separated by newlines instead of a list whose
elements are the items.
*** POTENTIAL INCOMPATIBILITY ***
- Extended "get" widget command to allow many items to be retrieved
at once.
- Added "bbox" widget command for finding position of an element on
screen.
- Added "activate" command to mark element with traversal focus.
- Extended index mechanism to support new types of indices:
"active", "anchor", "@x,y".
- Added "see" widget command.
- Revised bindings to include all Motif features except for AddMode.
- If -width or -height option is <= 0, the widget requests a size just
large enough to hold all of its text.
10/6/94 (new features) Overhaul of menubuttons:
- Added focus highlight (-highlightthickness and -highlightcolor
options).
- Added new widget command "cget".
- Added -indicatoron option to display option menu indicator.
- The -menu option must be a child of the menubutton.
*** POTENTIAL INCOMPATIBILITY ***
10/6/94 (new features) Overhaul of menu widgets:
- Added new widget commands "cget" and "entrycget".
- Changed the implementation of tear-off menus to be more
Motif-like; added -tearoff option for specifying whether
tearoff entry is displayed.
- Changed interpretation of "@y" index: it now returns the
closest entry, rather than "none" if y is outside the menu's
range.
*** POTENTIAL INCOMPATIBILITY ***
- The -menu option for a cascade entry must now be a child of
the menu.
*** POTENTIAL INCOMPATIBILITY ***
- Added "type" widget command, so that you can query the type of
an entry.
- Added -foreground, -activeforeground, -selectcolor, -indicatoron,
-image, and -selectimage options to menu entries.
- Changed "selector" menu option to "selectColor" for Motif compliance.
*** POTENTIAL INCOMPATIBILITY ***
- Added -relief option for menus, just for consistency with other
widgets (it was implicitly "raised" before).
10/6/94 (feature change) Completely overhauled the bindings for menus
and menubuttons. They now fit better with other Tk 4.0 facilities,
such as the new binding mechanism, and they provide better Motif
compliance (e.g. keyboard traversal of submenus). Also, the bindings
now support option menus, popup menus, and proper Motif tear-off
menus.
10/6/94 (obsolete features) The procedures tk_menuBar and
tk_bindForTraversal are no longer needed in Tk 4.0. They still exist
for compability, but they do nothing.
10/6/94 (new procedures) Added "tk_popup" procedure for posting a
popup menu, and "tk_optionMenu" for creating an option menubutton
and its associated menu.
10/6/94 (change in name) The variable "tk_priv" has been renamed
to "tkPriv" to reflect that fact that it is private to Tk now.
This shouldn't cause any problems, since no-one except Tk should
have been using it before anyway (right?).
10/6/94 (bug fix) Fixed bug in texts where sometimes the text would
stop tracking mouse motion (the "current" item wouldn't get updated)
because the text widget missed a ButtonRelease event.
10/20/94 (new features) Overhauled selection code to support multiple
selections (primary, secondary, etc.) and multiple displays:
- Changed "selection" command to support new options such as
"-displayof" and "-selection". Old command formats are still
supported for compatibility, but they are no longer documented
and are deprecated.
- Changed procedures Tk_GetSelection, Tk_CreateSelHandler, and
Tk_ClearSelection to take additional "selection" argument.
*** POTENTIAL INCOMPATIBILITY ***
- Selection targets APPLICATION and WINDOW_NAME have been replaced
by TK_APPLICATION and TK_WINDOW.
*** POTENTIAL INCOMPATIBILITY ***
10/20/94 (new features) Added support for clipboard:
- New "clipboard" command.
- C procedures Tk_ClipboardClear and Tk_ClipboardAppend.
- Bindings for "cut", "paste", and "copy" for text and entry widgets,
plus "copy" binding for listboxes.
10/24/94 (bug fix) Button widgets weren't checking for errors when
setting the values of associated variables.
11/3/94 (bug fix) Fixed bug whereby Tk would hang if "exit" was invoked
from inside a <Destroy> binding.
11/15/94 (new features) Overhaul of focus mechanism:
- Added support for multiple displays: separate focus windows are
kept for each display.
- Added support for keyboard traversal.
- Changed focus model so Tk keeps track of a focus window for each
top-level window and automatically sets the focus on Enter to the
top-level. Tk no longer synthesizes FocusIn and FocusOut events,
but just uses the standard X mechanisms. There is no "default"
focus window anymore; the focus reverts to top-levels by default.
*** POTENTIAL INCOMPATIBILITY ***
- Changed focus command: eliminated "focus default" and "focus none",
added "-displayof" and "-lastfor" options. An empty string is now
used to signify "no focus" instead of "none".
*** POTENTIAL INCOMPATIBILITY ***
- Added library procedures tk_focusNext, tk_focusPrev, and
tk_focusFollowsMouse.
- Removed obsolete Tk_CreateFocusHandler: must use FocusIn and
FocusOut events now.
*** POTENTIAL INCOMPATIBILITY ***
11/23/94 (new features) Overhaul of "send" command:
- Added support for multiple displays: -displayof option to "send".
- Added asynchronous sends: -async option to "send".
- Eliminated fixed timeouts on sends: as long as the target
application appears to exist, the send will wait for it.
- Stale entries get removed from the application registry now,
so "winfo interps" should never return non-existent applications.
- Can change the name of an application with "tk appname" command.
This is also the preferred way of querying the application name
now.
- The errorCode and errorInfo variables are now propagated back to
the sender now, so a full stack trace is available.
- Tk checks display security on each send now, instead of just during
initialization, so changes in the security status are seen immediately
by all applications.
- The above changes required changes to the data formats used for
communication between source and target applications, so Tk 4.0
applications cannot send to, or be sent from, Tk 3.6 applications.
*** POTENTIAL INCOMPATIBILITY ***
- The procedure Tk_RegisterInterp has been replaced with Tk_SetAppName.
*** POTENTIAL INCOMPATIBILITY ***
12/6/94 (cleanup) Eliminated "interp" argument to Tk_GetColorByValue,
since it is no longer needed.
*** POTENTIAL INCOMPATIBILITY ***
12/7/94 (feature change) Changed the "wm" command so that top-level
windows are now resizable by default. You can no longer specify
empty arguments to "wm maxsize" and "wm minsize".
*** POTENTIAL INCOMPATIBILITY ***
12/8/94 (new feature) Added new "photo" image type using code provided
by Paul Mackerras: currently supports only PPM "P6" format images.
12/14/94 (new features) Canvas modifications:
- Modified the interfaces between generic canvas code and the item
types so that it's easy for people to write new item types outside
of Tk.
- Added support for transparent bitmap items: just specify an
empty string as the background color.
- Changed the "xview" and "yview" commands for canvases to use the
new scrolling syntax.
- Eliminated -scrollincrement option.
*** POTENTIAL INCOMPATIBILITY ***
12/14/94 (bug fix) Fixed bug where the dimensions of canvas arrowheads
scaled during a "scale" widget command, but the scaling was only
temporary and got lost on the next re-configure of the item. The
correct behavior is for the arrowheads not to scale.
-------------------- Release 4.0b1, 12/23/94 -------------------------
12/26/94 (bug fix) Removed obsolete demos from Makefile (color, dialog,
size), fixed "install" target.
1/3/95 (bug fix) Fixed all procedure calls to explicitly cast arguments:
implicit conversions from prototypes don't work when compiling under
non-ANSI compilers. Tk is now clean under gcc -Wconversion.
1/4/95 (bug fix) Used "screenX" without ever setting it in DisplayText
in tkCanvText.c: caused tabs in canvas text items to get messed up.
1/4/95 (bug fix) Canvases forgot to register the built-in types if
Tk_CreateItemType was called before a canvas widget was created.
1/4/95 (bug fixes) Fixed glitches in various text bindings:
- Up used to do nothing if the cursor was at 2.0.
- Right used to make the cursor invisible if it was just before
the final newline of the text.
- Control-t didn't conform to Emacs; made it conform to GNU Emacs.
- Deleted Control-x binding, since it doesn't conform to anything and
is confusing for Emacs users.
1/4/95 (bug fixes) Changed Control-t for entries just as for texts (see
above) an deleted Control-x for entries (see above).
1/4/95 (bug fix) The packer didn't map slaves unless the master was mapped;
this could cause slaves to get "lost" so that they weren't mapped until the
master resized.
1/5/95 (bug fix) Scrollbars weren't executing the proper code the first time
the mouse entered the widget; this caused problems if tk_strictMotif was
set.
1/6/95 (bug fix) Fixed label/button/checkbutton/radiobutton/menubutton
widgets to allow arbitrary screen distances when specifying -width and
-height for an image or bitmap (the manual pages already documented this
but the code didn't implement it).
1/6/95 (new feature) Added very primitive support for input methods,
as suggested by Martin Forssen. This should be enough for European
character sets (Compose key) but it isn't near enough for Asian
character sets.
1/8/95 (bug fix) Fixed problem in canvas "xview" and "yview" commands
where divide-by-zero errors could sometimes occur.
1/8/95 (bug fix) New event handler didn't properly handle files for
which both TK_READABLE and TK_WRITABLE were specified.
1/11/95 (bug fix) Fixed bug with text selections: was returning count
too high for data, causing bogus garbage to appear when selection was
copied.
-------------------- Release 4.0b2, 1/12/95 -------------------------
1/27/95 (feature removal) Removed %D substitution from binding scripts:
wasn't portable, shouldn't be used anyway.
*** POTENTIAL INCOMPATIBILITY ***
1/27/95 (new features) Added -displayof options to the commands
"winfo atom", "winfo atomname", "winfo containing", "winfo interps",
and "winfo pathname".
1/27/95 (new feature) Added "idle" option to "after" command to run
scripts as idle handlers.
1/28/95 (new feature) Modified placer to make -x and -relx additive
if you specify both. Same for -y and -rely, -width and -relwidth,
and -height and -relheight. This makes it easy to make request such
as "make .a 2 pixels larger than .b".
*** POTENTIAL INCOMPATIBILITY ***
1/28/95 (new feature) Improved auto-grab mechanism in canvases (which
prevents current item from changing while a button is down): changed
to report Enter and Leave events for the current item while a button
is down. However, as before, no Enter events are reported for other
items until the button goes up.
1/28/95 (new feature) Bitmap images are now transparent if the -background
is specified as an empty string (-maskdata and -maskfile are ignored in
this case). This is also the default.
1/28/95 (bug fix) Tk didn't support manufacturer- or site-specific keysyms
such as SunAudioMute. Modified tkBind.c so that it uses XStringToKeysym
in addition to its own hash table, so that all keysyms are now available.
1/30/95 (feature change) Modified "clipboard append" so that it reclaims
the clipboard selection if it had been previously lost, rather than just
generating an error. This handles certain race conditions more cleanly,
and also allows the use of programs like "xclipboard".
1/30/95 (new feature) Added -xscrollincrement and -yscrollincrement
options to canvases.
1/31/95 (bug fix) Geometry management was broken if a particular geometry
manager claimed a slave away from itself.
1/31/95 (bug fix) Fixed bug in tkVisual.c where a visual with fewer bits
than requested was being selected in preference to one with just the right
number of bits.
1/31/95 (bug fix) Texts weren't redisplaying the padding region properly
after changes in -padx or -pady.
1/31/95 (new features) More text improvements:
- Extended "insert" widget command for texts to allow multiple
text-tagList pairs in the same command.
- Added -nocase option to "search" widget command.
- Added -overstrike option to tags.
- Added tab stops, via -tabs option for widget and for tags.
2/10/95 (bug fix) Modified all widgets to allow renaming of widget
commands. Deleting a widget command will delete the widget.
2/11/95 (new feature) Added -highlightbackground option to all widgets.
2/14/95 (new feature) Added "insert" widget command for menus.
2/15/95 (new feature) Modified text display code (for all widgets) to
display well-known control characters like newline and backspace as
\n or \b instead of \xa.
2/15/95 (bug fix) Modified bitmap and photo image managers to delete
the image command when the image is deleted. Also modified them to
allow renaming of the image command, and to delete the image if the
image command is deleted.
2/15/95 (bug fix) Fixed text widgets to allow horizontal scrolling
even if wrapping was enabled, if a line isn't entirely visible due to
a large character or embedded window.
2/16/95 (feature change) Added "postcascade" widget command to menus,
changed "invoke" and "activate" not to post or unpost submenus. Also
fixed bug in redisplay that tended to leave bits of garbage on menu
when submenu unposted.
*** POTENTIAL INCOMPATIBILITY ***
2/16/95 (feature removal) Removed "snap back" behavior (slider
snaps back to old position if you move the mouse outside the widet
before releasing the button) from scrollbars and scales.
2/16/95 (bug fix) The last line of a listbox wasn't being displayed if
it was only partially visible.
2/16/95 (new features) Added support for "-resolution 0" (no rounding
of values) to scale widgets, plus smarter computation of how many digits
to display.
2/17/95 (bug fix) Fixed bug in text bindings for things like Shift-Left:
didn't properly set the anchor position.
2/20/95 (bug fix) Changed management of COLORMAP_WINDOWS property to
add the toplevel implicitly to the end of the list if it wasn't already
on the list somewhere. Without this, some window managers implicitly
put it at the front of the list, so that colormaps in internal windows
are never used.
2/20/95 (bug fix) Changed to use separate command procedures for
button, checkbutton, label, and radiobutton commands. This allows the
class commands to be renamed without breaking their behavior.
2/20/95 (removed feature) The "bind" command no longer supports
"Keymap" events; they never worked anyway.
2/20/95 (bug fix) The text "search" widget command looped infinitely
when searching an empty text.
2/20/95 (bug fix) Canvases weren't redrawing their borders after
configuration changes.
2/20/95 (upgrade) Changed to use autoconf version 2.2.
2/21/95 (bug fix) Fixed several bug fixes in menu bindings that occur
when menus have no entries.
2/21/95 (bug fix) Fixed bug in geometry management that caused windows
packed -in siblings to not always be mapped and unmapped properly
(particularly when the toplevel got unmapped and mapped).
2/22/95 (bug fix) Fixed resource leak problem in tkTextDisp.c that
caused embedded windows not to be unmapped when off-screen.
2/23/95 (bug fix) "After cancel" dumped core when the script for an
after event cancelled itself.
2/24/95 (bug fix) Text and entry widgets weren't properly ignoring
Alt-, Control-, and Meta- keystrokes, so a widget-specific binding
for one of these resulted in the character also being inserted.
2/24/95 (bug fix) Several widgets accidentally performed unsigned
division on negative numbers, thereby losing the sign bit. This
mostly affected the display of images and bitmaps in buttons,
menubuttons, and messages.
2/24/95 (feature reversal) Restored old behavior of %A so that it
returns non-printing characters as well as printing ones now.
*** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
2/24/95 (bug fix) Duplicate "leave" events could occur for canvas
items under some conditions, due to recursive calls to PickCurrentItem.
Added code to detect and skip the nested calls.
2/24/95 (bug fix) Fixed bug where an error could occur during the first
keystroke in an application if its binding invoked "break".
2/25/95 (new feature) Modified syntax of "search" widget command for
texts. The -nowrap switch and the "variable" final argument are no
longer supported. Instead, there is a -count switch to replace
the final argument; if the final argument is specified, it is now
a stopping index for the search. The features of -nowrap can be
achieved now with the stopping index.
*** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
2/27/95 (bug fix) Fixed problem that appears to prevent keyboard
input for working under IRIX: tkBind.c was ignoring XmbLookupString
calls that returned a status of XLookupBoth.
2/27/95 (new feature) Added Tk_GetItemTypes procedure to return
information about available canvas item types.
2/27/95 (feature change) Changed Makefile to always use install-sh
for installations: there's just too much variation among "install"
system programs, which makes installation flakey.
2/27/95 (bug fix) Fixed bug in tkSend.c that caused core dumps if
the app's main window was destroyed by a destroy handler on a
child.
3/5/95 (feature change) Change separator character used in "bind +..."
bindings from semi-colon to newline (permits bindings that are
comments, for what that's worth).
3/7/95 (bug fix/feature change) Overhauled focus code, both in C
and in Tcl:
- Tk won't move the X focus in response to the "focus" command
unless either the application already has the focus or the
-force switch is specified.
- Tk no longer sets the X focus to anything other than top-levels;
it synthesizes events for FocusIn and FocusOut to children.
- A window no longer has to be viewable when focussed to; Tk will
set the X focus later, when the window becomes viewable.
- Added -takefocus option to all widgets.
- Rewrote tk_focusPrev and tk_focusNext to use the -takefocus option.
These procedures no longer set the focus; they just return the
next window in focus order.
*** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
- Eliminated tk_focusContinue.
*** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
3/8/95 (new feature, bug fix) Added support for tk_strictMotif variable
in C: Tk_StrictMotif library procedure. Modified buttons, menubuttons,
menus to use it. This fixes the problem with menus not supporting
tk_strictMotif properly in Tk4.0b1 and b2.
3/16/95 (feature overhaul) Overhauled color management:
- Changed Tk so it never denies a color request because a colormap
filled up. Instead, it allocates the closest available color.
- Eliminated "color model" mechanism. The "tk colormodel" command
is gone, as are the procedures Tk_GetColorModel and Tk_SetColorModel.
*** POTENTIAL INCOMPATIBILITY ***
- Changed 3D border implementation to allocate colors for shadows
lazily, so they're never allocated if they're never used. Also
added new feature whereby stippling is used for borders when
the colormap has run out of entries. Changed arguments to many
of Tk_3D C procedures to take a Tk_Window as argument instead of
a (Display *). This is needed to do lazy color allocation.
*** POTENTIAL INCOMPATIBILITY ***
- Eliminated colormap argument to Tk_GetColor, Tk_GetColorByValue,
and Tk_Get3DBorder.
*** POTENTIAL INCOMPATIBILITY ***
3/16/95 (feature change) Event bindings created from Tcl will now ignore
Enter, Leave, FocusIn, and FocusOut events with detail NotifyInferior.
This is done in anticipation of mega-widgets, so that the user of a
mega-widget can create Enter/Leave bindings on the mega-widget without
seeing spurious events as the mouse moves among the windows in the
mega-widget.
*** POTENTIAL INCOMPATIBILITY ***
3/17/95 (feature change) Changed C interfaces throughout Tk to use ints
instead of unsigneds: the unsigneds turn out to cause subtle problems
with arithmetic in some places, and using ints everywhere is just
simpler.
*** POTENTIAL INCOMPATIBILITY ***
3/23/95 (bug fix) Selections longer than 4000 bytes were being
truncated to 4000 bytes.
-------------------- Release 4.0b3, 3/24/95 -------------------------
3/25/95 (bug fix) Changed "install" to "./install" in Makefile so that
"make install" will work even when "." isn't in the search path.
3/25/95 (bug fix) Modified Tk's selection mechanism to prevent core
dumps in other applications during retrievals of large selections
(this is actually a bug in the other apps, but I've patched Tk to
keep it from getting triggered).
3/25/95 (bug fix) Fixed bug where X window for "." wasn't being
deleted.
3/27/95 (bug fix) Fixed many bugs associated with having more than
one application in a single process.
3/28/95 (bug fix) The "search" widget command for texts didn't
return the correct index and count if there were embedded widgets
on the same line as the returned range but before the end of
the range.
3/28/95 (bug fix) Changed pasting via button 2 in text and entries
so that it inserts at the pointer location, not the location of
the insertion cursor.
3/28/95 (bug fix) Fixed several bugs related to <Destroy> bindings
that delete ancestors in the window hierarchy. Also eliminated
extraneous calls to XDestroyWindow, which speeds up window deletion
by about 3x.
3/28/95 (bug fix) Several widgets (buttons, menubuttons, menus) didn't
properly handle image deletions that occurred while the widget was
being deleted (caused core dumps).
3/29/95 (bug fix) When retrieving long selections from text widgets,
parts of lines were getting duplicated in the selection information.
4/1/95 (bug fix) Fixed bug that caused infinite loop in horizontal
scales with 0 range.
4/1/95 (bug fix) Fixed problem with -command option for scrollbars and
-takefocus option that caused commands to be evaluated in the wrong
context.
4/1/95 (bug fix) Fixed problem with option database that caused it to
sometimes use the wrong option (wasn't flushing the database properly
after a change in a window's class).
4/1/95 (bug fix) If a line in a text widget just barely fit in the window,
Tk was allocating a second screen line just for the newline character.
4/1/95 (new feature) When backspacing in an entry widget, when you reach
the left edge of the widget, the insertion cursor gets recentered.
4/1/95 (new features) Added "winfo pointerx" and "winfo pointery" commands
to fetch the current pointer position.
4/6/95 (bug fix) If the last line of a text widget was only partially
visible, it was counted as visible for purposes of the scrollbar. Now
it is treated as if it were off-screen for scrolling purposes.
4/6/95 (new feature) Modified "bell" command to reset screen saver as well.
4/6/95 (feature change) Modified menu scanning (where menus pull down
as you drag across their menubuttons) so it only works among menus
in the same toplevel; it used to work for any menubuttons in the
application.
4/6/95 (bug fix) Canvas text items weren't allowing real numbers in
"@x,y" notation for specifying indices.
4/7/95 (bug fix) Menus didn't display correctly when -activeborderwidth
was large.
4/7/95 (bug fix) Changed "clipboard append" command to support -- option
and to always treat the last argument as data, even if it starts with
"-".
4/17/95 (new feature) Added -wrap option to text tags.
4/18/95 (bug fix) Listboxes and texts weren't updating their grid information
when -width or -height changed.
4/18/95 (bug fix) "Down" didn't work right in text widgets if the last
line was only partially visible in the window.
4/19/95 (bug fix) Listboxes didn't handle partially visible last lines
right: couldn't scroll it into full visibility, for example.
4/20/95 (bug fix) If a toplevel was positioned with a command like
"wm geometry . -0-0", the window didn't reposition itself to maintain
that geometry after a size change.
4/21/95 (feature change) Changed order of binding tags so widget bindings
fire before class bindings. New order is: widget, class, toplevel, all.
*** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
4/23/95 (new feature) Added "winfo colormapfull" command.
4/23/95 (new feature) Buttons and radiobuttons and checkbuttons now
treat Return the same as Space, unless tk_strictMotif is set.
4/23/95 (bug fix) Modified menu tear-off procedure to duplicate the
binding tags and bindings of the original in the copy.
4/25/95 (bug fix and feature change) Modified mechanism for choosing
"best" visual to fix a bug where depth wasn't really getting highest
priority in all situations.
4/28/95 (bug fix) Failed text searches starting at "end" could result
in an infinite loop in Tk.
4/30/95 (new feature) Added "wm resizable" command to enable and
disable interactive resizing.
4/30/95 (new feature) Added "window names" widget command to texts:
returns a list of all embedded windows.
5/2/95 (feature change) Changed text searches so that forward searches
start at the given index, rather than the character just after the
given index.
*** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
5/4/95 (bug fix) Default bit gravity for windows was wrong (it was
ForgetGravity) causing unnecessary flashing when windows were resized.
5/4/95 (feature change) Modified Tk_DoOneEvent so that it doesn't
sleep if there's nothing that will wake it up again (e.g. no file
or timer handlers). Returns 0 immediately.
5/5/95 (configuration change) Changed to use BSDgettimeofday instead
of gettimeofday on systems like IRIX where BSDgettimeofday is
available. This avoids compilation problems due to the different
interface to gettimeofday provided by IRIX.
5/5/95 (feature change) Changed binding mechanism so that all bindings
are created immediately at initialization time, rather than waiting
until the first FocusIn or Enter event for a class.
5/6/95 (feature change) Changed default text for labels, buttons,
checkbuttons, radiobuttons, menubuttons, and messages from " " to
"".
5/6/95 (bug fix) If the application was destroyed in the middle of
an "update" command, Tk would dump core.
5/6/95 (bug fix) Changed manual entries to use the standard .TH
macro instead of a custom .HS macro; the .HS macro confuses index
generators like makewhatis.
5/6/95 (bug fix) Change "wm iconwindow" command to disable button
presses for the icon window. This is needed so that the window
manager can get those events (X only allows button presses to go
to one client for a given window).
5/9/95 (new feature) When specifying visuals, can now use "best"
with a depth, e.g. "-visual {best 8}" to get the best 8-bit visual.
5/18/95 (bug fix) Fixed bug with -spacing* options for text widget:
screen distances weren't allowed, only integers.
5/20/95 (bug fix) Eliminated memory leaks in tkTextDisp.c and elsewhere.
5/22/95 (color change) Changed the Tk color palette to a gray scheme.
Also added a library procedure tk_setPalette that makes it easy to
change colors on the fly, and a procedure tk_bisque that restores the
previous light brown scheme.
5/28/95 (bug fix) Modified canvases so that the -width and -height
options refer to the space inside the borders, not the total widget
space. Also changed "xview" and "yview" commands and scroll-increment
rounding to use the pixel just inside the borders, rather than (0,0).
5/28/95 (bug fix) Several widgets (e.g. entries, buttons, and menus)
didn't properly handle unsets of variables they were tracing, if the
variables were reference through upvars in procedures.
6/4/95 (bug fix) The placer wasn't rounding window widths right when
both -relx and -relwidth were specified (or -rely and -relheight) so
that rounding errors accumulated.
6/4/95 (feature improvement) Change parsing of text indices to handle
weird mark and tag names better (e.g. any string ending with ".first"
will now be parsed as a tag name, even if it contains embedded spaces,
etc.).
6/4/95 (feature change) If a font defines glyphs for control characters,
they are now displayed, instead of translating the character to a
backslash sequence (however, tabs and newlines are still treated
specially; glyphs are not displayed for these characters).
6/4/95 (bug fix) Modify the implementation of "raise" and "lower" for
toplevels so that it now works under olwm and olvwm. It didn't use to
work, and the problem is really in the window manager, but Tk now
patches around it. However, only "total" raises and lowers work:
raising and lowering relative to a sibling still don't work under
olvwm and olwm.
6/4/95 (feature change) Modified tab code in texts so that a tab always
occupies at least as much space as a space character.
6/4/95 (bug fix) The "%t" substitution wasn't being made properly in
Enter and Leave event bindings.
6/7/95 (new feature) Added support for GIF images. Unfortunately it's
a bit fragile: certain kinds of badly formed images can cause core
dumps; I don't know enough about the GIF reader (taken from giftoppm)
to figure this out.
6/7/95 (bug fix and feature change) Fixed PPM image reader to be more
flexible about header formats, and added support for PGM images.
6/7/95 (feature change) Added -outlinestipple option to canvas arc
items, changed "-style arc" to use -outline as the color instead of
-fill (the old approach was pretty quirky).
*** POTENTIAL INCOMPATIBILITY ***
6/8/95 (feature change) Modified interface to Tk_Main to pass in the
address of the application-specific initialization procedure.
Tcl_AppInit is no longer hardwired into Tk_Main. This is needed
in order to make Tcl a shared library.
6/8/95 (feature change) Modified Makefile so that the installed versions
of wish and libtk.a have version number in them (e.g. wish4.0 and
libtk4.0.a) and the library directory name also has an embedded version
number (e.g., /usr/local/lib/tk4.0). This should make it easier for
Tk 4.0 to coexist with earlier versions.
6/9/95 (new feature) Added -outline and -width options to canvas polygon
items.
6/9/95 (feature changed) Renamed -decimate in photo widget to -subsample
(decimate wasn't technically correct).
*** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
-------------------- Release 4.0b4, 6/16/95 -------------------------
6/19/95 (bug fix) Colors weren't being rounded correctly in canvas
Postscript generation: caused "white" to appear slightly gray when
the display of the canvas used only 8 bits per color.
6/20/95 (bug fix) "bbox" widget command for texts didn't return
proper width for tabs.
6/20/95 (bug fix) Scrollbars didn't always work right for texts:
couldn't scroll all the way to the bottom of the text in a single
drag of the slider.
6/20/95 (new feature) Added "delta" widget command for scrollbars
(needed for above bug fix).
6/23/95 (bug fix) Listboxes weren't properly redisplaying their
borders when the were configured to a smaller size.
6/23/95 (new feature) Added "winfo server" command.
6/23/95 (bug fix) If a menu was posted, couldn't switch to another
menu with an Alt- key.
6/24/95 (new feature) Added "winfo pointerxy" command.
6/25/95 (bug fix) Tk_ParseArgv referenced beyond the end of 0-length
option names.
6/25/95 (bug fix) Fixed problem in tkOption.c where "cachedWindow"
could get garbage in it if the main window's class was changed by
calling Tk_SetClass.
6/25/95 (bug fix) Fixed two bugs in menus, one where errors in
variable traces weren't propagated correctly and one where "invoke"
was invoked at the wrong stack level, with the result that variable
traces didn't have access to the right variables.
6/27/95 (bug fix) tk3d.c wasn't using all the right information
when deciding whether or not to stipple borders, so it stippled
borders even on 16-bit true-color displays.
6/28/95 (bug fix) Page up and down operations in texts could cause
insertion cursor to drift to the right. Changed tkTextScrollPages
to use upper-left corner of current character, rather than center
of character.
6/28/95 (bug fix) Changed text widget so that you can't put the
insertion cursor after the last newline in the text.
6/28/95 (bug fix) Bitmap images didn't allow ~'s in file names.
6/28/95 (bug fix) Fixed problem that could cause core dumps in the
text widget when dealing with embedded windows (there were problems
if the act of redisplaying caused the window layout to change, which
can happen with embedded windows).
6/28/95 (bug fix) Texts didn't handle indices with double negatives,
such as ".t mark set insert {insert + -20 chars}".
6/28/95 (bug fix) Fixed problem where focus didn't always revert to
its prior window after a dialog box was dismissed.
6/28/95 (bug fix) Fixed problem with "search" widget command returning
incorrect length on some backwards regexp searches.
6/28/95 (bug fix) Successive "wm iconbitmap . {}" commands could cause
a core dump.
6/29/95 (new feature) Added -elementborderwidth option for scrollbars
so the -borderwidth can be set to 0 without flattening the arrows and
slider.
-------------------- Release 4.0, 7/1/95 -------------------------
7/18/95 (bug fix) %t in event bindings didn't work properly for some
events (e.g. PropertyNotify).
7/18/95 (bug fix) Changed "exec wish" lines in demo scripts to
"exec wish4.0" to avoid version conflicts.
7/18/95 (bug fix) Fixed round-off errors in scrolling for texts,
canvases, listboxes, and entries. The error could cause the view
to shift up in a command like "$w yview moveto [lindex [$w yview] 0]".
7/19/95 (bug fix) Canvases weren't always redrawing borders correctly
when they became unobscured. There were also some problems with
improper refresh after size changes.
7/19/95 (bug fix) Fixed bug in text index processing that causes
tests textIndex-11.1 and textIndex12.1 to fail on some platforms.
7/19/95 (bug fix) Fixed bug where 2-second delays were ocurring during
"raise" and "lower" commands for toplevel windows under some window
managers (such as fvwm).
7/20/95 (bug fix) Text searches were misbehaving when there were embedded
windows on the starting line of the search. The most common symptom is
that Tk would fail to find a match at the starting position for the
search.
7/22/95 (bug fix) Fixed core dump that could occur in menus if a checkbutton
entry's -variable option referred to an array (or couldn't be read
by the menu C code for some other reason).
7/22/95 (bug fix) Text widgets didn't update their scrollbars when
changes were made to information that was off-screen.
7/25/95 (bug fix) Fixed core-dump in tkListbox.c that used to happen
in the command ".l bbox end" if the listbox was empty.
7/25/95 (bug fix) Page-up and page-down bindings for listboxes didn't
move active element to remain on the screen.
7/25/95 (bug fix) Patched around H-P compiler problem that results in
core-dumps in tkImgPhoto.c during image handling.
7/25/95 (bug fix) Fixed bug in tkImgPhoto.c that caused core dumps
(during Tk self-tests and other image uses) on AIX and other machines
where "schar" in tkImgPhoto.c was being defined as "short" instead of
"char".
7/26/95 (bug fix) The PPM image reader couldn't handle maximum intensity
values other than 255.
7/26/95 (bug fix) Canvases didn't redraw their borders when the relief
changed from raised to flat.
7/27/95 (bug fix) Canvases didn't set the scrolling values correctly
when no scroll region was specified.
7/28/95 (bug fix) Modified menu and tk_dialog scripts to restore any
old grab that might have been in effect before a menu or dialog was
posted.
----------------- Released patch 4.0p1, 7/29/95 ----------------------
8/4/95 (bug fix) Calls to toupper and tolower weren't using the UCHAR
macro, so they didn't always work in non-U.S. locales. (JO)
8/14/95 (new feature) Added -tearoffcommand option for menus.
8/16/95 (bug fix) Canvases didn't generate proper Enter and Leave
events if the Leave handler for an item reconfigured the canvas in
a way that made the old current item the new current item again. (JO)
8/21/95 (bug fix/feature change) When -takefocus was a script, Tk
was allowing window viewability to override it. Changed so that
viewability is now ignored when -takefocus is a script. (JO)
8/21/95 (bug fixes) Fixed memory leaks in tkSend.c, tkSelect.c, and
tkUnixWm.c (JO).
8/21/95 (bug fix) Text widgets didn't handle commands like
".t search -backwards foo end 1.0" properly: never found foo. (JO)
8/23/95 (new feature) Added Makefile and configure.in support for
dynamic loading. (JO)
8/25/95 (bug fix) The "frame" and "toplevel" commands couldn't safely
be renamed, due to a kludgy way that they shared a single command
procedure. Split into separate procedures. (JO)
8/25/95 (bug fix) Fixed bug in libary/menu.tcl that caused "grab
window not visible" errors for popup menus (and perhaps elsewhere?). (JO)
8/25/95 (bug fix / new feature) The "gray25" bitmap was really only
12.5% on, not 25%. Added new "gray12" bitmap that is the same as the
old "gray25". "Gray25" is still supported for compatibility, but its
use is deprecated. (JO)
8/25/95 (bug fix) Scrollbar bindings didn't properly handle case where
B2 is clicked while B1 is already down. (JO)
8/26/95 (bug fix) Menus were ignoring -activebackground if tk_strictMotif
was set, but not -activeforeground. Changed to ignore both. (JO)
8/26/95 (bug fix) Scales and scrollbars didn't properly handle a
-repeatdelay value of 0 (they shouldn't auto-repeat in this case). (JO)
8/28/95 (bug fix) Tcl errors were occurring for tkPriv(oldGrab) when
clicking on a disabled option menu. (JO)
8/28/95 (bug fix) Changed event-handling code to use FD_SETSIZE instead
of OPEN_MAX, since OPEN_MAX is incorrect on some systems (e.g., IRIX). (JO)
8/28/95 (bug fix) Fixed bug in photo images that caused garbling of
image data in the "put" and "copy" commands if the source data had
only one scan line but had a width less than the width of the target
image. (JO)
8/29/95 (bug fix) Tk used to refuse to post menus if they had no
entries. This made it impossible for a menu to fill itself the first
time it is posted. Changed to allow menus with no entries to be
posted. (JO)
8/30/95 (bug fix) If there was extra space at the bottom of a menu,
it wasn't being redisplayed properly.
8/30/95 (new feature) Added -transient option to menus.
8/30/95 (new features) Added proper button 2 support to both scrollbars
and scales (it sets the slider position from the mouse position). (JO)
8/30/95 (bug fix) Fixed potential core dump that could occur in
photo images (ReadPPMFileHeader could overflow buffer under some bad
inputs, such as certain GIF images). (JO)
8/30/95 (bug fix) Errors of the form `syntax error in expression "!"'
could occasionally happen in tkScaleDrag. (JO)
8/31/95 (new feature) Changed man page installation (with "mkLinks"
script) to create additional links for manual pages corresponding to
each of the procedure and command names described in the pages. (JO)
9/1/95 (new feature) Added "after info" command. Also added checks
so that one interpreter can't cancel another's "after" events. (JO)
9/8/95 (bug fix) Fixed bug that could cause memory corruption and core
dumps if a "fileevent" handler was deleted while the handler was
active. (JO)
9/11/95 Reorganized Tk sources for Windows and Mac ports. All sources
are now in subdirectories: "generic" contains sources that work on all
platforms, "windows", "mac", and "unix" directories contain platform-
specific sources. (SS)
9/11/95 (new feature) Added new "notifier" mechanism to allow multiple
implementations of the mechanisms for finding out about events. This
change was necessary to support Mac and PC platforms, but it may also
allow other goodies such as combining Xt and Tk widgets in a single
application. See the new manual entry Notifier.3 for details. (SS)
9/11/95 (feature change) Changed interface to Tk_RestrictProc so that
(a) it takes a clientData argument instead of display and arg, and
(b) it returns a value that can ask for the event to be discarded as well
as deferred or processed. (SS)
*** POTENTIAL INCOMPATIBILITY ***
9/11/95 (new feature) Added TK_WINDOW_EVENTS #define, which is equivalent
to TK_X_EVENTS but is now preferred, since it applies to all platforms. (SS)
9/11/95 (feature change) Can't export variables anymore because this doesn't
work under Windows DLLs. Eliminated tk_NumMainWindows variable and replaced
with procedure Tk_GetNumMainWindows. (SS)
*** POTENTIAL INCOMPATIBILITY ***
9/11/95 (new feature) Added procedure Tk_PreserveColormap to increment
the reference count on colormaps. Used in photo widgets. (SS)
----------------- Released patch 4.0p2, 9/15/95 ----------------------
----------------- Released 4.1a1, 9/15/95 ----------------------
9/22/95 (renamed files) Changed the names of the bitmap images in the
$tk_library/demos/images directory to use the .bmap file extension. (RJ)
9/22/95 (bug fix) Fixed bug where text widgets could occasionally
display the insertion cursor both at the end of one line and the
beginning of the next. (JO)
9/25/95 (bug fix) Fixed bug that could cause core dumps when an
application uses multiple screens and a binding destroys the main
window (bind code was using MainInfo structure after it had been
freed). (JO)
9/25/95 (bug fix) Text widgets sometimes scrolled backwards on
occasion if you dragged down past the bottom of the scrollbar. (JO)
9/25/95 (bug fix) Fixed bug in menus where a cascaded submenu posted
from a torn-off menu could be left posted if mouse was pulled off the
end of the cascade and released. (JO)
9/25/95 (new feature) Added "--" switch to wish, so that you can
pass arguments like -n through to a script without having wish
interpret them. (JO)
9/25/95 (bug fix) Fixed core dump that could occur for radiobuttons
and selectbuttons if -selectcolor was an empty string. (JO)
9/26/95 (bug fix) Entries didn't used to notice if a trace procedure
on the -textvariable overrode a new value set by the entry. This
could cause the variable to get out of sync with the contents of the
entry. (JO)
9/26/95 (new feature) Added -sliderrelief option to scales, changed
default bindings to change the slider's relief to sunken while it's
being dragged with the mouse. (JO)
9/26/95 (bug fix) TkColor.c wasn't computing colormap size correctly;
could result in X Protocol error for QueryColors when colormaps run
out of colors. (JO)
9/26/95 (bug fix) Wish couldn't handle script files with spaces in
their names. (JO)
9/27/95 (cosmetic clean-up) Removed extraneous spaces to make error
messages consistent: ": should be" is now ": should be". (JO)
9/27/95 (feature change) Modified tk_dialog so that it uses the
option database for the -wraplength option on the message. This
allows the option to be overridden by the caller. (JO)
9/28/95 (bug fix) Wish incorrectly parsed the command line under
Windows, causing backslashes to be substituted. (SS)
9/28/95 (bug fix) Wish now sources wishrc.tcl instead of .wishrc. (SS)
9/28/95 (bug fix) Tk_DoOneEvent returned 0 under some circumstances
when it was possible to find more work to do. For example, if a
signal interrupted select(), but no event handlers were triggered, it
would return 0 even though it could still detect events by reentering
select(). (SS)
9/29/95 (bug fix) "winfo interps" caused a crash under Windows. (SS)
10/1/95 (feature change) Eliminated Tk_NotifyIdle interface in favor of
Tk_IdlePending. (SS)
10/1/95 (bug fix) Turned motion event collapsing into an idle handler
so it will be easier to move the event loop into Tcl. (SS)
10/1/95 (bug fix) Fixed several problems with negative coordinates
in canvases. One example: dragging a canvas rectangle with a wide
border and fractional coordinates could leave junk on the screen
if the rectangle was in negative coordinate space. (JO)
10/2/95 (bug fix) Tk was improperly handling Enter/Leave events
during a button grab. (SS)
10/2/95 (new feature) Added support for the Macintosh do script
('dosc') event. Available only on the Macintosh. (RJ)
10/4/95 (new feature) Added support for compiling with VC++.
Resulting binaries work under Win32s through NT.
----------------- Released 4.1a2, 10/6/95 ----------------------
10/10/95 (new feature) Macintosh Tk now supports the complete set
of X cursors that Unix Tk supports. (RJ)
10/11/95 (bug fix) Tk now supports all of the X11 cursors under
Windows. (SS)
10/11/95 (bug fix) The "wm resizable" command was missing from the
Windows version of Tk. (SS)
10/12/95 (bug fix) Macintosh Tk had problems with clipping toplevel
windows that children of any frame other than another toplevel. (RJ)
10/13/95 (bug fix) Eliminated dependency on MKS toolkit for generating
the tk.def file from Borland object files. (SS)
10/16/95 (bug fix) Fixed clipping and update problems relating to
the raising and lowering of overlapping windows on Mac. (RJ)
10/30/95 (bug fix) When focus-follows-mode (invoked via tk_focusFollowsMouse),
was focussing on windows even in situations where keyboard traversal would
skip the window. Changed to use the tkFocusOK procedure so that the
criteria for focussing are the same in both modes. (JO)
11/2/95 (bug fix) Changed listbox bindings to ignore double-clicks.
This avoids errors that used to occur if a user defined a binding
for double-click that deleted the listbox. (JO)
11/3/95 (feature change) Moved most of the Tk event loop to Tcl. Many
Tk_ names have become Tcl names now:
TK_READABLE => TCL_READABLE
TK_WRITABLE => TCL_WRITABLE
TK_EXCEPTION => TCL_EXCEPTION
TK_DONT_WAIT => TCL_DONT_WAIT
TK_WINDOW_EVENTS => TCL_WINDOW_EVENTS
TK_FILE_EVENTS => TCL_FILE_EVENTS
TK_TIMER_EVENTS => TCL_TIMER_EVENTS
TK_IDLE_EVENTS => TCL_IDLE_EVENTS
TK_ALL_EVENTS => TCL_ALL_EVENTS
Tk_IdleProc => Tcl_IdleProc
Tk_FileProc => Tcl_FileProc
Tk_TimerProc => Tcl_TimerProc
Tk_TimerToken => Tcl_TimerToken
Tk_BackgroundError => Tcl_BackgroundError
Tk_CancelIdleCall => Tcl_CancelIdleCall
Tk_CreateFileHandler => Tcl_CreateFileHandler
Tk_CreateTimerHandler =>Tcl_CreateTimerHandler
Tk_DeleteFileHandler => Tcl_DeleteFileHandler
Tk_DeleteTimerHandler =>Tk_DeleteTimerHandler
Tk_DoOneEvent => Tcl_DoOneEvent
Tk_DoWhenIdle => Tcl_DoWhenIdle
Tk_Sleep => Tcl_Sleep
tkerror => bgerror
Other than the name changes, the functions are the same. In addition,
there are #defines in tk.h so that the old Tk names will still work.
tkerror and bgerror are specially hacked as synonyms, so it should be
safe to use either one. You should switch to the new Tcl names ASAP,
though, since the old Tk names will eventually be desupported. (JO)
11/7/95 (features removed) As part of moving the event loop to Tcl,
the following procedures were deleted:
- Tk_EventInit (the presence of the event loop in Tcl should
make this unneccessary).
- Tk_CreatFileHandler2 (you can get the same effect by using event
sources in Tcl, but you have to modify your code to use the new
Tcl APIs).
- All of the stuff in the manual entries Notifer.3 and QueueEvent.3;
this has changed because the notifier got reworked when it was
moved to Tcl.
*** POTENTIAL INCOMPATIBILITY ***
11/7/95 (feature change) Changed to use exit handler to cleanup windows
in Tk, so Tk no longer needs to have a private copy of the "exit" command.
(JO)
11/7/95 (bug fix) If wish was invoked with a command-line geometry and
a script file (e.g. "wish foo.tcl -geometry 30x20"), and if one of
the windows created by the script used the -setgrid option, then the
width and height from the command line were lost. (JO)
11/8/95 (bug fix) The "see" command didn't work quite right for texts:
if the window was small and you try to "see" a line just offscreen,
Tk centered the line (actually, mis-centered it) when it should have
aligned it at the top or bottom. (JO)
11/9/95 (bug fix) The "send" command crashed if you tried to send to
a different display with "-displayof". (JO)
11/9/95 (bug fix) The Symbol font didn't print right in Postscript
output, because of changes made to re-encode fonts to get proper
ISO Latin1 behavior. Changed the code not to re-encode the Symbol
font. (JO)
11/13/95 (bug fix) Fixed Makefile.in and configure.in for UNIX so that
configure can be run from a clean directory separate from the Tcl source
tree, and compilations can be performed there. (JO)
11/17/95 (bug fix) If a window was gridded, Tk still computed the
default maximum dimensions in pixel units, which resulted in windows
that could grow much larger than the screen. (JO)
11/17/95 (bug fix) If a menus entries were all disabled, posting
the menu and typing Up or Down caused an infinite loop, locking
up the screen (JO).
11/19/95 (bug fix) The focus wasn't being restored properly after a
menu selection in a cascaded menu. (JO)
11/19/95 (bug fix) Menubutton's didn't stipple display their images
differently when disabled. Change to have the same behavior as buttons:
the image is stippled over in the background color when the menubutton
is disabled. (JO)
11/21/95 (bug fix) Changes in display attributes such as font could
cause core dumps in the text widget under some circumstances involving
line wrapping. (JO)
11/22/95 (bug fix/new feature) Changed both the placer and the packer
to ensure that slaves are unmapped whenever the master is unmapped.
This saves time that slaves might otherwise spend trying to redisplay
themselves when they're unmapped. (JO)
11/22/95 (bug fix) Space and return keys didn't work for menus if
they were posted via Alt-x keystrokes. (JO)
11/24/95 (bug fix) tk_dialog procedure had binding for <Return> that
always activated default binding, even if input focus was in some
other binding. Removed this feature, since existing focus support
will already "do the right thing". (JO)
11/24/95 (bug fix) Both canvases and texts could dump core if a binding
(such as ButtonRelease on an internal item) deleted the widget. (JO)
11/24/95 (feature change) Replaced "configInfo" file with tkConfig.sh,
which is more complete and uses slightly different names. Also
arranged for tkConfig.sh to be installed in the platform-specific
library directory. (JO)
11/24/95 (bug fix) It was possible for a slave to be placed or packed
-in itself, with unpleasant consequences. It is now an error for the
slave to be its own master for geometry management. (JO)
11/25/95 (bug fix) The -command option of scales was sometimes being
invoked spuriously (e.g. when the mouse moved in the scale without a
button down). This was because the scale wasn't rounding properly
when setting the scale value from its associated variable. (JO)
----------------- Released patch 4.0p3, 11/28/95 ----------------------
12/18/95 (feature change) Moved Tk_Preserve, Tk_Release, and
Tk_EventuallyFree to Tcl, renamed to Tcl_Preserve etc. Added #defines
to tk.h so that the old names still work. (JO)
12/23/95 (bug fix) If a single process had > 1 Tk application, Tk
didn't guarantee that the application names were unique, which could
cause all sorts of confusion with "send". (JO)
12/23/95 (feature change) Eliminated Tk_CreateMainWindow and moved
all of its functionality to Tk_Init. All that you need to do now
to get Tk in an application is to call Tk_Init. Improved Tk_Init
so that -colormap and -visual command-line arguments are now passed
through to TkCreateFrame. Tk_Main is much simpler now, since a lot
of its functionality has moved to Tk_Init. (JO)
*** POTENTIAL INCOMPATIBILITY ***
12/23/95 (new feature) Added support for Tcl_StaticPackage so
that Tk can now be loaded into slave interpreters with the "load"
command to create new applications. (JO)
12/23/95 (new features) Added support for -colormap and -visual command-
line options for wish. (JO)
1/4/95 (bug fix) Fixed keyboard code to properly handle alt-key
sequences for international keyboards and menu-accelerators. (SS)
1/5/96 (bug fix) Scrollbar code sometimes generated errors on accesses
to tkPriv(relief) during control-clicks. (JO)
1/9/96 (new feature) added the "grid" command to provide a table based
geometry manager. (SU)
1/12/96 (performance optimization) Changed the way tag information is kept
in the text's Btree so the cost of adding and removing tag ranges is no longer
proportional to the number of unique tags in the text. In the old system
the cost of adding N unique tags was O(N-squared). The new implementation is
optimized for tags that only cover a small amount of text, measuring from
their earliest tag range to the end of their last range. In the best case the
cost of adding a tag range is unrelated to the number of unique tags, so the
cost of adding N tags is only O(N). In the worst case, where all tags
cover all the text, the cost is still O(N-squared) to add N such tags.
Deleting tags still has an O(N) cost (so deleting N tags is O(N-squared),
but it is now a factor of 2 faster than the old system. (BW)
1/12/96 (new feature) added the text "dump" operation that returns information
about all elements in a text widget: text, tags, marks, and windows. (BW)
1/12/96 (new feature) added the text "mark next" and "mark previous" operations
to search forward and backwards for the next (previous) mark in the text. (BW)
1/12/96 (new feature) added the text "tag prevrange" operation to search
backwards for the current or previous range of a tag. (BW)
1/16/96 (new feature) Added support for relative widget placement on
the "grid" command. (SU)
1/17/96 (new feature) Modified the Makefile/configure setup to support
compiling Tk as a shared library. Use the --enable-shared option to
the "configure" script. (JO)
----------------- Released 4.1b1, 1/26/96 -----------------------
2/2/96 (bug fix) Frames were getting a default size of 200x200, whereas
there should be no default. (JO)
2/2/96 (bug fix) Argc wasn't getting reset properly after Tk removed
the arguments it understood from those on the command line. (JO)
2/6/96 (bug fix) Fixed off by one error in argument parsing code under
Windows. (SS)
2/6/96 (bug fix) "wm transient" now works under Windows. The resulting
toplevel is created with a modal dialog box frame and will not appear
in the taskbar under Windows '95. (SS)
2/9/96 (bug fix) Changed Makefile.in to use -L and -l for Tcl and Tk
libraries so that shared libraries are more likely to be found correctly
on more platforms. (JO)
2/14/96 (feature change) Eliminated tk_CanvasTagsOption variable because
it can't be exported safely across DLL boundaries. Instead, exported
Tk_CanvasTagsParseProc and Tk_CanvasTagsPrintProc procedures for
use by canvas type managers in creating their own custom options. (JO)
*** POTENTIAL INCOMPATIBILITY ***
2/14/96 (bug fix) "winfo pointerxy" when applied to a non-toplevel window
crashed wish. (SS)
2/14/96 (bug fix) "tkwait visibility" would hang under Windows. (SS)
2/14/96 (bug fix) Cursors were not being updated until an enter event.
In cases where the cursor left the toplevel and reentered before Tk
noticed, the cursor would get "stuck" until the next enter event.
Similarly, if the cursor attribute of a window was updated while the
mouse was in the window, the cursor would not change until the next
time the mouse entered the window. (SS)
2/15/96 (bug fix) If a top-level was resizable in one direction
(e.g. "wm resizable . 0 1"), once the user resized it any changes
in the internally requested size (by the widgets) were ignored,
even for the non-resizable dimension. Fixed to handle the two
dimensions totally independently, so the widget's requests are
honored as long as that dimension hasn't been set by the user. (JO)
2/17/96 (bug fix) If a text widget had very long lines (e.g. more than
32K pixels), integer overflow could occur, resulting in parts of the
line not being visible. (JO)
2/20/96 (feature change) Changed the -minsize option of grid to take
screen units instead of pixels. (SU)
2/20/96 (bug fix) grid row and column weights are compared against
MINWEIGHT (0.001) instead of 0.0 to guard against divide by zero errors
during weight normalization. (SU)
2/20/96 (bug fix) Menu commands were not being invoked sometimes.
There was a race condition that caused events to be processed while a
menu was being unposted. (SS)
----------------- Released 4.1b2, 2/23/96 -----------------------
2/23/96 (bug fix) Alt-keys invoked in torn-off and popped up menus
caused menus to be posted in the parent toplevel. (JO)
2/23/96 (bug fix) Canvases weren't always updating their scrollbars
when they should. (JO)
2/23/96 (bug fix) Fixed core dump that could occur if a WM_DELETE_PROTOCOL
handler generated an error. (JO)
2/24/96 (bug fix) Removed dependencies on Makefile in the UNIX Makefile:
this caused problems on some platforms (like Linux?). (JO)
2/24/96 (feature change) Changed text and entry widgets so that they
set the insertion cursor before inserting during a button-2 click.
Also made optional bindings check for tk_strictMotif at the time of
the event, rather than at the time the bindings are created. (JO)
2/24/96 (bug fix) Tk tended to crash with an X error when unsetting
an icon window (e.g. "wm iconwindow . {}"). (JO)
2/25/96 (bug fix) Wasn't removing windows from the WM_COLORMAP_WINDOWS
property when they were deleted. (JO)
3/1/96 (new feature) Added new "bbox" widget command for entries.
Also modified mouse bindings for entries and texts so that the
mouse position rounds to the nearest inter-character gap, rather
than the left edge of the character under the mouse. This provides
more natural selection behavior. (JO)
3/1/96 (bug fix) Fixed core dump that could occur in image code if an
image was deleted while in use in a widet, then re-used in another
widget while "deleted". (JO)
3/1/96 (bug fix) Calling wish with a single argument caused a crash
under Windows due to an off-by-one error in the argument parsing code. (SS)
3/1/96 (bug fix) Palette management was broken and resulted in
incorrect palette realization and refresh behavior. Also, images were
being drawn incorrectly if they were attached to widgets that had a
private colormap. (SS)
3/2/96 (bug fix) It was possible to press the mouse button over an
option menu, drag to a pulldown menu, and have the pulldown menu
popup in place of the option menu. Fixed this so that option menus
are isolated from each other and from pulldowns. (JO)
3/2/96 (bug fix) Fixed yet another bug that caused long delays when
raising toplevel windows. (JO)
3/2/96 (bug fix) Fixed bug in canvases where zero-sized rectangles
and ovals didn't always redisplay right (could leave trailing
garbage on screen when moved). (JO)
3/2/96 (bug fix) Entry widgets reset their insertion cursor, selection,
and view whenever the text variable changed, plus whenever a "configure"
widget command was invoked and there was a text variable for the
widget. Fixed to preserve this information as much as possible. (JO)
3/5/96 (new feature) Added version suffix to shared library names so that
Tk will compile under NetBSD and FreeBSD (I hope). (JO)
3/6/96 (bug fix) Changed the way certain configure & motion events are
reported. This fixes several bugs in menus & "winfo rootx". (RJ)
3/7/96 (bug fix) Fixed tag remove bug that showed up when draging out a
selection. If you had dragged left, then tried to drag back right, the
left edge of the selection wasn't being updated because the tag remove
wasn't doing anything. (BW)
3/7/96 (bug fix) Fixed the boundary conditions of tag prevrange. The second
index argument wasn't effecting in stopping the search if it fell within
a range. The second index has to come at or before the start of a range
for the range to be found by tag prevrange. (BW)
3/7/96 (bug fix) "puts" to stdout or stderr when running from a script
caused wish41.exe to exit silently. Now the output is silently
discarded without generating an error. (SS)
3/7/96 (bug fix) Fixed bug where wish was treating empty lines in the input
as end of input, if the input came from stdin. This would cause it to
complain about missing closing braces etc. (JL)
----------------- Released 4.1b3, 3/8/96 -----------------------
3/9/96 (bug fix) Fixed bug in text.tcl that could cause errors in text
widgets of the form 'can't use non-numeric string as operand of "-"'. (JO)
3/12/96 (feature improvement) Modified startup script to look in several
different places for the Tcl library directory. This should allow tk
to find the libraries under all but the weirdest conditions, even without
the TK_LIBRARY environment variable being set. (JO)
3/14/96 (bug fix) "wish bogus_file_name" didn't print an error message. (JO)
3/14/96 (bug fix) Button-2 wasn't claiming the focus during paste
operations. (JO)
3/14/96 (bug fix) "tkwait visibility" use to hang forever if its window
was deleted. Now it detects this condition and returns an error. (JO)
3/16/96 (bug fix) Changed configuration stuff to get dynamic loading and
shared libraries working under AIX. (JO)
3/16/96 (bug fix) Fixed core dumps that could occur when a slave interpreter
was deleted in the middle of executin bindings. (JO)
3/18/96 (new feature) Added support for Activate/Deactivate events.
Currently, these new X events will generated only on the Macintosh. (RJ/CS)
3/21/96 (bug fix) The "tag prevrange" command would fail to return the current
range if it began at 1.0 and the starting point of the search was within
the range. (BW)
3/21/96 (configuration improvement) Changed configure script so it
doesn't use version numbers (as in -ltk4.1 and libtk4.1.so) under
SunOS 4.1, where they don't work anyway. (JO)
3/22/96 (bug fix) Made Tk more robust against interpreter deletion. Now it
should be safe to delete an interpreter with a Tk application inside it,
without first deleting the Tk application. (JL)
3/26/96 (bug fix) Tk now returns results from a "send" to an interpreter
in which the Tk application is destroyed, if the interpreter continues
computing after the Tk application is destroyed. Previously any results
computed after '.' was destroyed in the target interpreter were discarded
by the "send". (JL)
3/26/96 (new feature) Tk now provides a static Tktest package which is
present only in test versions of Tk; this allows the testing commands to
be loaded into new interpreters besides the main one. (JL)
3/28/96 (bug fix) Changed the tk_dialog procedure *not* to make the
dialog a transient for its parent. The old behavior meant that the
dialog did not get posted if the parent was iconified. (JO)
4/5/96 (bug fix) Tk would occasionally crash when destroying toplevels
under Windows. (SS)
4/5/96 (bug fix) Fonts were not being properly deallocated, causing
GDI resources to be consumed and never released under Windows. (SS)
4/11/96 (bug fix) Toplevel windows with no specified geometry were
always appearing in the upper left corner of the screen under
Windows. (SS)
4/11/96 (bug fix) "wm minsize" did not properly report the minimum
size imposed by the Windows window manager. (SS)
4/13/96 (bug fix) Text widgets could dump core in some cases where
text was inserted on the top visible line. (JO)
4/16/96 (bug fix) Changed menu code to ignore errors that occur when
restoring a grab: the old grab window might not be visible anymore. (JO)
----------------- Released 4.1, 4/21/96 -----------------------
5/1/96 (bug fix) "option readfile" did not handle files with CRLF
line termination. (SS)
5/1/96 (bug fix) Changed to install tkConfig.sh under "make install-binaries",
not "make install-libraries". (JO)
5/7/96 (bug fix) Moved initScript in tkUnixInit.c to writable memory to
avoid potential core dumps. (JO)
5/7/96 (bug fix) Changed tk_dialog back so that the dialog box is a
transient window again. This is needed to make sure that the dialog
box doesn't get obscured. Also changed it to return -1 if the dialog
window is deleted before the user presses a button. (JO)
5/16/96 (bug fix) Fixed bug that caused core-dumps if a text widget
with -setgrid 1 was deleted by removing its command. (JO)
5/16/96 (bug fix) Fixed bug that caused Tk initialization to use improperly
initialized variables left over from previous invocation of Tk_Init on
another interpreter. (JL)
5/16/96 (new feature) Implemented application embedding on Windows
platforms (only Tk inside another application, not the other way yet). (JL)
5/16/96 (new feature) Added C API Tk_SafeInit that adds Tk to a safe
interpreter. (JL)
5/16/96 (bug fix) Fixed bug that caused Tk initialization to use improperly
initialized variables left over from previous invocation of Tk_Init on
another interpreter. (JL)
5/16/96 (new feature) Implemented application embedding on Windows
platforms (only Tk inside another application, not the other way yet). (JL)
5/16/96 (new feature) Added C API Tk_SafeInit that adds Tk to a safe
interpreter. (JL)
5/22/96 (bug fix) Listboxes weren't properly ignoring double clicks on
button 1. (JO)
6/12/96 (bug fix) Focus was automatically placed on new toplevels.
This caused the titlebar to flash during menubar traversal. (SS)
6/12/96 (bug fix) Iconification of a window with a specified geometry
by using the minimize button would leave the window in an inconsistent
state. When the window was deiconified using "wm deiconify", the
window would continue to display as an icon with the deiconified
geometry. (SS)
6/12/96 (bug fix) Fixed a resource leak where the text widget was not
freeing all of the TkRegions it created. This fix affects all
platforms, but is particularly important for Win32s. (SS)
6/21/96 (configuration change) Added --enable-gcc switch to configure
script to make Tk just like Tcl. Now Tk will not use gcc unless you
request it explicitly. (JO)
7/18/96 (bug fix) Changed "configure" script to add an extra -R switch
(or whatever is appropriate to the platform) if the X library is in a
nonstandard place. This guarantees that the shared library can be
found at runtime without having to set the LD_LIBRARY_PATH variable. (JO)
7/19/96 (bug fix) Fixed bug in tkImgGIF.c that cause core dumps if a
GIF file contained multiple images. (JO)
7/20/96 (bug fix) Deadlock could occur if a recursive series of send
operations involved multiple displays. (JO)
7/23/96 (bug fix) Fixed a resource leak where deallocated XIDs were
taking up memory on Windows and Macintosh platforms. (SS)
7/30/96 (bug fix) A core dump could occur if a <Destroy> handler for
a window tried to create a child in the half-dead window. Fixed by
making the window's name disappear from the name table once it starts
to be deleted. (JO)
----------------- Released patch 4.1p1, 8/2/96 -----------------------
4/30/96 (new feature) Added support for named virtual events. New "event"
command to define/destroy named virtual events and to programmatically
send both real and virtual events to Tk. (CS)
8/6/96 (bug fix) Entry widgets were invoking scrollbar update functions
too often. (JO)
8/9/96 (bug fix) 7/30 change above for <Destroy> handlers broke many
things by making window available during Destroy handler. Reworked
fix for core dump to simply disallow creating children of half-dead
parents. (JO)
8/12/96 (bug fix) Fixed bug where using the Copy menu item on the
Macintosh would append a NULL character at the end of the text. (RJ)
8/15/96 (bug fix) Fixed Mac code so garbage wouldn't be printed in
text and entry widgets when function & other non-printing keys were
pressed. (RJ)
8/15/96 (configuration improvement) Changed the file patchlevel.h
to be tkPatch.h. This avoids conflict with the Tcl file and is now
in 8.3 format on the Windows platform. (RJ)
8/19/96 (bug fix) Fixed a bug under Windows where the initial window
position for a toplevel window was reported as +0+0, regardless of the
actual position. (SS)
8/21/96 (bug fix) If the last character on a line in a text widget was
a space character that didn't completely fit, the text widget would
sometimes add an extra wrap line. (JO)
8/22/96 (feature change) Complete rewrite of the grid geometry manager.
There is a new layout algorithm that produces better (but different)
layouts in many common cases. (SU)
8/22/96 (new feature) There are two new options for the grid geometry
manager, "grid update" which forces an immediate layout calculation,
and a "-pad" option to rowconfigure and columnconfigure that allows for
extra space around widgets. (SU)
8/22/96 (feature change) The order in which the grid geometry manager
reports slaves is now last-managed first. (SU)
8/22/96 (feature change) The column and row weights in the grid
geometry manager are kept internally as integers, instead of floating
point values. Floating point values are still accepted on the command line,
but are truncated to integers. (SU)
8/22/96 (new feature) There are four new commands for opening common
dialog boxes: tk_chooseColor, tk_getOpenFile, tk_getSaveFile and
tk_messageBox. Native dialog boxes are used wherever available. (IL)
8/22/96 (new demos) Added "fsbox", "msgbox" and "clrpick" demos. (IL)
8/23/96 (feature change) Invoking the edit menu on the Macintosh now
generates the following virtual events <<Cut>>, <<Copy>>, <<Paste>>,
and <<Clear>> instead of faking key events. (RJ)
*** POTENTIAL INCOMPATIBILITY ***
8/25/96 (bug fix) Fixed a bug that would cause "grid x" to dump core. (SU)
8/26/96 (new feature) Added the "unsupported1" command to the
Macintosh version of Tk. This command will allow you to set the style
of a new toplevel Window (much like overrideredirect). You can use
this to get access to all of the Native Mac window styles. This is to
hold you over until we get a more general solution added to the
toplevel command. (RJ)
8/26/96 (new feature) Added support to handle the zoom box on a
Macintosh window. (Currently, you can only get a Tk window with a
zoom box by using the "unsupported1" command. (RJ)
8/27/96 (documentation change) Removed old change bars (for changes in
Tk 4.1 and earlier releases) from manual entries. (JO)
----------------- Released 4.2b1, 8/30/96 -----------------------
9/5/96 (bug fixes) Fixed several bugs in file dialogs: individual files
could be listed twice, if a long list of files were shown, and the view
scrolled to the right, and then a different file file was shown, the
scrollregion on the canvas wasn't being reset, so the file dialog was
broken from then on, added an update idletasks so that the watch
cursor was shown when the dialog was thinking. For the motif file
dialog, fixed the weights for resizing. On the clrpicker, fixed the
finalColor variable which caused problems when the OK button was
"clicked" before the dialog was mapped (in the test suite). Added Ioi's
last changes from before he left. For message boxes, if a single button
message box is shown (currently only 'ok'), it is set to be the default
even if not specified. (KC)
9/5/96 (bug fix) Fixed bug on Macintosh where menus would appear in a
seemingly random location. (RJ)
9/5/96 (bug fix) Text widgets had rounding problems with the "yview"
command that caused them sometimes to round to the line before the
correct one. (JO)
9/5/96 (bug fix) Changed grab code to retry grabs after errors where
another application already has the grab. This is needed to get
around race conditions with some window managers and will hopefully
solve the grab errors that people see occasionally. (JO)
9/6/96 (bug fix) Fixed x-y coordinate confusion problem with scaling
of window items in canvases. (JO)
9/11/96 (bug fix) The open and save file dialogs would change the
current working directory under Windows. (SS)
9/12/96 (bug fix) The Tk event system was delivering events to dead
windows, if the event handler got reentered during a Destroy event
handler. This could cause core dumps and other problems. (JO)
9/20/96 (bug fix) In XFillRectangles under Windows, a brush was not
being deallocated. (SS)
9/20/96 (bug fix) The Mac window manager used to generate a mouseUp
event for a top level that was recently raised to the front/active
window which often caused a tk(priv) error. The up event is no
longer generated with solves several problems. (RJ)
9/25/96 (bug fix) The font code under Windows was leaking memory
whenever a new font was referenced using the three part font names. (SS)
9/26/96 (bug fix) The tests for the common dialogs still used the 'testevent'
function. I updated these calls in clrpick.test, msgbox.test, filebox.test
to use the new event gereating mechanism.
9/18/96 (bug fix) Long-standing bug in bind where <Button-1><Button-1> was
reported as <Double-Button-1>, but <Double-Key-a> was reported as "aa". (CS)
9/27/96 (bug fix) Bindings didn't work on 64-bit machines due to changes
made for virtual events. (CS)
9/30/96 (feature change) Binding for new virtual events included both
lower and upper-case, e.g., <<Copy>> was defined as <Control-c> and
<Control-C>. Previously, widgets were directly bound to only lower-case
bindings. The upper-case binding caused incompatibility with some existing
Tcl programs, so the upper case bindings for <<Cut>>, <<Copy>>, and <<Paste>>
were removed. (CS)
9/30/96 (bug fix) The postscript code in the canvas widget now uses
channels to get and write .ps files which fixed a bug on the Mac where
an output file would have mixed EOL characters. In addition, I added
the ability for the prolog to come from the Tk shared library on the
Mac which makes it possible to have a standalone application. (RJ)
10/1/96 (feature change) "grid forget" was renamed "grid remove". A new
command "grid forget" was added whose semantics are the same as "pack forget"
(SAU)
*** POTENTIAL INCOMPATIBILITY ***
10/1/96 (feature change) grid no longer accepts floating point values for
row or column weights, integers must be used. (SAU)
*** POTENTIAL INCOMPATIBILITY ***
10/1/96 (feature change) "grid {column,row}configure <master> <index>"
returns a list of option value pairs for all of the row or column
constraints. It used to return an error. (SAU)
10/1/96 (bug fix) "The way grid handles '^' short-cuts was re-written
to eliminate core dumps. (SAU)
10/3/96 (feature change) A virtual event binding associated with a
given physical event is now considered less specific than a binding for
that same physical event, all other things being equal. (CS).
10/3/96 (bug fix) Under Windows text placed on the clipboard did not
undergo CRLF translation when delivered to other applications. (SS)
10/3/96 (bug fix) Copying an image onto itself with a zoom factor that
caused the image to grow was accessing freed memory. (SS)
10/3/96 (bug fix) Under Windows, the image blank subcommand did not
work. (SS)
10/10/96 (bug fix) Under Windows & Macintosh, XSetFont and XChangeGC
were not implemented, and XSetLineAttributes did not correctly update
the GC. (SS)
10/10/96 (bug fix) Under Windows, 8-bit non-palette displays were not
handled properly. (SS)
10/10/96 (bug fix) Under Windows, images of depth other than 8 or 24
bits were not being rendered properly. (SS)
10/10/96 (bug fix) Under Windows, bitmap subimages were not correctly
displayed. (SS)
10/14/96 (bug fix) Under Window, wm resizable would constrain both
programatic resizes as well as user resizes. (SS)
----------------- Released 4.2, 10/16/96 -----------------------
10/17/96 (bug fix) XCopyPlane was broken under Windows and would cause
a crash when used with a clipping bitmap. (SS)
10/21/96 (bug fix) Added missing resources needed by tk_getOpenDialog
on the Macintosh to the shared library for Tk. (RJ)
10/22/96 (bug fix) Invoking a menu with an Alt key sequence caused an
error due to a misplaced common in library/menu.tcl. (JO)
10/23/96 (bug fix) Errors in files sourced by the Macintosh
"Source..." menu are now correctly reported via the background
error mechanism. (RJ)
10/23/96 (bug fix) Fixed a bug in the Mac subwindow implementation
that caused refreshes to not occur for canvases with embedded
windows. (RJ)
10/24/96 (bug fix) Provided workaround for Apple bug that doesn't
handle zooming correctly for floating windows. (RJ)
10/24/96 (bug fix) Macintosh tearoff menus are now correctly
displayed as Mac floating windows. (RJ)
11/1/96 (bug fix) Restored manual page for procedures like
Tk_CreateWindowFromPath and Tk_DestroyWindow; was accidentally deleted
when Tk_CreateMainWindow procedure was decommissioned. (JO)
11/19/96 (bug fix) Fixed bugs in postscript code that would cause the
prefix to not be included and the output file to have the wrong
permissions. (RJ)
12/2/96 (bug fix) Fixed problem with canvas lines where it didn't
compute bounding boxes correctly for zero-width lines: this could
potentially leave garbage on the screen when items were deleted or
moved. (JO)
12/5/96 (bug fix) Fixed the Macintosh implementation of pointer x/y
which was returning garbage. (RJ)
12/6/96 (bug fix) Fixed grid bug where the positioning of slaves was
incorrect for non-zero values of ipadx and ipady (SU)
12/6/96 (bug fix) Fixed grid bug where slaves got "lost" when an
already managed slave is re-managed in a different master. (SAU)
----------------- Released 4.2p1, 12/8/96 (Mac only) --------------
1/17/97 (bug fix) Fixed bug where the Tk clipboard was not in sync
with the Macintosh clipboard on start-up. (RJ)
----------------- Released 4.2p2, 1/31/97 --------------
----------------------------------------------------------
Changes for Tk 4.2 go above this line.
Changes for Tk 4.3 go below this line.
----------------------------------------------------------
9/19/96 (improvement) Implemented table driven mechanism for deciding
whether a command is safe. If it is added by Tk_Init and it appears in the
table then it is kept, otherwise it is removed in a safe interpreter. (JL)
10/18/96 (new feature) Added support for application embedding:
- Frame and toplevel widgets now have a -container option, which
turns the widget into a container.
- Toplevel widgets have a -use option for requesting that the
widget be embedded in another application.
- Wish also supports a -use command-line option.
Embedding is fully supported under Unix, but the implementation is
not complete under Windows or the Macintosh (it works just well
enough to support the Tcl/Tk plugin). (JO)
10/22/96 (bug fix) The commands "winfo rootx" and "winfo rooty" didn't
work for non-toplevel windows in embedded applications: they returned
the coordinates of the nearest toplevel. (JO)
12/02/96 (new feature) Implemented Safe Tk. Tk can now be loaded into a
safe interpreter that has been created with tcl_safeCreateInterp, by
calling load {} Tk interpname. (JL)
12/02/96 (new feature) A safe Tk interpreter can no longer generate
postscript output from a canvas. (JL)
12/02/96 (new feature) Added -channel option to photo command to allow
image data to be read from a channel. This is useful in safe Tk
interpreters where the data cannot be read directly from a file. (JL)
----------------------------------------------------------
Changes for Tk 4.3 go above this line.
Changes for Tk 8.0 go below this line.
----------------------------------------------------------
9/1/96 (new features) The font mechanism in Tk has been completely
reworked:
- Font names need not be nasty X LFDs: more intuitive names like
{Times 12 Bold} can also be used. See the manual entry font.n
for details.
- Font requests always succeed now. If the requested font is not
available, Tk finds the closest available font and uses that one.
- Tk now supports named fonts whose precise attributes can be
changed dynamically. If a named font is changed, any widget
using that font updates itself to reflect the change.
- There is a new command "font" for creating named fonts and querying
various information about fonts.
- There are now officially supported C APIs for measuring and
displaying text. If you use these APIs now, your code will
automatically handle international text when internationalization
is added to Tk in a future release. See the manual entries
MeasureChar.3, TextLayout.3, and FontId.3.
- The old C procedures Tk_GetFontStruct, Tk_NameOfFontStruct, and
Tk_FreeFontStruct have been replaced with more portable procedures
Tk_GetFont, Tk_NameOfFont, and Tk_FreeFont.
*** POTENTIAL INCOMPATIBILITY ***
(CS)
9/24/96 (bug fix) Under Windows, transient windows would be destroyed
if their master was destroyed, even if the transient window was not a
child of the master. (SS)
10/18/96 (new features) A -menu option has been added to the toplevel
widget command, which allows a menu to operate as a menubar. On the
Macintosh, the menubar is displayed accross the top of the main monitor,
just like with other applications. Under Windows and Unix, the menu is
attached to the toplevel window. Also, changed some semantics.
Tearoff menus will now reflect changes to the menu it was
torn off from, and are deleted when the master menu is
deleted. Tearoffs also reflect more look-and-feel of the
platforms they are running on. (SRP)
10/31/96 (bug fix) Under Windows, missing system cursors would
generate an error instead of falling through to the Tk cursor of the
same name. (SS)
11/7/96 (feature change) Under Unix, default borderwidth is now 1 to
more closely approximate CDE. (SS)
Note: this change was undone on 6/12/97, restoring the default border
width to 2 again. (JO)
11/7/96 (new feature) The button widget now supports a -default option
that draws a platform specific default ring around the widget. (SS)
11/7/96 (feature change) Under Windows, buttons and scrollbars now
have native look and feel. This affects the default class bindings
and the way the some configuration options are interpreted. Refer to
the widget manual pages for more details. (SS)
*** POTENTIAL INCOMPATIBILITY ***
11/19/96 (bug fix) Under Windows, images were incorrectly drawn on
16-bit displays. (SS)
11/19/96 (bug fix) Under Windows, the class name for the main window
(.) was not properly generated from argv0. (SS)
11/20/96 (bug fix) Fixed a couple of bugs in the Canvas widget. The
postscript file is now created with the correct permissions. Also,
the prolog is now properly included in all cases. (RJ)
11/22/96 (bug fix) Under Windows, the initial directory and file names
were not properly translated before being passed to the system
open/save file dialogs. So forward slashes were not converted to
backslashes, and tilde substitution was not performed. (SS)
11/25/96 (feature change) Under Windows and Macintosh, the selection
highlight is now hidden whenever an entry or text widget loses focus.
Also, the previous selection information is not lost when a new
selection is made in a different widget. (SS)
11/26/96 (new feature) Added support for images as primitive types in
text widgets. (SU)
11/30/96 (configuration improvement) Modified configure.in to handle the
case where Tcl and Tk are installed in different places by including both
their library directories in the library search path for Tk. (JO)
12/3/96 (bug fixes) Fixed two bugs related to canvas lines that caused
the screen to be incorrectly refreshed, leaving garbage on the screen.
One bug was related to lines with width zero, and the other was
related to lines with very long miters. (JO)
12/4/96 (bug fix) The "update" command was only syncing the display
for its main window. Changed to sync all displays. (JO)
12/5/96 (bug fix) Color deallocation would occasionally cause a panic
under Windows. (SS)
12/5/96 (bug fix) Errors during startup were silently discarded under
Windows. (SS)
12/5/96 (bug fix) Errors during startup were silently discarded under
Windows. (SS)
12/11/96 (bug fix) Text widgets weren't considering the -spacing1
and -spacing2 options when computing their desired geometry. (JO)
12/12/96 (feature change) Option menus using tk_optionMenu were
created with command entries that set the option menu's variable in a
command string. This has been changed so that the option menu's
entries are now radiobutton entries so that the entries that matches
the variable is now checked when the menu is posted. (SRP)
12/12/96 (feature change) The destroy command no longer returns an
error when a window does not exist. (SRP)
12/13/96 (new feature) grid row/column-configure accepts a list of
indices in addition to a single index. (SU)
12/17/96 (bug fix) Under Windows, command line was not being parsed
correctly if it contained the literal characters \" (CS)
12/17/96 (feature change) Native Windows labels do not get a focus-ring
border. (CS)
12/17/96 (bug fix) Under Windows, colors specified as "#XXYYZZ" where XX, YY,
or ZZ were not valid hex digits were getting a random color value instead of
being an error. (CS)
----------------- Released 8.0a1, 12/17/96 -----------------------
12/23/96 (bug fix) Fixed two menu bugs:
- Menus could get stacked below other windows so that they weren't
visible when posted (especially under olvwm and fvwm).
- Under olvwm if you pressed button 1 over an entry in a new-style
menubar, the menu didn't appear until you moved the mouse slightly.
(JO)
1/6/97 (bug fix) Focus could accidentally get grabbed by an application
away from the rightful focus owner if the focus recently changed from one
application to another. (JO)
1/6/97 (bug fix) Under Windows, the console was appearing even for
non-interactive applications. This was a side effect of a general
problem with the wm state of windows that were being mapped for the
first time. (SS)
1/6/97 (bug fix) Under Windows, the initialization code was not
looking in the right directory for the Tk libraries when the program
being run was not in the Tcl installation heirarchy. (SS)
1/8/97 (bug fix) Under Windows, the windows were not being unmapped
properly, which led to strange packer behavior. (SS)
1/8/97 (bug fix) The "winfo containing" command (and the Tk_CoordsToWindow
procedure) didn't work properly on Unix in the presence of embedding or
menubars. (JO)
1/15/97 (bug fix) Invoking "destroy ." as the command from a menu would
cause Tk to crash because TkMainInfo was freed before menu released its
resources. This bug had already been fixed for scrollbars and buttons. (CS)
1/15/97 (bug fix) Tk is now working under Win32s again, including Win32
version 1.25. Fixed separate problems in fonts and dialogs. (CS)
1/15/97 (feature change) Under Windows, font sizes are now specified in
points, not pixels. The mapping between pointsize and pixels depends on
Windows having accurate metrics for the monitor (plug&play helps). Font
metrics are still reported in pixels. (CS)
1/21/97 (bug fix) Grid no longer reports rows or columns "out of range"
when requesting their constraints. (SAU)
1/21/97 (bug fix) Fixed some window manager related bugs on the
Macintosh. Now better support global grabs. (RJ)
1/21/97 (bug fix) For Windows: Fixed problems with canvas items that
used end caps. Fixed arc implementation to more closely approximate
X. Stippling now works properly on fat lines. (SS)
1/21/97 (bug fix) Small interlaced GIF images were not properly
decoded. (SS)
1/21/97 (bug fix) More changes to image code to try to handle 16-bit
displays properly under Windows. (SS)
1/21/97 (bug fix) Numerous display bugs on Unix and Macintosh are now
fixed. Numerous binding problems for menubars under Unix are now
fixed. Deletion of menu separators under Windows is now fixed. (SRP)
----------------- Released 8.0a2, 1/24/97 -----------------------
1/29/97 (feature change) The -transient field for menus is no longer
supported. There is now a -type field which is used to achieve the
same purpose that the -transient field accomplished. When a menu is
created, the -type field controls whether the menu is a normal
pull-down menu, a floating tearoff menu or a menubar. This option is
normally only used by the library code and internally by the menubar
code. (SRP)
*** POTENTIAL INCOMPATIBILITY ***
2/5/97 (feature change) Changed the photo image mechanism to use
Tcl_Channels instead of FILE * as an argument to image matching
functions. The change will make it much easier to write cross
platform image types in Tk. Note: FILE * is no longer used anywhere
in Tk. (RJ)
*** POTENTIAL INCOMPATIBILITY ***
2/7/97 (enhancement) Were not allowed to bind to virtual events inside of
canvas or text widget (e.g., "$canvas bind all <<foo>> {script}" or
"$text tag bind sel <<foo>> {script}"); it would return an error
disallowing that binding. Now _can_ bind to a virtual event, but that
binding inside of the canvas or text widget will only fire if the
underlying virtual event definition is of type key, button, motion,
enter, or leave; all other physical event types get filtered out by the
widget before the virtual event mapping is done. (CS)
2/22/97 (bug fix) Under Unix, "wm geometry +-20+-30" didn't work. (JO)
2/24/97 (bug fix) The photo image didn't always zero out enough of its
pixel and dither correction arrays. (JO)
2/25/97 (bug fix) Fixed focus problem that could cause "BadMatch (invalid
parameter attributes)" in X_SetInputFocus requests on Unix. (JO)
2/25/97 (bug fix and new feature) Added new "gray75" bitmap, fixed
"gray25" bitmap to really be 25% on (due to an ancient mistake, it
had been only 12% on). (JO)
2/28/97 (bug fix) Windows: made embedding work again on Win32 platform.
Prevent iconification, deiconinification on embedded windows. (JL)
3/4/97 (new feature) Added the ability to manipulate the Apple and
Help menus on the Macintosh; the system menu on Windows; and to have a
right justified Help menu on Unix. See the documentation for menu.n
for more details. (SRP)
3/4/97 (bug fix) Prevented core dump at exit if a <Destroy> binding on "."
gets invoked from destroying a nested widget and the binding causes the
interpreter to be deleted. The core dump was being caused by the
interpreter not being Tcl_Preserve'd during the destroy of ".". (JL)
3/4/97 (bug fix) Under Unix, when embedded Tk is running in a separate
process, correctly handle a race condition: ignore cross-over messages from
the X server for windows that Tk thinks it had already deleted, when the
containing process deletes its container window. Some other race conditions
still remain, e.g. with pixmaps, colormaps and images. (JL)
3/10/97 (bug fix) Prevented core dump in generic console code due to
following a NULL pointer when the console interpreter was already deleted.
This may happen due to different orders of deletion possible at exit. (JL)
3/10/97 (bug fix) Fixed bug on Mac and Windows that caused time to be
ignored when considering if a single click was actually a double
click. (RJ)
3/11/97 (feature change) A major oversight has been that although it was
documented that the Tk programmer was asking for a font in points (1/72 of an
inch), under Unix and Mac Tk was actually asking for a font in pixels, while
only under Windows was it using points. This caused applications to appear
much larger when run under Windows. Now, on all platforms the (purportedly)
correct size in points is used when asking for fonts. However, for
compatibility with existing tk4.2 applications that depend on fonts being of
specified pixel size, XLFDs retain their incorrect behavior of getting a
font in pixels. (CCS)
*** POTENTIAL INCOMPATIBILITY ***
3/13/97 (new feature) "tk scaling" command to setup the mapping between
pixels and points. This scaling factor is used by all widgets that accept
ruler distances, not just fonts. (CCS)
3/24/97 (new feature) Added "-columnbreak" option to menu
entries. When this value is "1", the entry will appear at the top of a
new column in a non-menubar menu. Also added "-hideMargin". Together
with "-columnBreak", menus with palettes are now possible. (SRP)
3/26/97 (new features and bug fix) Titles for tearoff menus were
broken on the Mac and Windows. Added the ability to set the title of a
menu when it gets torn off and override Tk's automatic generation of
the title. On the Macintosh, whenever a menu
label contains three dots in a row "...", the menu will instead
display the elipses character 'É'. (SRP)
3/27/97 (bug fixes) When a menu had an error executing a postcommand,
the error information was getting lost. On Windows, a set of
menubuttons was not highligting properly when clicking between
windows. On Windows, post commands were getting executed twice for
popup menus. On Macintosh, fixed problem where menubars were not
always current. (SRP)
4/11/97 (new feature) Menubuttons now have a direction flag which
controls where the menu popups up relative to the button. (SRP)
4/24/97 (bug fix) Transient windows did not obey the resizable setting
under Windows. (SS)
4/24/97 (bug fix) wm geometry did not correctly parse negative
coordinates. (SS)
4/29/97 (bug fix) Changed the canvas polygon implementation to only
report the coordinates specified by the end user not the automatically
generated end point of a self closing polygon. (RJ)
*** POTENTIAL INCOMPATIBILITY ***
4/23/97 (feature change) Loosened the rules on parsing font names so that
unix-centric fonts in scripts don't break when run on Windows or Mac.
(1) Previously, an XLFD had to specify font name, weight, slant, and size;
now, a minimal XLFD (such as "*-times-*") will be accepted, and all
unspecified attributes will be given default values. (2) Previously, in the
{name size style ...} format, only the style was optional; now both the size
and the style are optional; this solves the problem of old scripts that
contain specifications of the form "-font fixed" or "-font times". (CCS)
5/7/97 (new feature) Menus now send a virtual event <<MenuSelect>>
when an item is highlighted in a menu. Applications can use this to
implement context-sensitive help. (SRP)
5/14/97 (bug fix) Fixed a race condition in the focus code where focus
could be taken away from a window incorrectly. Scenario is that the main
window creates a toplevel and assigns focus to it. When the user moves the
mouse from the main window into the toplevel there was a race between
two different kinds of focus events. (BW)
5/20/97 (bug fix) Fixed bug where the clipboard was not rendered before
the application exited. (SS)
5/22/97 (feature change) When a Tk8.0 menu is configured, all menus
derived from it (menubars, tearoff) mirror the changes. This was not
true for the "-tearoff" flag. In Tk4.6, tearoff menus had the
"-tearoff" flag turned off. Now, the "-tearoff" flag is tracked just
as the other options are. Tearoff menus and menubars with the
"-tearoff" option set will not display the tearoff item. This means
that a given menu entry for a menu and a tearoff of that menu will
match now. (SRP)
*** POTENTIAL INCOMPATIBILITY ***
----------------- Released 8.0b1, 5/27/97 -----------------------
5/30/97 (bug fix) Made the options to the grid command shortcut-able.
Ie. You can now use -stick, in addition to -sticky. (RJ)
6/2/97 (bug fix) Fixed bug in startup code that caused a problem in
finding the library files when they are installed in a directory
containing a space in the name. (SS)
6/2/97 (bug fix) Virtual events associated with <Enter>/<Leave> in text
widget tag caused panic. (CCS)
6/6/97 (bug fix) On some systems, struct timeval.tv_sec is unsigned. (SS)
6/6/97 (feature change) Changed -default option on buttons to take
three states: normal, active, disabled. This allows apps to have a
row of buttons where the default ring moves between buttons without
changing the geometry of the buttons. See the button.n manual page
for more details. (SS)
*** POTENTIAL INCOMPATIBILITY with Tk 8.0b1, but not with Tk 4.2 ***
6/9/97 (bug fix) Canvas postscript printing now works for bitmaps
under Windows. (SS)
6/10/97 (bug fix) Fixed bug in bindings for listboxes where state wasn't
being properly initialized on Shift-1 button presses. (JO)
6/11/97 (bug fix) Text widget display code did not include internal
padding in the damage calculation for borders leading to unrefreshed
sections on Windows and Mac. (SS)
6/12/97 (feature reversal) Changed default border widths under Unix
back to 2 again. This reverses the change made on 11/7/96. (JO)
6/13/97 (bug fixes) In canvas text item: the insertion cursor wasn't shown
if insertion point was at end of text item, it was impossible to click to
position the insertion point after the last character, and @x,y indices were
computed incorrectly if -scrollregion had been specified and canvas was
scrolled. (CCS)
6/13/97 (bug fix) Hitting up/down arrows in a text widget packed in a
toplevel window created with the "-screen" option would cause an error dialog
to pop up. (CCS)
6/12/97 (bug fix) Fixed bug in canvas text items where multi-line
selections were not highlighted properly. This bug existed only in
earlier releases of Tk 8.0. (JO)
6/16/97 (bug fix) In some obscure cases, canvas window items could
accidentally specified a 0x0 size for the window, which caused a
BadValue error under X. (JO)
6/17/97 (bug fix) Tk buttons on the Macintosh will now correctly
draw under MacOS 8.0. (RJ)
6/18/97 (feature change) Changed the way highlights are drawn in text
widgets so that the empty space to the left of a line is highlighted
whenever the leftmost character of the line is highlighted (the empty
space didn't used to be highlighted). This produces a neater left
edge when several lines are selected. (JO)
6/18/97 (bug fix) Tk was using the wrong system colors to draw various
widgets under Windows. (SS)
6/19/97 (bug fix) Under Windows, the "wm transient" and "wm overrideredirect"
subcommands can now be applied to a toplevel to change its window
style at any time during the life of the window. (SS)
6/19/97 (feature change) All GIF and XBM images needed for the "TK"
file dialog box are included in-line in tkfbox.tcl. (IL)
6/27/97 (bug fix) Revamped focus code to eliminate most XSetInputFocus
calls from the FilterEvent procedure. This moves the implementation back
towards the Tk 4.2 implementation, but adds embedding support. There is
still a known bug with twm's NoTitleFocus and embedded windows. However,
the races in a2 and the funny focus stealing in b1 are gone. (BW)
6/25/97 (bug fix) Error message was not properly reported when using
button 'toggle'. (DL)
6/25/97 (bug fix) Removed one source of memory corruption in tkGrid.c code
(fixes what was exercised by "grid col . 0 -w 1; grid col . 0 -w 25") (DL)
----------------- Released 8.0b2, 6/30/97 -----------------------
7/1/97 (bug fix) Menu shortcut and tearoff reported problem fixed. (DL)
7/1/97 (new feature) TK_BUILD_SHARED flag set in tkConfig.sh
when Tk has been built with --enable-shared. TK_SRC_DIR added.
A new tkLibObjs make target, echoing the list of the .o's needed
to build a tk library, is now provided. (DL)
7/9/97 (bug fix) Fixed Tk_CreateFileHandler and Tk_DeleteFileHandler
macros to directly call the Tcl equivalents. (JL)
7/10/97 (bug fix) On the Mac, if the binding for <<MenuSelect>> was
drawing, the drawing could bleed over into the menus. This is now
fixed. (SRP)
7/10/97 (bug fixes) Removed duplicate code related to Tk_SafeInit,
made a single init script handling both cases. (DL)
7/10/97 (feature change) On Unix, to be able to load Tk into a safe
interp you need to set the env(DISPLAY) var. Some API should be
added to allow master crontrol over Tk instantiation. (DL)
7/11/97 (new feature) On the Mac, menus that are too big for the
screen will now scroll. This is part of the interface on the Mac,
impossible under Windows, and is not done for Unix. (SRP)
7/21/97 (bug fix) After fixing the bug that in canvas text item the insertion
cursor wasn't shown if insertion point was at end of text item, introduced a
different bug in where clicking in entry widget with 0 characters would
crash or display garbage. (CCS)
7/22/97 (bug fix) If there were a whole bunch of returns or tabs in a row in
a canvas text item, then the temporary buffer used when outputting
postscript could overflow and overwrite the stack. (CCS)
7/23/97 (feature change) Reenabled "tkwait" in the Safe Tk base. (JL)
7/24/97 (bug fix) Single init script for both Win and Unix.
new library/safetk.tcl using features from new tcl safe.tcl (DL)
7/30/97 (feature change) As a result of native menus, you can no
longer drag through a frame of menubuttons on Macintosh and Windows
and have the menus pop down. You can still click on individual
menubuttons and their menus will pop down. Applications needing to
present a menubar should consider using the new "-menu" configuration
of the toplevel widget to set up menubar which behaves correctly on
Macintosh, Windows and X Windows. (SRP)
7/31/97 (bug fix) Tk widget commands can now safely be hidden commands.
Previously destroying the widget would potentially leave dangling pointers
and destroy an exposed command instead of a hidden one if an exposed
command by that name existed. (JL)
7/31/97 (bug fix) On Windows, popup menus were not tracking the right mouse
button correctly if it was used to invoke the menu. On Unix, tearoff
menus were stealing focus when the mouse moving over them even when
focus following was turned off. (SRP)
8/4/97 (bug fix) Fixed problem under USENIX where raising a toplevel
window could cause an X error if the window had just been withdrawn. (JO)
8/4/97 (feature change) tkerror and bgerror are not anymore hard links
maintained by the Tcl core. The implementation of bgerror provided by
Tk tries, for backward compatibility only, to to call "tkerror" and
if that fails, falls back to the usual dialog and stack trace option
posting. You can thus still use either "bgerror" or "tkerror" as your
application error handling proc, but using "bgerror" is strongly
recommended as support for "tkerror" will eventually vanish in upcoming
releases. (DL)
*** POTENTIAL INCOMPATIBILITY with scripts that were using
the actual hardlink implementation 'features' and with
scripts (if any) that would be calling the default "tkerror" to
simulate error messages (use "bgerror" instead) ***
8/7/97 (feature change/addition) Removed the gif files used for the
Open dialog box on UNIX (they were previously made inline). Added a
new images directory that includes several images of the Tcl and Tcl
Powered logos. (RJ)
8/7/97 (bug fix) Fixed focus to deal with embedding when there is
no window manager. (BW)
8/8/97 (bug fix) Fixed bug in photo image code where photo images from
different interpreters could get confused if they had the same name. (JO)
8/8/97 (new feature) Added new procedure Tk_GetImageMasterData for
mapping image names to master data. (JO)
8/8/97 (feature change) Modified Tk_FindPhoto procedure to require
extra "interp" argument (needed for bug fix above). (JO)
*** POTENTIAL INCOMPATIBILITY ***
8/8/97 (bug fix) Fixed problems under Windows renaming toplevels with
menubars. Fixed problems on all platforms renaming menu widgets and
using new menus of the same name as an old one as cascades. Fixed a
cosmetic problem with tearoff menus. (SRP)
8/13/97 (bug fixes) Fixed "-from" option for the "image create" and
"imageName read" commands for GIF images, which didn't used to work
correctly. Also made transparency work correctly for GIF images
without the TRANSPARENT_GIF_COLOR hack; TRANSPARENT_GIF_COLOR is
now ignored. These fixes were provided by Jan Nijtmans. (JO)
8/13/97 (new feature) added safe::loadTk command to load Tk in a
safe slave interpreter. See the loadTk.n manual page for more
details. (DL)
----------------- Released 8.0, 8/18/97 -----------------------
8/22/97 - (bug fix) Fixed syntax error in tk_popup; option menus now
popup over their selected items like they did in tk4.2. Fixed problem
where cascades sometimes did not work on X. On X, menubars with
checkbuttons and radiobuttons in them would infinite loop when
mappped. (SRP)
8/27/97 (new feature) Added support for new X11R6 colors under Windows
and Mac platforms. (SS)
8/29/97 (bug fix) Wish crashed if stdin was closed. (SS)
9/10/97 (bug fix) "font actual {helvetica 10} -displayof ." wasn't taking
into account the "-displayof" option. This problem also existed for the
"font metrics" and "font measure" commands. (CCS)
9/16/97 (new feature) Added "resource delete" and "resource files"
command to the Mac. Also fixed "resource write" when the resource
was specified by id and already existed. (JI)
9/16/97 (bug fix) Added null bindings to <Command-KeyPress> for the
text and entry widget on the Macintosh. This prevents unbound command
key sequences from having the character echoed to the widget. Also
fixed Cut & Copy bindings. (JI) (RJ)
9/18/97 (bug fix) Revamped Macintosh focus code. Cut, Copy & Paste
virtual events now go to the correct (focus) window. (RJ)
9/19/97 (bug fix) Made Macintosh tearoff menus non-resizable. (RJ)
10/9/97 (bug fix) Default font for new canvas text items was hardcoded to
"Helvetica 12" instead of using DEF_CANVTEXT_FONT defined in
tk{platform}Default.h like all the other widget settings. (CCS)
10/9/97 (bug fix) Image code could cause crashes during "exit" under
some conditions (such as an image named "place"). (JO)
10/9/97 (bug fix) Fixed bug that sometimes prevented listboxes from
scrolling far enough horizontally to see the rightmost character. (JO)
10/10/97 (bug fix) In canvas text items, if the text ended with a \n, it
was not counted in the bbox height, as it did in tk4.2. This caused
"hello\n" to be the same height as "hello" and you couldn't see the
cursor positioned on the next line. (CCS)
10/10/97 (bug fix) The grid geometry manager didn't always properly
forget about windows after a "grid forget" or "grid remove" command:
the windows could reappear on the screen later. (JO)
10/13/97 (bug fix) Selection could not be restored to a text widget
after "selection clear" on Windows. (SS)
10/14/97 (bug fix) If a canvas had contained windows that were off-screen,
the windows could sometimes reappear (in the wrong place) if the canvas was
enlarged. (JO)
10/20/97 (bug fix) Omitting the arguments to the text widget "mark
gravity" option caused a crash. (SS)
10/21/97 (bug fix) Tk did not reset the result after native dialog
modal loops on Window so background events could perturb the dialog
result. (SS)
10/23/97 (bug fix) Memory leak in unix's TkpGetFontFamilies. Thanks
to James Bonfield for the fix. (DL)
10/27/97 (bug fix) Fixed event reporting for the Mac during a grab
when the pointer was out of the toplevel window. (RJ)
10/28/97 (bug fix) Under Unix, override-redirect was getting set
incorrectly for menus, so that "wm overrideredirect" returned 0. (JO)
10/28/97 (bug fix) Under Unix, focus code could sometimes cause the
display to deadlock (it wasn't flushing the output buffer after issuing
an ungrab command). (JO)
10/28/97 (bug fix) If a PPM image file wasn't complete (e.g. it
consisted of nothing but space characters) Tk entered an infinite loop
reading the header. (JO)
10/28/97 (bug fixes) On the Mac, menubars assigned to toplevels would
disappear after a menu item was invoked from them. On Windows,
clicking a system menu with added items and then again with a
different set of added items would crash. On all platforms, a command
menu entry that caused the entry to be deleted, another one created in
its place, and the replacement deleted would cause a panic. On Unix,
<<MenuSelect>> event bindings were firing every time the mouse moved,
instead of everytime the active menu item changed. (SRP)
10/27/97 (bug fix) If a particular race condition occurred under Windows,
Tk would crash complaining about trying to free a color that wasn't
allocated. (SS)
10/28/97 (bug fix) Under Windows, button grabs did not report motion
events that occurred outside of Tk windows. (SS)
10/28/97 (bug fix) Fixed incorrect display of transparent images on
the Macintosh. (JI)
10/29/97 (bug fix) Reworked the handling of out-of-range indices in
the widget command for listboxes: there were all sorts of quirks
before (e.g., ".l delete -1" actually deleted the first element
of the listbox). (JO)
10/29/97 (bug fix) Fixed crash on the Macintosh that could occur if a
window is moved before it is mapped where the X window was created but
the Macintosh port was not. (RJ)
10/29/97 (bug fix) Fixed several errors in how wm state was maintained
on the Macintosh. Tk now also will iconify a toplevel window on the
Mac if the new Appearance Manager is present. (RJ)
10/28/97 (bug fixes) In canvas' postscript command: User name
information was leaked in safe interpreters on Unix (security fix).
Errors while reading prolog.ps were not propagated and the error
message was mixed with partial data. Note: postscript output does
not work in safe interpreters on unix and windows. (DL)
10/28/97 (bug fix) Safe Tk interps on unix were leaking env(DISPLAY). (DL)
10/31/97 (bug fix) Fixed problems related to the input focus when one
application had windows open simultaneously on several displays. (JO)
10/31/97 (bug fix) Fixed several problems with traversal of menus via
the keyboard under Unix. (SRP)
11/4/97 (bug fix) Fixed various word-size related problems for 64-bit
architectures. (SS)
11/5/97 (bug fix) Embedding on Windows was using freed data (crashing
in safe.test with TCL_MEM_DEBUG). NB: Embedding is still not fully
implemented on Windows ! (It works mostly when Tk is embeded into it's
own Tk frame (safe::loadTk case), but not well with respect to resizing
with a toplevel container or with an external process). (DL)
----------------- Released 8.0p1, 11/7/97 -----------------------
11/20/97 (bug fix) Fixed bug on the Mac where the "package require"
command caused menus to stop working. (JI)
11/20/97 (bug fix) Fixed bug in rendering transparent gifs on Text
widgets. (JI)
11/20/97 (enhancement) Made the changes required to work with the new
Apple Universal Headers V. 3.0 so we can compile with CW Pro 2.0 (JI)
----------------- Released 8.0p2, 11/25/97 -----------------------
11/25/97 (security bug fix + added feature) Tk Safe Init now asks
the master's safe::TkInit for the 'argv' to use. This is transparently
dealt with by the safe::loadTk API. New optional "-display displayName"
argument to safe::loadTk, and the "-use" argument accepts both window
Ids and Tk window names: see loadTk(n). Made the ":0.0" default display
work on the Mac as it works on Windows and Unix. (DL)
12/3/97 (bug fix/optimization) Removed unneeded and potentially dangerous
instances of double evaluations if "if" and "expr" statements from
the library files. It is recommended that unless you need a double
evaluation you always use "expr {...}" instead of "expr ..." and
"if {...} ..." instead of "if ... ...". It will also be faster
thanks to the byte compiler. (DL)
12/3/97 (new feature) Added support for browser/plugin style embedding,
and made various other fixes to get the plugin working on the Mac. (JI)
12/8/97 (bug fix) on Windows, using "winfo pathname" before "." was mapped
was crashing. (DL)
---- Shipped as part of the plugin2.0b5 as 8.0p2Plugin1, Dec 8th 97 ----
12/97 (bug fix) more Macintosh embeding fixes needed for the plugin. (JI)
Jan/9/98 (improvement) Allow applications to have custom init script
without having to patch the Tk core: Tk_Init will use an existing
"tkInit" proc if one exists in the interp where one tries to install Tk
instead of defining it's own (tkInit is the transient proc defined in
generic/tkInitScript.h that searches and sources tk.tcl and defines
the 'correct' tk_library). (DL)
---- Shipped as part of the plugin2.0 as 8.0p2Plugin2, Jan 15th 98 ----
6/3/98 (bug fix) Fixed bugs in the tk_getOpenFile under Unix.
1) If the -initialdir option was "." the result would be "././foo.tcl"
instead of an absolute path, like the Windows interface.
2) There is a traceVar on the data(selectPath) where the script was
assumes the window exists. (BS)
6/12/98 (feature change) Focus -force now sets the foreground window
on Windows platforms in addition to moving the focus. (SS)
6/12/98 (bug fix) Fixed bug in Windows font measurement that did not
take kerning into account. (BS)
6/24/98 (bug fix) On Unix, fixed -initialdir switch to tk_getOpenFile
and tk_getSaveFile to convert the specified directory to an absolute
path and to use the current working directory if the specified
directory does not exist. (SS)
6/25/98 (bug fix) On Unix, both the Tk and the Motif file dialogs
would fail if the -parent flag changed between two parent windows that
had been previously used as file dialog parents. (SS)
6/29/98 (compatibility patch) Added reserved fields to several Tk
structures to match additions made by Jan Nijtmans dash patch. This
means that extensions can be compiled against the dash patch
and still work with unpatched Tk, and vice versa.
7/6/98 (bug fix) Added keysym definitions for the new keys on the
Microsoft keyboards. You can bind to <App>, <Win_L>, and <Win_R>,
but you cannot use the Win keys as modifiers. (SS, BW)
7/6/98 (new feature) Added support for the Macintosh Appearance Manager. (JI)
7/24/98 (feature change) Eliminated the static variable that sets
tk_library and simplified search order for tk.tcl. The tk_library
variable can now be set before calling Tk_Init to avoid doing any
searches. If it isn't set, then Tk checks env(TK_LIBRARY), relative
to tcl_library, an install directory relative to the executable, a
source directory relative to the executable, and a tk directory
relative to the source heirarchy containing the executable. See the
comment at the top of generic/tkInitScript.h for more details. (SS)
7/27/98 (bug fix) The bbox for coords in the canvas were incorrectly
including the center of the coord as part of the bound area. (RJ)
8/4/98 (bug fix) Fixed memory leak in Windows menu code. (SS)
8/4/98 (bug fix) Fixed bug where bgerror's were not being generated
from menu callbacks on Windows. (SS)
8/4/98 (bug fix) Alt-key bindings were not being handled properly
under Windows, resulting in annoying beeps. (SS)
8/4/98 (bug fix) Fixed bug in Windows menubar handling that allowed
a shared menubar to be deleted when any window using it was deleted. (SS)
8/4/98 (feature change) Introduced TkReadBitmapFile to replace
XReadBitmapFile so that all Tk file opens go through the Tcl channel
mechanism. This lets us wrap applications that define their own
bitmaps and cursors. Note that XReadBitmapFile is no longer
emulated for non-unix platforms platforms (RJ, BW)
8/5/98 (bug fix) <Insert> binding in entries was masking the virtual
event <<Paste>> binding to Shift-Insert on Windows. (SS)
8/5/98 (bug fix) wm frame would crash if the window had not been
mapped yet on Windows. (SS)
8/5/98 (bug fix) Local grabs did not exclude menus or the caption bar
under Windows. (SS)
8/5/98 (bug fix) Reduced message traffic by setting
WS_EX_NOPARENTNOTIFY on TkChild windows. (SS)
8/6/98 (feature change) Changed tkInitScript.h to use the new
tcl_findLibrary procedure to locate its script library. (BW)
8/10/98 (bug fix) Added special case to font code to limit the
length of displayed strings to avoid wrap-around bugs in some
PC X servers when the pixel length of the string exceeds 0x7fff. (SS)
8/12/98 (bug fix) Macintosh, lock down some of the resources
associated with menus to try and stabilise the menu system
on memory limited machines. (JI)
8/12/98 (windows build change) Moved the tkConsole.obj into the tk80.dll
on windows. If you build your own Tk main program, you no longer
need to compile and link this yourself. (SKS)
-------- Released 8.0.3 to the Tcl Consortium CD-ROM project, 8/13/98 ------
10/5/98 (new feature) Added the event "MouseWheel" that will fire on
Windows applications in response to mouse wheel movement. You can
bind to the MouseWheel event and use the %D substitution to get the
delta the wheel moved. The "event generate" command has also been
enhanced with the -delta flag so you can generate these events from
Tcl. See the bind and event man pages for more details. The listbox
and text widgets' default bindings have been updated to understand
MouseWheel events. (RJ)
10/12/98 (performance improvement) Added hash table to canvas widget
that holds numeric ids for items. The hash table makes item lookup
almost constant time which improves certain canvas operations
(exspecially for canvases with large number items). Thanks to Mark
Weissman <weissman@gte.com> and Jan Nijtmans <Jan.Nijtmans@wxs.nl>
for submitting this improvement. (RJ)
10/15/98 (bug fix) The -fill option to text items in the canvas did
not allow the empty string as an argument (meaning transparent) even
though every other item type did. Thanks to Sebastian Wangnick
<sebastian.wangnick@eurocontrol.be> for supplying this patch. (RJ)
10/20/98 (feature change) The Makefile and configure scripts have been
changed for IRIX to build n32 binaries instead of the old 32 abi
format. If you have extensions built with the o32 abi's you will need
to update them to n32 for them to work with Tcl. (RJ)
*** POTENTIAL INCOMPATIBILITY ***
11/10/98 (feature change) The Macintosh menus will use the Appearance
Theme backgrounds, separators and menu shape, if Appearance version
1.0.1 or greater is installed. The version of Appearance that shipped
with MacOS 8.0 so it will not work with a straight 8.0, but it will
with MacOS 8.1 or later. (JI)
----------------- Released 8.0.4, 11/20/98 -----------------------
11/24/98 (bug fix) On some X servers, XQueryLoadFont will always
return a font, even if the name is meaningless. This prevents Tk from
parsing the font name, so now we perform a quick sanity check on the
name before letting X have it. (stanton)
12/30/98 (bug fix) Fixed bug in "grid forget" that failed to cancel
pending idle handlers, resulting in a crash in a few odd cases. (stanton)
1/28/99 (configure change) Now support -pipe option on gcc. (RJ)
2/4/99 (bug fix) Changed so color tables in photo images are freed
immediately instead of being delayed. This ensures that color tables
are properly disposed at process exit. (stanton)
2/4/99 (bug fix) Changed postscript template to include a European
character with an umlaut when determining font height. (stanton)
2/4/99 (bug fix) If an image bitmap mask changed but ended up with the
same XID, the GC failed to be updated and so the new mask was
not used. (stanton)
2/4/99 (bug fix) Changed so focus window is always set if -force is
specified. This fixes the problem on Windows where Tk does not
activate the window if it already has focus. (stanton)
2/4/99 (bug fix) Fixed so errors in console eval are reported
properly. Eliminated duplicate result messages. (stanton)
2/4/99 (bug fix) Under Windows, changed so toplevels that aren't
resizable don't have resize handles and the zoom box is disabled. (stanton)
2/4/99 (bug fix) Changed to cancel the mouse timer when a user
initiated move/resize loop begins on Windows. (stanton)
2/4/99 (configure change) TK_LD_SEARCH_FLAGS was set incorrectly if
SHLIB_LD_LIBS='${LIBS}', and shared linking is performed through the C
compiler. Systems affected are Linux, MP-RAS and NEXTSTEP, but also
with gcc on many more systems.
2/4/99 (bug fix) Changed some EXTERN declarations to extern since they
are not defining exported interfaces. This avoids generating useless
declspec() attributes and makes the Windows makefile simpler. (stanton)
2/4/99 (bug fix) Changed so keyboard shortcuts will only be found in
the current toplevel. Previously, they might be found in menus
attached to other toplevels that might not even be mapped. (stanton)
*** POTENTIAL INCOMPATIBILITY ***
2/4/99 (bug fix) Changed to treat zero width lines in the canvas like
they have width 1 for purposes of selection. (stanton)
2/4/99 (bug fix) Added a workaround for a bug in GetTextExtentExPoint
on Win NT 4.0/Japanese that cause a crash in some cases. (stanton)
2/4/99 (bug fix) Fixed uninitialized memory access bug in Unix send
code. (stanton)
----------------------------------------------------------
Changes for Tk 8.0 go above this line.
Changes for Tk 8.1 go below this line.
----------------------------------------------------------
1/16/98 (new feature) Tk now supports international characters sets:
- Font display mechanism overhauled to display Unicode strings
containing full set of international characters. You do not need
Unicode fonts on your system in order to use tk or see international
characters. For those familiar with the Japanese or Chinese patches,
there is no "-kanjifont" option. Characters from any available fonts
will automatically be used if the widget's originally selected font is
not capable of displaying a given character.
- Textual widgets are international aware. For instance, cursor
positioning commands would now move the cursor forwards/back by 1
international character, not by 1 byte.
- Input Method Editors (IMEs) work on Mac and Windows. Unix is still in
progress.
7/7/97 (new feature) The send command now works for Microsoft
Windows. It is implemented using Dynamic Data Exchange, and a new
command, dde, allows Tk to send more generic DDE commands to other
applications. (SRP)
11/3/97 (new feature) Major overhaul of code that manages configuration
options to use Tcl_Obj structures instead of strings:
- There is a new set of procedures including Tk_CreateOptionTable,
Tk_InitOptions, and Tk_SetOptions, which replace Tk_ConfigureWidget
and related procedures. The old procedures are still available.
The new procedures use a new format for configuration tables.
See SetOptions.3 for more information.
- There are new procedures Tk_AllocColorFromObj, Tk_GetColorFromObj,
and Tk_FreeColorFromObj to manage colors using objects to hold the
name of the color and cache the corresponding XColor pointer.
There are similar procedures Tk_Alloc3DBorderFromObj,
Tk_AllocBitmapFromObj, Tk_AllocCursorFromObj, Tk_AllocFontFromObj,
and so on to manage borders, bitmaps, cursors, and fonts.
- The old-style procedures such as Tk_GetColor and Tk_GetBitmap no
longer take Tk_Uids for arguments; they just take strings.
- Menus, labels, buttons, checkbuttons, and radiobuttons have been
converted to use the new object-based configuration library.
(SRP & JO)
11/7/97 (improvement) Changed code referring to "interp->result" to call
accessor functions like Tcl_SetResult().
12/23/97 (fix) Fixed transparency and web optimized the palette of
the images/ Tcl powered logos. (DL)
12/16/97 (bug fix) Canvas and text "bind" subcommands generated an
error with no message if called to fetch a binding that didn't exist.
They now silently return without an error like the "bind" command. (SS)
1/13/98 (bug fix) Keysyms for international characters were not being
reported properly under Windows. (SS)
----------------- Released 8.1a1, 1/22/98 -----------------------
2/4/98 (bug fix) Calling XFreeFontNames() twice if couldn't allocate
font. (CCS)
2/10/98 (bug fix) Inlined prolog.ps in tkCanvPs.c to make it accessible
from safe interpreters: canvas postscript now works in safe interps
(like in tk8.0plugin). (DL)
2/11/98 (bug fix) Windows "send" to a remote interp wasn't propagating
$errorInfo correctly from the remote interp to the local invoking interp.
(CCS)
2/11/98 (bug fix) Windows "send" should have accepted "--" to mean "no more
arguments". (CCS)
2/11/98 (bug fix) Windows "send" was concatenating its arguments
incorrectly (not consistent with "eval", "uplevel", or Unix "send"). (CCS)
2/18/98 (bug fix) Macintosh radiobuttons and checkbuttons now color
their backgrounds correctly under Appearance. The controls gadgets themselves
however, remain the Theme colors. (JI)
2/18/98 (improvement) The corner pixels that peek through around the
rounded corners of the Mac button widget are now controlled by the
-highlightbackground, rather than the -background option. (JI)
2/18/98 (improvement) Implemented the intra-application Send on the
Mac (RJ)
2/18/98 (bug fix) Under X, a problem mapping from a fontStructPtr to an
XLFD (no XA_FONT attribute) would lead to dereferencing NULL. (CCS)
----------------- Released 8.1a2, Feb 20 1998 -----------------------
10/21/98 (bug fix) Tk_UnderlineChars did not handle UTF strings properly
so underline indices were in bytes instead of characters. (stanton)
11/19/98 (bug fix) Fixed menus and titles so they properly display
Unicode characters under Windows. [Bug: 819] (stanton)
11/24/98 (bug fix) Fixed a bunch of memory leaks in the Windows menu
code. [Bug: 620] (stanton)
11/25/98 (bug fix) Various small bug fixes: (stanton)
- hidemargin option was not honored properly in menus [Bug: 859]
- disabled menu entries were getting reenabled whenever the
mouse passed over the entry [Bug: 860]
- fixed deletion order bug where a crash would result if a
binding deleted "."
11/30/98 (bug fix) The error result was getting lost when restoring
configuration options in buttons. [Bug: 619] (stanton)
12/8/98 (bug fix) The Windows clipboard was not correctly traslating
multibyte characters. [Bug: 935] (stanton)
----------------- Released 8.1b1, Dec 11 1998 -----------------------
1/29/99 (bug fix) Fixed bug in "grid forget" that failed to cancel
pending idle handlers, resulting in a crash in a few odd
cases. (stanton)
2/4/99 (bug fix): Fixed uninitialized memory access in
Tk_SetAppName. [Bug: 919] (stanton)
2/4/99 (bug fix): Added a workaround for a bug in GetTextExtentExPoint
on Win NT 4.0/Japanese. [Bug: 1006] (stanton)
2/4/99 (bug fix): Changed so keyboard shortcuts for menus will only be
found in the current toplevel. Previously, they might be found in
menus attached to other toplevels that might not even be mapped.
[Bug: 924] (stanton)
2/4/99 (bug fix): Changed to treat zero width lines in the canvas like
they have width 1 for purposes of selection. [Bug: 925] (stanton)
2/4/99 (bug fix): TK_LD_SEARCH_FLAGS was set incorrectly if
SHLIB_LD_LIBS='${LIBS}', and shared linking is performed through the C
compiler. Systems affected are Linux, MP-RAS and NEXTSTEP, but also
with gcc on many more systems. [Bug: 908] (stanton)
2/4/99 (feature enhancement): Changed so windows that aren't resizable
don't have resize handles and the zoom box is disabled on
Windows. (stanton)
2/4/99 (bug fix): Fixed so errors in console eval are reported
properly. Eliminated duplicate result messages. [Bug: 973] (stanton)
2/4/99 (bug fix): Changed so focus window is always set if -force is
specified. This fixes the problem on Windows where Tk does not
activate the window if it already has focus. (stanton)
2/4/99 (bug fix): If an image mask changed but ended up with the same
XID, the GC failed to be updated and so the new mask was not
used. [Bug: 970] (stanton)
2/12/99 (new feature): Tk is now thread safe. You enable this by
configuring with --enable-threads. Tcl must also be compiled with
--enable-threads. See Tcl for more information about the threading
interfaces. (lfb)
2/25/99 (bug fix) Under Windows, wish can now inherit pipe handles on
stdio so it is possible to use the wish executable in a command
pipeline to capture the output of puts or read from the pipe with
gets. (redman)
3/1/99 (bug fix) Under Windows, Tk was not properly handling focus and
activation changes in some cases. (redman)
3/10/99 (new feature) Tk now uses the new stub library feature in Tcl.
The Tk library now contains no direct references to any symbols in
Tcl. In addition, there is a new Tk_MainEx() function that takes an
interpreter as an argument. See the Tcl documentation for more
information about the stubs mechanism. (redman)
3/14/99 (feature change) Test suite now uses "test" namespace to
define the test procedure and other auxiliary procedures as well as
global variables.
- Global array testConfige is now called ::test::testConfig.
- Global variable VERBOSE is now called ::test::verbose, and
::test::verbose no longer works with numerical values. We've
switched to a bitwise character string. You can set
::test::verbose by using the -verbose option on the Tk command
line.
- Global variable TESTS is now called ::test::matchingTests, and
can be set on the Tk command line via the -match option.
- There is now a ::test::skipTests variable (works similarly to
::test::matchTests) that can be set on the Tk command line via
the -match option.
- The test suite can now be run in any working directory. When
you run "make test", the working directory is nolonger switched
to ../tests.
(hirschl)
*** POTENTIAL INCOMPATIBILITY ***
----------------- Released 8.1b2, March 16, 1999 ---------------------
3/23/99 (feature change) Test suite now uses "tcltest" namespace to
define the test procedure and other auxiliary procedures as well as
global variables. The previously chosen "test" namespace was thought
to be too generic and likely to create conflits.
(hirschl)
*** POTENTIAL INCOMPATIBILITY ***
3/26/99 [bug fix] Fixed bug reported by Bryan Oakley in the
menubutton bindings. There was a false assumption that there was
always a menu attached to the button. [Bug 1116] (surles)
3/26/99 (feature change) Removed --enable-tcl-stub from the configure
script. Linking Tk to Tcl stubs is causing too many problems when
linking executables like wish. Until the Tk is a fully loadable
extension, linking against the Tcl stubs is not supported in Tk.
(redman)
3/26/99 (feature change) --nameble-shared is now the default and builds
Tk as a shared library; specify --disable-shared to build a static Tk
library and shell.
*** POTENTIAL INCOMPATIBILITY ***
3/29/99 (api change) Standardized text layout and font interfaces
so they are consistent with respect to byte versus character
oriented indices. The layout functions all manipulate character
oriented values while the lower level measurement functions all
operate on byte oriented values. (stanton)
4/1/99 (bug fix) Image handlers are finalized before the font subsystem
to fix crashes during finalization of complex widgets. (stanton)
4/1/99 (feature change) Removed the send command on Windows. Moved
the DDE basis of that command out to its own extension. The send
implementation on top of DDE was causing Tk to lock up in some cases.
(redman)
4/5/99 (bug fix) Fixed handling of Unicode in text searches. The
-count option was returning byte counts instead of character counts.
4/5/99 (feature change) Cut and paste to an entry widget returns the
selection instead of the widget contents, which can be different if the
-show option is used to hide the display. (stanton)
--------------- Released 8.1b3, April 6, 1999 ----------------------
4/20/99 (compiler fix) changed definition of Status type to use a
typedef instead of a #define to avoid conflicting with the cygwin win32
headers. (redman)
4/22/99 (bug fix) Set the -translation and -encoding options to binary
for image files. (redman)
4/27/99 (bug fix) Changed to avoid the need for forward declarations in
stub initializers. Added extern "C" blocks around stub table pointer
declarations so the stubs can be used from C++ code. (stanton)
--------------- Released 8.1 final, April 29, 1999 ----------------------
5/7/99 (bug fix) Fixed bug wheretk_popup fails when called too
quickly. [Bug: 2009] (stanton)
5/18/99 (bug fix) Fixed clipboard code so it handles Unicode data
properly on Windows NT and 95. [Bug: 1791] (stanton)
5/19/99 (bug fix) Add extern "C" block around entire header file for
C++ compilers to fix linkage issues. Submitted by Don Porter and Paul
Duffin. (redman)
--------------- Released 8.1.1, May 25, 1999 ----------------------
5/21/99 (bug fix) Fixed clipboard code to handle lack of CF_LOCALE
information (from command.com). (stanton)
6/1/99 (bug fix) Improved I18N selection support. COMPOUND_TEXT
is converted to/from iso2022, and STRING is converted to/from
iso8859-1. More work is needed. (stanton)
6/3/99 (bug fix) Fixed selection code to handle Unicode data in
COMPOUND_TEXT and STRING selections. [Bug: 1791] (stanton)
6/16/99 (new feature) Changes to makefiles and configure scripts to
support TEA specification. (wart)
6/30/99 (bug fix) Removed deprecated functions, patch from Jan
Nijtmans. [Bug 2080] (redman)
6/30/99 (bug fix) Applied patch to allow Img extension to work with
8.2, patch from Jan Nijtmans. [Bug 2068] (redman)
6/30/99 (bug fix) Applied patch from Don Porter to prevent the Windows
shutdown code from calling Tcl functions when the stub table has not
been initialized in TkWinWmCleanup. [Bug: 2269] (redman)
7/8/99 (bug fix) Changed TkWinChildProc to pass WM_WINDOWSPOSCHANGED
through to DefWindowProc to make OpenGL sub-windows happpy. This
allows Windows to generate the WM_SIZE and WM_MOVE messages. (stanton)
--------------- Released 8.2b1, July 14, 1999 ----------------------
7/16/99 (bug fix) Copy prolog.ps from the generic directory for
install-libraries make target. (redman)
7/22/99 (bug fix) Applied patch from Jeff Hobbs to fix
library/menu.tcl. [Bug: 2425] (redman)
7/22/99 (bug fix) Make install-sh have executable permissions before
calling from the Makefile. [Bug: 2413] (redman)
7/22/99 (bug fix) Block out sys/stat.h include with #if to allow
extension writers to use the MetroWerks compiler on Windows.
[Bug: 2385] (redman)
7/29/99 (bug fix) Allow tcl to opn CON and NUL on Windows, moved check
to Tk Console code instead. [Bug: 2393 2392 2209 2458] (redman)
7/30/99 (bug fix) corrected the Windows build of threaded Tk from both
sets of makefiles (nmake and gmake). (redman)
7/30/99 (bug fix) Added XFillRectangle to stub table, patch from Jan
Njitmans. [Bug: 2446] (hobbs)
8/1/99 (bug fix) Wrapped #define of panic() inside #ifndef blocks to
avoid compiler errors on Macintosh. Patch from Vince Darley.
[Bug: 2389] (hobbs)
--------------- Released 8.2b2, August 5, 1999 ----------------------
8/13/99 (Mac) Rearranged the projects in the tkMacProjects.sea.hqx so
that the build directory is separate from the sources. Fixed bug in
Tk_DrawChars(). (Jim Ingham)
--------------- Released 8.2.0, August 17, 1999 ----------------------
9/21/99 (bug fix) fixed 'wm deiconify' quirks on Windows. (hobbs)
9/21/99 (bug fix) fix fg<>bg GC swap bug for canvas. [Bug: 2676] (hobbs)
9/21/99 (config fix) fixed AIX config issues for Tk. (hobbs)
9/24/99 (feature change) tk_dialog now uses {Times 12} by default. (hobbs)
--- Released 8.2.1, October 04, 1999 --- See ChangeLog for details ---
10/30/99 (bug fix) fixed XKeysymToKeycode to handle mapping of symbolic
keysyms (Left, Home, ...) with event generate (hobbs)
10/30/99 (bug fix) change tkEntrySeeInsert to avoid the use of a while loop
that could eat CPU tremendously. Behavior of moving the cursor at the
right edge changes slightly. [Bug: 3195] (hobbs)
10/30/99 (bug fix) changed tkScrollButtonUp to check for existence of
tkPriv(relief) in order to avoid spurious release events (hobbs)
--- Released 8.2.2, November 04, 1999 --- See ChangeLog for details ---
11/19/99 (bug fix) fixed expression error that could cause
'malformed bucket chain' error in tkEntry.c. (hobbs)
11/19/99 (bug fix) fixed Tk_NameOfColor (hobbs)
--- Released 8.2.3, December 16, 1999 --- See ChangeLog for details ---
1999-09-01 (feature enhancement) rewrote runtime libraries to use new
Tcl functions where appropriate
1999-10-28 (feature enhancement) added Img patch from Jan Nijtmans that
makes the image command Tcl_Obj-based, adds support for binary -data args,
adds alpha channel to images, adds GIF write capability (RLE). Binary
compatability is maintained, and source level compatibility is retained
with -DUSE_OLD_IMAGE. (nijtmans)
1999-11-16 (feature enhancement) made listbox Tcl_Obj based, added
-listvariable option and itemconfigure command to allow coloring
individual items. (melski)
1999-11-23 (feature enhancement) added TK_OPTION_DONT_SET_DEFAULT as an
equivalent to TK_CONFIG_DONT_SET_DEFAULT (hobbs)
1999-11-24 (feature enhancement) updated dialogs to use color icons on
Unix, center properly over -parent. (hipp, hobbs)
1999-12-01 (feature enhancement) added hooks into main() code to support
"big" shells more easily. (redman)
1999-12-02 (feature enhancement) converted Tk_DestroyCmd, Tk_LowerCmd and
Tk_RaiseCmd to their ObjCmd equivalent.
1999-12-12 (bug fix) fixed bug in TextSearchCmd for multibyte chars
1999-12-13 (feature enhancement) added support for pointer warping via the
event -warp option, added some items from Dash patch: canvas widget now
Tcl_Obj-based, added Tk_CreateSmoothMethod, added support for <Quadruple>
clicks, entry widget validation routines, new -state hidden in text
widgets, new -state -active* -disabled* -offset options to canvas items
(see man page for full docs). New features include dashed line support on
the canvas, -elide support for TkMan, postscript printing of images and
windows from the canvas. Binary compatibility is maintained with 8.2, and
source level compatibility is kept by using -DUSE_OLD_CANVAS.
(hobbs, nijtmans, et al)
1999-12-16 (feature enhancement) added "bitstream cyberbit" to list of
font fallbacks. (hobbs)
1999-12-16 (feature enhancement) added new 'tk useinputmethods ...' command
to provide support for disabling/enabling the use of XIM on X. This was
previously all done at compile time, and always on. Now it is turned off
by default, even when available, and the user must turn it on to use XIM
(per display).
*** POTENTIAL INCOMPATIBILITY ***
user must add 'tk useinputmethods 1' to retain old style. (hobbs)
1999-12-16 (feature enhancement) added proper support for -initialfile
to tk_get*File, and made Unix version better match Windows file box
that it was emulating. (hobbs)
1999-12-16 (bug fix) removed necessity of 'update idle' before 'wm
deiconify' on Windows. (mao)
1999-12-16 (feature enhancement) added support for Windows system cursors
to TkGetCursorByName (use -cursor @filename)
1999-12-21 (bug fix) fixed lack of refresh for thin frames (darley)
1999-12-21 (bug fix) fixed panic in Tk_CoordsToWindow to print error
to stderr instead (for Tix) (hobbs)
1999-12-21 (bug fix) fixed segv with scale widget when using -cursor (hobbs)
--- Released 8.3b1, December 22, 1999 --- See ChangeLog for details ---
2000-01-05 (bug fix) Applied fixes for unprotected arg passing through eval
and after in Tk runtime code [Bug: 3943] (hobbs)
2000-01-05 (bug fix) Applied fix for i18n problems with Mac clipboard
[Bug: 3544] (hobbs)
2000-01-05 (feature change) removed the 8.3b1 introduced -state option
for text tags, and documented -elide (-state hidden == -elide true) (hobbs)
2000-01-12 (bug fix) fix Windows 'wm deiconify' to zoomed state [Bug: 2077]
and fixed possible flashing of unmapped toplevel in deiconify [Bug: 3338]
and fixed unwanted mapping of transient window [Bug: 572] (hobbs)
2000-01-12 (feature enhancement) extended 'wm state' to accept a state
to set for the toplevel, and added support for zoomed (maximized) state
on Windows (hobbs)
2000-01-12 (bug fix) Applied fix for cursor to not blink when entry or
text widget was disabled [Bug: 1807] (hobbs)
--- Released 8.3b2, January 13, 2000 --- See ChangeLog for details ---
2000-01-20 (bug fix) fixed interpretation of consecutive ^ characters in
grid command (melski)
2000-01-20 (bug fix) fixed -select(bg|fg) class names in listbox (hobbs)
2000-01-20 (bug fix) fixed handling of too few coords for line item type in
canvas (hobbs)
2000-01-20 (bug fix) fixed dialog's association with parent (melski)
2000-01-26 (bug fix) fixed handling of binary data for -data option to
image create (melski)
2000-01-26 (feature enhancement) improved GIF decoding speed by ~60%
(melski)
2000-01-26 (feature enhancement) added tk_chooseDirectory implementation
for Unix and Mac (nelson, melski)
2000-02-01 (bug fix) fixed resolution rounding problem in scale (porter)
and fixed potential Unix seg fault due to use of ckfree instead of
Tcl_EventuallyFree (hobbs)
2000-02-01 (bug fix) fixed handling of negative dash values for canvas
items (nijtmans)
2000-02-01 (bug fix) fixed dialog lockup on Windows where once the native
dialog disappeared, the parent window could end up locked up (hobbs)
2000-02-03 (bug fix) fixed text dump to use char indices instead of byte
indices (melski)
2000-02-07 (bug fix) fixed handling of default extension in unix file
dialogs (dejong)
2000-02-08 (bug fix) corrected windows symbol font use to restrict itself
to 8-bit chars (kenny)
2000-02-08 (feature enhancement) improved support for moving from the old
style image C API to the new obj'ified one with new Tk_InitImageArgs
command and stub'ing of image code. See docs for how to make the
transition. (nijtmans)
2000-02-08 (bug fix) fixed incorrect handling of CapsLock on Win9* and the
use of dead keys on international keyboards (spjuth)
2000-02-10 (bug fix) brought Mac back to building state, added support
for Appearance Manager (ingham)
2000-02-10 (feature enhancement) added support for buttons 4 && 5 as
mousewheel style scrolling in listbox and text widget for Unix.
--- Released 8.3.0, February 10, 2000 --- See ChangeLog for details ---
2000-03-02 (bug fix) fixed crash in listbox when cursor was configure and
then widget was destroyed (hobbs)
2000-03-02 (feature enhancement) added %V substitution to entry widget
validation to clarify type of validation occuring (hobbs)
2000-03-29 (config enhancement) improved build support for gcc/mingw on
Windows (nijtmans, hobbs) and added RPM target (melski)
2000-03-24 (bug fixes) numerous corrections for more correct Unix dialog
behaviors (melski)
2000-03-27 (bug fix) fixed mem leak in wm commands (hu)
2000-03-31 (bug fix) correct initialization of Windows static builds and
added Unicode aware open/save file dialogs on Windows (hobbs)
2000-03 (bug fix) canvas: corrected support for transparency in dashed
lines on Windows (nijtmans); added support for postscript generation of
images on Windows, also fixing transparency printing (biancardi); corrected
handling of configure options in non-empty canvas (melski)
2000-04-07 (bug fix) correct font name length restriction that prevented
the use of long named (>16 char) fonts on NT/2000 (hobbs)
2000-04-07 (bug fix) fixed safe Tk to work in base cases (hobbs)
2000-04-10 (bug fix) corrected Alt-Key event generation and handling of
Alt-sequence Windows special char generation and (Control|Shift|Alt)_L/_R
determination (melski)
2000-04-10 (bug fix) correctly check state of parent when popping up
bgerror dialog. (melski)
2000-04-11 (feature enhancement) msgcat now searches up the namespace chain
for a match instead of just in the local namespace (hershey)
2000-04-12 (bug fix) corrected handling of Windows clipboard to allow for
use of user-defined types within the Tk app (hobbs)
2000-04-13 (feature enhancement) improved handling of shadow determination
for 3D borders in very light/dark cases (hipp, melski)
2000-04-13 (bug fix) correctly color separator bg in menus on Windows
(melski)
2000-04-14 (bug fix) improved handling of scale widget, reduced number of
redraws (hobbs)
2000-04-17 (feature enhancement) made shift-selection more Windows-like
(intuitive) in text widget (melski)
2000-04-22 (bug fix) mac bug fixes, nav services handling (ingham)
2000-04 more docs for public APIs (melski)
--- Released 8.3.1, April 26, 2000 --- See ChangeLog for details ---
2000-04 (doc updates) extended, updated docs (melski)
2000-05-09 (feature change) removed WS_EX_TOOLWINDOW style bit for
transient windows on Windows platforms, so that transients have
full-size titlebars (melski)
2000-05-09 (bug fix) fixed calling of takeFocus proc (nemethi)
2000-05-11 (bug fix) corrected handling of 3DBorder, Cursor and Color
objects on multiple screens (hobbs)
2000-05-12 (feature enhancement) improved support for chars in 0-255
range for bitmap ANSI fonts (spjuth, hobbs)
2000-05-12 (widget enhancement) added support for -repeatdelay,
-repeatinterval for command buttons; and -compound (image and text
simultaneously) for labels, check-, radio-, and command buttons (melski)
2000-05-14 (widget change) added "readonly" state for entries and
changed behavior of "disabled" entries; added -readonlybackground
option for entries (melski)
*** THIS IS A BACKWARDS INCOMPATIBLE BEHAVIOR CHANGE ***
2000-05-15 (feature enhancement) added [image inuse] command (melski)
2000-05-15 (feature enhancement) added -nice option to [bell] command (duncan)
2000-05-17 (widget enhancement) added -overrelief option for
check/radio/buttons (melski)
2000-05-26 (feature change) added support for new syntax in
Tk_OptionSpec tables; if the database name for an option contains an
embedded "." it indicates that the name contains an overriding window
class specifier in addition to the database name, which allows widgets
to perform queries for certain options as if they were options for a
different widget class (melski)
2000-05-28 (new widget) added spinbox widget (hobbs)
2000-05-31 (feature change) replaced bgerror dialog with a new and
improved one (fellows, melski)
|