-
Notifications
You must be signed in to change notification settings - Fork 0
/
changes
7594 lines (5246 loc) · 312 KB
/
changes
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
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.
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