1This file summarizes all changes made to Tk since version 1.0 was
2released on March 13, 1991.  Changes that aren't backward compatible
3are marked specially.
4
5SCCS: @(#) changes 1.142 97/01/29 13:25:59
6
73/16/91 (bug fix) Modified tkWindow.c to remove Tk's Tcl commands from
8the interpreter when the main window is deleted (otherwise there will
9be dangling pointers to the non-existent window).
10
113/16/91 (bug fix) Modified tkColor.c not to free black or white colors:
12some X servers get upset at this.
13
143/18/91 (bug fix) Modified tkShare.c to fix bug causing "DeleteGroup
15couldn't find group on shareList" panic.
16
173/18/91 (bug fix) Several changes to tkListbox.c and tkScrollbar.c to
18handle listboxes (and scrollbars) with zero total entries in them.
19
203/22/91 (bug fix) Fixed a few ='s in tkListbox.c that should be ==.
21
223/22/91 (bug fix) Fixed error in main.c that caused BadWindow errors
23in some cases where wish scripts invoke "destroy .".
24
253/23/91 (new feature) Added Tk_CancelIdleCall to remove Tk_DoWhenIdle
26handler.
27
283/23/91 (bug fix and new feature) Added -name option to main.c, made
29it more clever about choosing name (was always using the name "wish"
30on most Unix systems).
31
323/23/91 (new feature) Added TK_CONFIG_STRING option to Tk_ConfigureWidget,
33used it to malloc strings for various widget options that used to be
34Tk_Uid's (e.g. button text, message strings, etc.).  Eliminates core
35leaks when values change in continuous non-repeating fashion.
36
373/29/91 (new feature) Added Tk_Preserve, Tk_Release, and
38Tk_EventuallyFree procedures to help manage widget records and avoid
39premature memory free-ing.
40
414/4/91 (bug fix) Fixed problem in tkWm.c where top-level window geometry
42wasn't tracking correctly when wm-induced size change also changed window
43position (e.g. menus wouldn't be displayed at the right places).
44
454/5/91 (new feature) Added "invoke" option to widget command for buttons,
46check buttons, and radio buttons.
47
484/5/91 (new feature) Added "unpack" option to "pack" command.
49
504/5/91 (bug fix) Changed tkPack.c to use new Tk_Preserve code and be
51more careful about window deletions that occur while repacking is in
52progress.
53
544/6/91 (bug fix) Major overhaul of deletion code in all widgets to use
55Tk_Preserve and Tk_Release.  Should fix many problems.
56
574/6/91 (bug fix) Changed "winfo children" to generate correct lists
58when child names have embedded spaces.
59
604/6/91 (new feature) Added "screenheight" and "screenwidth" options to
61"winfo".
62
634/18/91 (bug fix) Binding mechanism didn't correctly handle very long
64%-substitutions in commands (e.g. long path names) and caused memory
65to be overwritten.  Modified tkBind.c to fix.
66
67---------------------- Release 1.1, 4/18/91 -------------------------
68
694/19/91 (bug fix) Inconsistent ICCCM handling of coordinates of reparented
70windows causes windows to gradually walk south when moved or resized.
71Fixed tkWm.c to patch around the problem.
72
73---------------------- Release 1.2, 4/24/91 -------------------------
74
754/26/91 (new feature) Added -geometry and -display switches to wish.
76Also wrote wish manual entry.
77
785/3/91 (bug fix) Fixed bug in tkListbox.c that caused garbage to appear
79at right edge of window when strings were to large to fit in window.
80
815/3/91 (bug fix) Fixed bug in tkListbox.c where topIndex wasn't getting
82updated when elements were deleted:  tended to cause errors in
83communication with scrollbars.
84
855/16/91 (bug fix) Fixed bug in tk3d.c, which caused core dumps when
86consecutive points in a polygon were the same (happened with some
87configurations of radio buttons, for example).
88
895/16/91 (bug fix) Fixed main.c to allow stdin to be redirected.
90
916/1/91 (bug fix) Make sure that pointers are never used after being
92freed.
93
946/15/91 (bug fix) Fixed bug in tkBind.c that caused current binding
95values to not always be printed correctly.
96
976/15/91 (bug fix) Make sure that interpreters are always unregistered
98when their main windows are deleted, and make wish delete the main
99window before exiting.
100
1018/21/91 (misfeature correction)  Automatically set source of window
102position to "user" in "wm geometry" command, unless it has been
103explicitly set to "program".
104
1059/5/91 (bug fix) Modified option code to accept '#' as a comment
106character in .Xdefaults files, in addition to '!'.
107
1089/10/91 (misfeature correction) Changed binding mechanism so that
109numeric %-sequences are output in decimal instead of hex.
110
1119/19/91 (bug fix) Fixed bug in Tk_DoOneEvent(1) where it wasn't
112checking files and X connections properly so it missed events.
113
11410/6/91 (new feature) Reorganized tkBind.c to provide generic "binding
115table" structure, which can be used to create bindings on items in
116canvases as well as windows.
117
11810/6/91 (new feature) Upgraded buttons and menus to use new tracing
119code in Tcl 6.0.  Allows radio buttons and check buttons to both set
120and clear themselves when associated variable changes.
121
12210/17/91 (bug fix) Fixed 2 bugs in listboxes: accidentally advanced the
123selection when new entries were inserted in the listbox after the location
124of the selected item(s), and goofed up on redisplay if selected item
125was deleted and then selection was immediately lost.
126
12710/27/91 (bug fix) "pack unpack" wasn't telling Tk that it no longer
128manages window;  this led to core dumps in some situations.
129
13010/31/91 (reorganization) Renamed manual entries so that they are no
131more than 14 characters in length.
132
13310/31/91 (reorganization) Changed tk.h and tkInt.h so that tkInt.h
134doesn't needed to be included by tk.h.
135
13611/3/91 (portability improvement) Eliminated use of "class" as a variable
137name, since it's a reserved word in C++.
138
13911/7/91 (reorganization) Many changes to upgrade for Tcl 6.1 including
140use of Tcl hash tables instead of separate "Hash_" module.  The "lib"
141subdirectory is no longer needed in Tk.
142
143---------------------- Release 1.3, 11/7/91 -------------------------
144
14511/24/91 (bug fix) Fixed bug causing occasional errors if existing bindings
146are modified (FindSequence in tkBind.c forget to set *maskPtr).
147
14811/24/91 (bug fix) Used wrong hash table in Tk_GetColorByValue.  Could
149cause new entries to get created unnecessarily.
150
15112/2/91 (bug fix) Changed "bind" code to put backslashes in front of
152special characters (e.g. [ or \) that appear in %-replacements, so that
153they can be parsed cleanly.
154
15512/10/91 (bug fix) Manual entries had first lines that caused "man" program
156to try weird preprocessor.  Added blank comment lines to fix problem.
157
1581/2/92 (documentation cleanup) Changed manual entries for Tk_GetBitmap
159and the like to make it more clear that the argument must be a Tk_Uid
160and not a string.
161
1621/2/92 (bug fix) Fixed problem where scrollbars that were very short or
163very narrow (too small to hold both arrows) could cause negative values
164in calls to XClearArea, which crashed some servers.
165
1661/2/92 (bug fix) Fixed bug in TkMeasureChars occurring when maxChars
167is 0.  Occasionally affected things like message window geometry.
168
1691/3/92 (new feature) Added procedures Tk_GetJustify, Tk_GetAnchor,
170Tk_GetCapStyle, and Tk_GetJoinStyle, plus support for these things
171in Tk_ConfigureWidget.
172
173---------------------- Release 1.4, 1/10/92 -------------------------
174
1751/12/92 (bug fix) TkMenubutton.c wasn't cleaning up mbPtr->varName
176properly during menubutton cleanup if an error occurred during
177menubutton creation.
178
1791/19/92 (bug fix) Fixed off-by-one bug in tkListbox.c that caused
180scrollbars to display a slider that was too large.
181
1822/10/92 (bug fix) Tk_CreateFileHandler didn't correctly handle case
183where new mask was specified for existing handler.
184
1852/13/92 (bug fix) Tk_DeleteAllBindings wasn't correctly removing
186bindings from the pattern table:  only did the removal for the
187first pattern in a pattern list.
188
1892/15/92 (new feature) Added procedures Tk_DefineBitmap and
190Tk_SizeOfBitmap.  Tk_GetBitmapFromData is now considered obsolete
191and probably shouldn't be used anymore.  Tk_GetBitmapFromData
192is now implemented by calling Tk_DefineBitmap and Tk_GetBitmap.
193
1942/15/92 (new feature) Added "curselection" and "select clear" options
195to widget command for listboxes.
196
1972/15/92 (new feature) Added Tk_3DBorderColor procedure.
198
1992/17/92 (relaxed limitations) Changed scrollbars so they no longer limit
200the slider position to lie within the object's range:  can scroll off the
201end of an object, if the object permits it.  Changed listboxes and
202entries to explicitly prevent viewing off the ends.  Also relaxed
203listbox index checks so that out-of-range indices are automatically
204adjust to fit within the listbox range.
205
2062/19/92 (bug fix) tkWindow.c tended to leave half-created windows around
207if a new window's name was found to be in use already.  Fixed to clean
208them up.
209
2102/22/92 (new feature) Added -anchor, -bitmap, -height, -textvariable,
211-width options to labels, buttons, check buttons, menu buttons, and radio
212buttons.  This means that (a) size can be controlled better, (b) bitmaps
213can be displayed in any buttons, (c) the position of the text within the
214button can be controlled, and (d) a button can be made to display the value
215of a variable, continuously updating itself.  Also changed -selector option
216so that if it's specified as an empty string then no selector is drawn
217for the button.
218
2192/22/92 (new feature) Changed menus to support bitmaps in menu entries:
220added new -bitmap option for entries.
221
2222/26/92 (bug fix) "after" command, when invoked with just one argument,
223called Tk_Sleep rather than registering a timer handler and looping on
224Tk_DoOneEvent.  As a result, it caused the application to become non-
225responsive to X events during the sleep.  Changed to use a Tk_DoOneEvent
226loop so that it is responsive.
227
2282/26/92 (bug fix) Tk's main program didn't map the main window until
229after the startup script returned.  Changed to map the window as a
230do-when-idle handler, so that scripts can cause the window to be
231mapped immediately with a call to "update" or "after".
232
2332/28/92 (bug fix) "wm withdraw" wasn't working if invoked before window
234was originally mapped:  window got mapped anyway.  Fixed so that the
235window doesn't get mapped as long as it's withdrawn.
236
2372/29/92 (new feature) Can use "focus none" to clear input focus.
238
2392/29/92 (bug fix) Fixed tkEvent.c to generate SubstructureNotify events
240properly.  These weren't being generated previously.
241
2422/29/92 (bug fix) Fixed entries so that newline characters can be properly
243displayed (as `\x0a').  Had to change interface to TkDisplayChars in order
244to do this (added flags argument).
245
2462/29/92 (bug fix) Change Tk not to update size and position of top-level
247windows directly during calls like Tk_ResizeWindow.  Instead, wait until
248actual event is received.  This makes updates happen at same time as
249callbacks.
250
2513/6/92 (bug fix) TkMenubutton.c was dumping core when a menubutton was
252pressed at a time when there was no associated menu for the button.
253
2543/6/92 (new feature) Added Tk script library directory with official
255Tk initialization file "tk.tcl".  Other procedures used by Tk are in
256other files.  Tk procedures and variables all have names starting
257with "tk_".  Also added Wish startup script "wish.tcl", which sources
258both the Tk and Tcl startup scripts.  This means that things like
259auto-loading and abbreviation expansion are now available in wish.
260Added new variables tk_library, tk_priv, and tk_version.
261
2623/6/92 (new feature) It's now possible to set bindings for whole
263classes by using the class name in the bind command.  For example,
264"bind Button <Enter> {puts stdout Hi!}" will cause a message to be
265printed whenever any mouse button is entered.  Can also use "all"
266to set bindings for all widgets.  Widget-specific bindings override
267class bindings which override "all" bindings.
268
2693/6/92 (reorganization) Changed buttons (all flavors) and listboxes to
270eliminate all hard-wired behavior.  Instead, default behavior is set
271by class bindings in tk.tcl.  Also set up class bindings for menus,
272menubuttons, and entries, which previously had no default behavior at
273all.  Scrollbars and scales still have hard-wired behavior that can't
274be overridden.
275
2763/7/92 (look-and-feel change) Changed listboxes and entries and menus
277to use button 2 for scanning instead of button 3.  This is more consistent
278with the official Motif use of button 2 for dragging.
279
2803/10/92 (new features) Added more options to "winfo" command:  screencells,
281screendepth, screenmmheight, screenmmwidth, and screenvisual.
282
2833/13/92 (bug fix) Event sharing mechanism (tkShare.c) wasn't checking
284to see whether window was mapped before sharing events with it.
285
2863/16/92 (bug fix) Tk_SetInternalBorderWidth was passing wrong window to
287geometry-management procedures, causing core-dumps when menu buttons
288had their border widths changed.
289
2903/16/92 (bug fix) Menus were setting their geometry directory rather
291than using Tk_GeometryRequest mechanism.
292
2933/17/92 (new feature) Added -cursor option to all widgets to set the
294active cursor for the widget.  Also added TK_CONFIG_ACTIVE_CURSOR
295configure type.
296
2973/18/92 (new feature) Implemented generalized screen coordinates to
298allow resolution-independent specification in many cases (but pixel-
299based coordinates are still OK).  Added Tk_GetScreenMM(),
300Tk_GetPixels(), new configure types TK_CONFIG_SCREEN_MM and
301TK_CONFIG_PIXELS.  Changed widgets to use this new configure types
302wherever possible (a few of the more complex cases still haven't
303been taken care of yet).  Added "pixels" and "fpixels" options to
304"winfo" command.
305
3063/18/92 (new feature) First cut at canvas widgets is done and part of
307the official Tk now.  Canvases display text and structured graphics,
308and allow you to bind commands to events related to the text and
309graphics.
310
3113/21/92 (new feature) Added new "place" command.  It implements a
312new geometry manager that provides fixed placement, rubber-sheet
313placement, and combinations of the two.  Eliminated the commands
314"move", "resize", and "map" that were provided by main.c but never
315officially supported;  the placer provides all of this functionality.
316
3173/23/92 (bug fix) Fixed bug in tkWm.c where top-level windows were
318occasionally not being given the right size.  The problem occurred
319when a string of resizes happened all in a row (such as deleting all
320the windows in an application and then recreating them).
321
3223/23/92 (new feature) Added Tk_CoordsToWindow procedure and
323"winfo containing" command.  These may be used to locate the window
324containing a given point.
325
3263/28/92 (new feature) Added "-exportselection" option to listboxes,
327so that listbox selection need not necessarily be the X selection.
328
3294/12/92 (bug fix) Changed menu buttons to store name of menubutton
330in the associated variable, rather than the name of the menu.  This
331is necessary in order to allow several menu buttons to share the
332same menu.
333*** POTENTIAL INCOMPATIBILITY ***
334
3354/12/92 (bug fix) Fixed core dump that occurred in tkError.c when
336removing the first error record from the error list.
337
3384/15/92 (bug fix) Fixed bug in tkBind.c that prevented <KeyPress-1>
339event specifications from being processed correctly:  the "1" was
340treated as a button name rather than a keysym.
341
3424/18/92 (new feature) Added Tk_DefineCursor and Tk_UndefineCursor
343procedures.
344
3454/18/92 (new feature) Major revision to listboxes.  Can now scroll and
346scan in both x and y, plus -exportselection option allows selection not
347to be exported.  The "view" widget command has been replaced by "xview"
348and "yview", and the "scan" widget command has a new syntax.
349*** POTENTIAL INCOMPATIBILITY ***
350
3514/18/92 (new feature) Added -exportselection option to entries, so you
352can select whether you want the entry selection to be the X selection
353or not.
354
3554/24/92 (new features) Added TK_CONFIG_CUSTOM type to Tk_ConfigureWidget,
356plus added new flags TK_CONFIG_NULL_OK, TK_CONFIG_DONT_SET_DEFAULT,
357and TK_CONFIG_OPTION_SPECIFIED.  Several other new types, such as
358TK_CONFIG_CAP_STYLE, were also added as part of implementing canvases.
359
3604/29/92 (bug fix) Changed "-selector" default for menus to have separate
361values for mono and color.
362
3634/30/92 (bug fix) Fixed bug in tkListbox.c where it occasionally generated
364bogus scroll commands (last index less than first).
365
3664/30/92 (reorganization) Moved demos directory to "library/demos".
367
368---------------------- Release 2.0, 5/1/92 -------------------------
369
3705/2/92 (bug fix) Fixed problem in tkListbox.c where it was doing too many
371redisplays after repeated insertions.  Also reduced number of invocations
372of scrollbar commands.
373
3745/7/92 (portability improvement) Changed main.c not to use TK_EXCEPTION
375flag;  it isn't needed and it causes problems on some systems.
376
3775/9/92 (bug fix) Plugged core leaks in tkListbox.c and tkBind.c
378
3795/9/92 (bug fix) TkBind.c was accidentally deleting bindings during
380attempts to print non-existent bindings.
381
3825/11/92 (bug fix) Maximum name length for applications (name used in
383"send" commands) was too short (only 20);  increased to 1000.  Also
384fixed bug related to over-long names that caused core dumps.
385
3865/13/92 (bug fix) tkShare.c was using a dangling pointer if a share
387group was deleted as a side-effect of a shared event.
388
3895/13/92 (bug fix) Various initialization and core leak problems in
390tkGC.c, tkSend.c, tkMenu.c, tkEvent.c, tkCanvas.c, tkCanvPoly.c,
391tkCanvLine.c, tkListbox.c, tkEntry.c.
392
3935/13/92 (bug fix) Empty entries could be scanned off the left edge,
394displaying a garbage character.
395
3965/13/92 (bug fix) Fixed a few problems with window manager interactions,
397such as tendency for windows to spontaneously shrink in size.  By no
398means are all of the problems fixed, though.
399
4005/13/92 (performance optimization) Changed Tk_GeometryRequest not to
401invoke geometry manager unless requested size has changed.
402
403---------------------- Release 2.1, 5/14/92 -------------------------
404
4055/1/92 (new features) Added flags like TK_IDLE_EVENTS to Tk_DoWhenIdle,
406plus added "idletasks" option to "update" command.  Tk_DoWhenIdle arguments
407look different now, but the change should be upward-compatible.
408
4095/17/92 (new feature/bug fix) Added support for VisibilityNotify events
410to the "bind" command.  For some reason they weren't supported previously.
411
4125/17/92 (new feature) Added "tkwait" command.
413
4145/17/92 (new feature) Added "grab" command.
415
4165/17/92 (new feature) Added "-width" option to messages.  Also changed
417messages to use the computed (i.e. desired) line length when displaying,
418not the actual width of the window.
419
4205/17/92 (bug fixes) Did some more fiddling with tkWm.c in the hopes
421of improving window manager interactions.  Now there won't be more than
422one configure request outstanding to the wm at a time.
423
4245/17/92 (bug fix) Arrowheads on canvas lines weren't being translated
425or scaled correctly.
426
4275/20/92 (bug fix) Page-mode scrolling didn't work correctly for canvases
428(wrong windowUnits was passed to scrollbars).
429
4305/20/92 (bug fix) Changed scrollbars not to lose highlight when pointer
431leaves window with button down.  Also changed redisplay to double-buffer
432for smoother redraws.
433
4345/21/92 (new feature) Added "gray50" and "gray25" as predefined bitmaps.
435
4365/22/92 (new feature) Buttons can now be disabled using the "-state" and
437"-disabledforeground configuration options.  The "activate" and "deactivate"
438widget commands for buttons are now obsolete and will go away soon.
439Please change Tcl scripts not to use them.
440
4415/23/92 (new feature) Entries can now be disabled using the "-state"
442config option.  Also improved class bindings for entries to keep the
443cursor visible in the window when operations occur.  Also made slight
444improvements in the way redisplay is done.
445
4465/23/92 (new feature) Added "-textvariable" option to entries so that
447the text in an entry can be tied to the value of a global variable in
448a fashion similar to buttons.
449
4505/27/92 (new feature) Added "-textvariable" and "-anchor" options to
451messages.
452
4535/28/92 (new feature) Added "-padx" and "-pady" and "-underline" options
454to menubuttons.
455
4565/28/92 (feature change) Changed "-width" and "-height" options on
457all flavors of buttons and menubuttons so that they are orthogonal
458to "-padx" and "-pady".  It used to be that -width overrode -padx
459(no padding).  Now they accumulate.
460
4615/29/92 (new feature) Added "-disabledforeground" option to menus and
462all flavors of buttons (can specify color for disabled things rather
463than just using stipple to gray out).
464
4655/29/92 (new features) Added many new options to menu entries:
466-activebackground, -background, -font, -state, -underline.  The
467"disable" and "enable" widget commands for menus are now obsolete
468and will go away soon.  Please change Tcl scripts not to use them.
469
4705/29/92 (new features) Added "atom" and "atomname" options to "winfo"
471command.
472
4735/29/92 (new feature) Wrote tk_listboxSingleSelect procedure, which
474can be used to change listbox behavior so that only a single item is
475selected at once.
476
4776/1/92 (new feature) Added new modifier names "Meta" and "Alt" for
478"bind" command.
479
4806/3/92 (new feature) Added "winfo toplevel" command.
481
4826/3/92 (new feature) Made several changes for greater Motif compliance,
483including:
484    - menu retention if you click and release in the menu button,
485    - keyboard traversal of menus (see traversal.man)
486    - no widget flashing if you set $tk_strictMotif to 1
487
4886/15/92 (bug fix) Fixed problem in tkBind.c where command string for a
489binding could get reallocated while the command was being executed (e.g.
490bindings that delete or change themselves).
491
4926/15/92 (bug fix) Don't allow "tabWidth" field to become zero in tkFont.c:
493can cause core dumps for fonts that don't enough information to compute
494tab widths.
495
4966/19/92 (bug fix) Fixed bug in binding mechanism that caused structure-
497related events to be reported both to the correct window and its parent.
498
4997/14/92 (bug fix) Changed tkColor.c not to free colors for visual types
500StaticGray or StaticColor.
501
5027/15/92 (new feature) Text widgets now exist.  They display any number of
503lines of text with a variety of display formats, and include hypertext
504facilities.  See the manual page for details.
505
5067/20/92 (bug fix) If a top-level window was put in the iconic state to
507begin with, it could be deiconified with "wm deiconify .foo" until it had
508first been deiconified by hand from the window manager.  Tk was getting
509confused and thought the window was mapped when it wasn't.
510
5117/29/92 (bug fix) Don't permit rectangles or ovals to have zero-sized
512dimensions.  Round up to at least one pixel.
513
5147/29/92 (new features) Major upgrade to canvases:
515    - new item types: arc, window, bitmap
516    - added Bezier spline support for lines and polygons
517    - rectangles and ovals now center their outlines on the shape,
518      rather than drawing them entirely inside the shape
519    - new "coords" and "bbox" widget commands
520    - new "-tags" option for all item types.
521    - new "-confine" option to prevent scrolling off edge of canvas.
522
5238/6/92 (new feature) Added "-width" and "-height" options to frames.
524The "-geometry" option is now obsolete and should be removed from Tcl
525scripts:  it may go away in the future.
526
5278/7/92 (bug fix) Error messages in Tk_ParseArgv were sometimes including
528the option name where they should have included its value.
529
530---------------------- Release 2.2, 8/7/92 -------------------------
531
5328/7/92 (bug fix) Changed tkCanvas.c to be more conservative in the area
533it passes to XCopyArea.
534
5358/8/92 (bug fix) Fixed bug in tkTextDisp.c that sometimes caused core
536dumps when text views changed (e.g. typing return on last line of screen).
537
5388/8/92 (bug fix) Fixed bug in menu.tcl that caused errors when using
539keyboard to traverse over separator menu entries.
540
5418/10/92 (bug fix) Changed to use OPEN_MAX instead of MAX_FD to compute
542maximum # of open files.
543
5448/10/92 (bug fix) Canvases weren't updating scrollbars on window size
545changes.  They also weren't recentering canvases on window size changes.
546
5478/10/92 (bug fix) There were still a few places where commands were being
548invoked at local level instead of global level (e.g. commands associated
549with buttons and menu entries).
550
5518/10/92 (bug fix) TkBind.c used to ignore explicit shift modifiers for
552all keys (i.e. <Shift-Tab> was treated the same as <Tab>).  Modified to
553allow explicit request for shift modifier, like <Shift-Tab>.
554
5558/13/92 (feature change) Changed default fonts to request "Adobe" fonts
556explicitly.
557
5588/16/92 (bug fixes) Modified tkCanvArc.c and tkTrig.c to increase slightly
559the bounding boxes for arcs, in order to make sure that proper redisplay
560occurs when arcs are moved (little turds were getting left behind).
561
5628/16/92 (bug fix) Modified tkCanvas.c not to redraw at all if the redisplay
563area is off the screen.  Also, only do a background clear for the portion
564of the redraw area that is on-screen.  Also, reduced size of off-screen
565pixmaps used for redisplaying, which speeds up redisplay in some cases.
566
5678/19/92 (bug fix) Canvases that were taller than wide were not being
568redisplayed properly.
569
5708/20/92 (new feature) Added Tk_CreateGenericHandler procedure for trapping
571all X events (useful for tracing, watching non-Tk windows, etc.).
572
5738/21/92 (bug fix) Widgets weren't always being notified when they got
574the focus back again (the problem had to do with grabs and menus in
575particular).
576
5778/21/92 (new feature) Added "-state" option to scale widgets.
578
5798/22/92 (new feature) Changed tkBitmap.c to allow tilde-substitution
580to occur in bitmap file names.
581
582---------------------- Release 2.3, 8/24/92 -------------------------
583
5848/27/92 (bug fix) Changes to -activebackground and -activeforeground options
585for menubuttons were being lost.
586
5878/27/92 (bug fix) Entries were selecting last character when a B1-drag
588occurred past the right edge of the text.
589
5908/28/92 (bug fix) Fixed bug in canvases where a grab during a button
591press caused the canvas state to lock up so that it didn't select a
592new current item.
593
5949/7/92 (bug fix) Changed tkMenu.c to accept numerical menu indices that
595are out of range;  now it just rounds them off to the nearest existing
596entry.
597
5989/7/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps when
599invoking "yview -pickplace" widget command on texts that are too small
600to hold any lines at all.
601
6029/11/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps
603when adding tags to non-existent lines.
604
6059/11/92 (bug fix) Line items in canvases didn't permit an empty fill
606color (i.e. couldn't make them transparent).
607
6089/14/92 (reorganization) Changed manual entries to use .1, .3, and .n
609extensions.  Added "install" target to Makefile to suggest how Tk should
610be installed.
611
6129/16/92 (bug fix) Changed tkSend.c to always specify the root window of
613screen 0 rather than using DefaultRootWindow.  DefaultRootWindow doesn't
614always go to screen 0 on displays with multiple screens, which can result
615in send's not being possible between the screens.
616
6179/18/92 (new feature) Added three new options to "wm" command: "protocol",
618"client", and "command".  These provide support for window manager protocols
619such as WM_DELETE_WINDOW and WM_TAKE_FOCUS, plus support for the
620WM_CLIENT_MACHINE and WM_COMMAND properties.
621
6229/30/92 (new feature) Implemented color model support, including
623"tk colormodel" command and Tk_GetColorModel and Tk_SetColorModel
624procedures.  These allow you to force mono operation even on a color
625display.  Also changed color allocation not to give errors when colors
626run out, but just to switch to a mono color model.
627
62810/1/92 (bug fixes) Fixed two bugs in tkTextBTree.c that caused core dumps
629during text deletion.
630
63110/5/92 (bug work-around) Changed tkColor.c to ignore errors when freeing
632colors.  This is needed to work around improper reference count management
633for colormap entries under X11/NeWS.
634
63510/7/92 (new feature) Added support for different visual types, including
636procedures Tk_SetWindowVisual and Tk_SetWindowColormap, plus macros
637Tk_Visual, Tk_Depth, and Tk_Colormap.  The code for this was contributed
638by Paul Mackerras.
639
64010/7/92 (new feature) Added Tk_IsTopLevel macro.
641
64210/12/92 (bug fix) Fixed bug in tk.tcl that caused torn-off menus with
643cascaded children not to track mouse motion correctly (the cascade
644switched in response to mouse motions within the cascaded child).
645
64610/12/92 (new feature) Major changes to focus handling:
647(a) Tk watches FocusIn and FocusOut events for focus changes, not Enter
648    and Leave, so it will work better with explicit-focus-model window
649    managers (e.g. mwm in default mode).
650(b) Tk generates FocusIn and FocusOut events for the focus window now.
651    The old procedural interface (via Tk_CreateFocusHandler) is obsolete
652    and is no longer used inside Tk.  It is still supported for
653    compatibility, but won't be for long.  You should change your code
654    to use FocusIn and FocusOut events instead.
655(c) The model for FocusIn and FocusOut events is different than the
656    one described in Xlib documentation.  See the "focus" manual entry
657    for details.
658(d) If there is no input focus then keyboard events are discarded.  They
659    used to be directed to the mouse pointer window, although this wasn't
660    documented.  The focus now defaults to the root window.
661*** POTENTIAL INCOMPATIBILITY ***
662
66310/15/92 (bug fix) Fixed text items in canvases where they didn't
664display the insertion cursor if the item had no characters in it.
665
66610/26/92 (bug fix) Fixed bug in tkSelect.c that occasionally caused
667BadWindow X protocol errors when retrieving the selection.  Tk wasn't
668making sure that a window existed before using it to retrieve the
669selection.
670
67110/30/92 (feature change) Changed canvases so that if the scroll region
672is smaller than the window and -confine is on, the scroll region isn't
673forced to be centered in the window;  it can be anywhere that meets the
674confinement restrictions.
675
67611/2/92 (new feature) Added "winfo exists" command.
677
67811/5/92 (new feature) Changed DoWhenIdle handlers so that if a new
679when-idle handler is created as a side-effect of another when-idle
680handler, the new handler isn't invoked until Tk has first checked
681for other events to process.
682
68311/6/92 (bug fixes, new features) Major overhaul of window manager
684interface:
685(a) Tk should now work with virtual-root window managers;
686(b) windows will now place more accurately on the screen and stay where
687    they're supposed to;
688(c) size changes handled more reliably;
689(d) code now works robustly in the face of withdrawals followed
690    immediately by deiconifications.
691(e) Added new procedure Tk_GetVRootInfo and new options to "winfo" command:
692    vrootx, vrooty, vrootwidth, vrootheight.
693(f) Added "overrideredirect" option to "wm".
694(g) Fixed bug where change in width-only via "wm geom" didn't always work
695   (min and max window sizes weren't being set properly for the wm).
696
69711/6/92 (bug fixes) Modified menus so that they work correctly with
698virtual root window managers.  Also fixed bug where menus didn't move
699along with their associated windows, so that the menu popped up at
700the old location of the window rather than its new location.
701
70211/9/92 (new constraint) Made it illegal to give windows names that
703start with upper-case letters, since such names will goof up the
704option database by appearing to be classes rather than names.
705*** POTENTIAL INCOMPATIBILITY ***
706
70711/10/92 (new feature) Added Postscript output to canvases.
708
70911/13/92 (bug fix) Changed default for maximum size passed to window
710manager from 1000000 (which causes some wm's to make windows too large
711when "maximized") to the size of the display.
712
71311/14/92 (feature change) Major overhaul of menubuttons and pull-down
714menus.  Removed event-sharing code, including Tk_ShareEvents and
715Tk_UnshareEvents.  The -variable option for menubuttons has been
716removed,and the "post" and "unpost" widget commands for menubuttons
717no longer exist.  The "post" widget command for menus no longer
718allows a group option.  The procedure tk_menus has been replaced
719with a new procedure, tk_menuBar, which has a slightly different
720interface.
721*** POTENTIAL INCOMPATIBILITY ***
722
72311/20/92 (new features, feature changes) Major overhaul of grab
724mechanism to produce more correct event streams.  Also changed Tcl
725commands to require explicit window for grab releases (makes it
726possible for grabs to work on multiple displays simultaneously).
727The old "grab none" command no longer exists, but new options
728have been added: "current", "release", "set", and "status".
729*** POTENTIAL INCOMPATIBILITY ***
730
73111/20/92 (new feature) Use TK_LIBRARY environment variable to set library
732directory location, if it is defined.  Otherwise fall back on usual
733compiled-in value.
734
73511/25/92 (bug fix) "wm grid" command was using wrong window.
736
73711/29/92 (bug fix) Fixed core dump that occurred when trying to use
738placer on top-level windows: return error instead.
739
74011/29/92 (bug fix) Selection retrieval wasn't making sure that the window
741on whose behalf selection is being retrieved actually exists.
742
74312/3/92 (new feature) Added support for Mode_switch key to support the
744full ISO character set.  Also added event handlers for MappingNotify
745events so that Tk updates itself in response to keycode and modifier
746changes.
747
74812/6/92 (bug fix) Ignore recursive attempts to destroy window.
749
75012/9/92 (new demos) Added "tcolor" and "rmt" demos.
751
75212/10/92 (new features) Added "yposition" widget command for menus,
753changed "delete" widget command to take an optional second index,
754and changed -command option for cascade entries so that it is
755invoked when the entry is activated rather than when it is invoked.
756*** POTENTIAL INCOMPATIBILITY ***
757
75812/12/92 (implementation change)  Changed the procedures Tk_FreeBitmap,
759Tk_NameOfBitmap, Tk_SizeOfBitmap, Tk_FreeCursor, Tk_NameOfCursor, and
760Tk_FreeGC to require an addition Display argument.  This is needed for
761Tk to function correctly when an application has windows on multiple
762displays.
763*** POTENTIAL INCOMPATIBILITY ***
764
76512/12/92 (new feature) Started creating a test suite.  Right now it
766only has a few tests.
767
76812/12/92 (new feature) Modified the packer so that a window can be
769packed in descendants of its parent (used to be restricted to the
770parent alone).  This makes it possible to hide extra windows used
771for geometry management.  Also, can use generalized screen distances
772in the "pack" command.
773
77412/16/92 (feature change) Boolean options such as -exportselection now
775print as 0/1 rather than true/false (both the default and current values
776print this way).  This makes it easier to use these values in expressions.
777*** POTENTIAL INCOMPATIBILITY ***
778
77912/16/92 (name change) The classes "RadioButton" and "CheckButton" have
780been renamed "Radiobutton" and "Checkbutton" for consistency.  From now
781on widget class names will have exactly one capital letter.
782*** POTENTIAL INCOMPATIBILITY ***
783
78412/16/92 (new feature) Added -setgrid option to listboxes.
785
78612/16/92 (new feature) The "destroy" command, and the "delete" widget
787command for canvases, now accept any number of arguments, including
788zero.
789
79012/16/92 (new feature) Changed internal TkBindError procedure to
791Tk_BackgroundError and exported it to Tk clients.
792
79312/16/92 (option name change) Changed the place command's "dependents"
794option to "slaves" for better consistency with documentation.
795*** POTENTIAL INCOMPATIBILITY ***
796
79712/16/92 (name changes) Renamed the "cursor*" options in entries and
798canvases to "insert*".  Also renamed the "cursor" index to "insert" and
799the "cursor" widget command to "icursor".  This was done to avoid
800confusion between the mouse cursor and the insertion cursor.
801*** POTENTIAL INCOMPATIBILITY ***
802
803---------------------- Release 3.0, 12/17/92 -------------------------
804
80512/17/92 (bug fix) Fixed dangling-pointer bug in canvases that occurred
806if a <LeaveNotify> binding deleted the current item.
807
80812/18/92 (bug fix) Core dump occurred if "wm" invoked with no arguments.
809Also, tkWm.c wasn't properly setting WM_CLASS property on application
810startup.
811
81212/18/92 (incorrect documentation) Updated manual entries for Tk_FreeGC,
813Tk_FreeCursor, and Tk_FreeBitmap to reflect new interface that requires
814"display" argument.
815
81612/18/92 (missing documentation) Added documentation for the canvas
817"postscript" command, which was missing in the 3.0 release.
818
81912/21/92 (bug fixes) There were lots of problems with the new installation
820targets in the Makefiles, such as using "cp -f" and not installing
821prolog.ps.  Made several other miscellaneous improvements to Makefile.
822
82312/21/92 (bug fix) Arrowheads on canvas line items weren't moving properly
824after coordinate changes made with the "coords" widget command.
825
82612/21/92 (bug fix) If top-level window was initially withdrawn, couldn't
827ever deiconify it again.
828
82912/21/92 (bug fix) Double-button event sequences didn't always trigger
830properly when grabs were in effect.
831
83212/22/92 (bug fix) The packer didn't display any top or bottom windows
833after a left or right expanded window, and vice versa.  Also made the
834distribution of space among expanded windows more even.
835
83612/28/92 (new features) Several improvements to selection:
837(a) Added procedures Tk_ClearSelection and Tk_DeleteSelHandler.
838(b) Added "clear" and "own" options to "selection" command, extended
839    "handle" option to delete handlers.
840(c) Error returns from "selection handle" scripts are now turned into
841    selection retrieval errors ("no such selection") rather than an
842    empty selection.
843(d) Tk responds automatically for targets APPLICATION (name of application,
844    so you can "send" to it) and WINDOW_NAME (name of window within
845    application.
846(e) Added test file "select.test" to test suite.
847
84812/28/92 (bug fix) Fixed problem with flashing menus that occurred
849because menu.tcl was willing to unpost and then immediately repost
850the same menu.
851
8521/6/93 (bug fix) Test for UnmapNotify events in tkPack.c used = instead
853of ==.
854
8551/21/93 (bug fix) Changed many widgets to eliminate use of
856DefaultVisualofScreen, DefaultColormap, etc. and use the visuals
857and colormaps for the actual windows instead.  Also changed to
858inherit colormaps and windows from parent by default.
859
8601/21/93 (new features) Added new winfo options "cells", "depth", and
861"visual".
862
8631/23/93 (bug fix) Fixed problem with text display that could result
864in negative XCopyArea heights being sent to X server.  This causes some
865servers (e.g. some versions of OpenWindows) to crash.
866
8671/25/93 (new feature) Added -postcommand option to menus, so that menus
868can be reconfigured before each posting.
869
8701/29/93 (feature change) Changed %X and %Y in bindings so that they
871refer to the virtual root rather than the true root.  Although
872potentially incompatible, this change should almost always "do the
873right thing".
874*** POTENTIAL INCOMPATIBILITY ***
875
8761/31/93 (bug fix) Changed "send" code to grab server while updating
877the registry property (before this fix, two programs could allocate
878the same interpreter name if they started up simultaneously).  In
879order to make this fix I had to change the code for reclaiming
880names of dead interpreters in a way that sometimes allows dead
881interpreters to persist in the registry.
882
8832/1/93 (feature change) Changed entries to allow leftmost "visible"
884character to be the end of the text (i.e. no characters actually visible).
885This is needed so that the cursor can be displayed even if the last
886actual character is too wide to fit in the window.
887
8882/3/93 (bug fix) Fixed two bugs in tkFocus.c:  (a) FocusIn events
889were getting lost in some cases because the focus window hadn't been
890created yet (e.g. new top-level window pops up underneath the mouse);
891(b) Tk was accidentally triggering FocusOut events when the mouse
892moved from a top-level window to one of its children.
893
8942/4/93 (new feature) Added "visibility" option to "tkwait" command to make
895it easier to wait for a new window to appear on the screen.
896
897---------------------- Release 3.1, 2/5/93 -------------------------
898
8992/10/93 (installation improvements) Makefile improvements:  added RANLIB
900variable for easier Sys-V installation, changed to use INCLUDE_DIR
901properly, and added SHELL variable for SGI systems.
902
903---------------------- Release 3.2, 2/11/93 -------------------------
904
9052/11/93 (new feature) Added "wm state" command, and improved wm so that
906the right thing will happen if you invoke "wm iconify" when a window is
907withdrawn.
908
9092/14/93 (bug fix) When -colormap option was used in generating Postscript
910for canvases, Tk didn't add an extra space after the color command.
911
9122/14/93 (new feature) Changed "extern" declarations in tk.h to "EXTERN",
913which will use the definition of EXTERN from tcl.h and work correctly
914in C++ programs.
915
9162/18/93 (bug fix) Item-specific bindings weren't getting deleted from
917canvas items when the items were deleted.  As a result, they could
918suddenly re-appear for new items if the new items were allocated a
919record at the same addresses as the old ones.
920
9212/18/93 (feature reversal) Changed "after" back again, so that it sleeps
922*without* responding to events when it is invoked with just one argument;
923can always use tkwait plus after with additional arguments to achieve
924the effect of responding to events.
925*** POTENTIAL INCOMPATIBILITY ***
926
9272/20/93 (bug fix) Fixed bug in tkWindow.c where colormaps weren't being
928set correctly for new top-level windows on different screens than their
929parents (the bug results in X protocol errors: "invalid Colormap
930parameter").
931
9322/22/93 (bug fix) Changed "#!/usr/local/wish" in demo scripts to
933"#!/usr/local/bin/wish" to reflect new location of binary.
934
9352/22/93 (new feature) Added new reliefs "groove" and "ridge".
936
9372/25/93 (new feature) Added new built-in bitmaps:  "error", "hourglass",
938"info", "question", "questhead", and "warning".  Also added new demo in
939"widget" to display all of these (under the Miscellaneous menu).
940
9412/25/93 (improved implementation) Changed DrawText procedure in
942prolog for outputting Postscript from canvases to use stringwidth
943instead of charpath+pathbbox:  avoids limitcheck problems with long
944strings, and also properly includes space characters in calculation.
945
9462/25/93 (bug fix) Fixed several bugs in library/menu.tcl that caused
947menu traversal to mis-behave when menu had no entries.
948
9492/26/93 (new feature) Added "wm frame" command.
950
9513/6/93 (bug fix) Mwm in click-to-focus mode was goofing up grabs so that
952pull-down menus were sometimes unresponsive.  Modified tk.tcl to ignore
953the spurious B1-Enter events generated by mwm, plus modified tkGrab.c to
954release simulated button grabs correctly.
955
9563/8/93 (bug fix) Tk had wrong interpretation of "lbearing" font metric,
957which caused text to be displayed at the wrong horizontal position in
958several places (labels/buttons, listboxes, canvas text, scales).  This
959change will cause slight changes in the way certain widgets are
960displayed.
961
9623/12/93 (bug fix) Fixed core dumps that occurred in tkEntry.c because of
963zero values in entryPtr->avgWidth.
964
9653/12/93 (bug fix) Tk_CoordsToWindow was using root coordinates always.
966Changed to use virtual-root coordinates when a virtual-root window
967manager is being used.  Before this fix, "winfo containing" didn't
968return the correct window under virtual-root window managers.
969
9703/18/93 (bug fix) Modified tkWm.c so that Tk doesn't fight with window
971manager over position of window;  it just takes what the window manager
972gives it.
973
9743/21/93 (new feature) Changed menus to display cascade entries with
975standard Motif arrows at right side.a
976
9773/22/93 (bug fix) Fixed bug in tkPack.c that was causing memory to
978get trashed with the integer value 1.
979
9803/22/93 (bug fix) Canvas text didn't print correctly if it contained
981an open paren (or other special character) immediately followed by
982an octal digit.
983
9843/22/93 (bug fix) Text widgets didn't redisplay properly in cases
985where two or more groups of lines both got taller at the same time
986(e.g. from tag changes), causing two separate bit copies where the
987first bit copy's target area overlapped the source area for
988the second bit copy.
989
9904/1/93 (bug fix) Changed canvases to use ISO Latin-1 font encoding
991if that's supported by the Postscript interpreter.  Also added workaround
992for bug in NeWSprint related to stipple fills.
993
9944/1/93 (bug fixes) Made various changes to focusing and grabs to
995eliminate extraneous focus events and generally improve behavior.
996
9974/2/93 (bug fix) Modified tkWm.c not to wait indefinitely for the window
998manager to map or reconfigure a window:  this led to deadlock in some
999situations, such as creating a new top-level window with a grab held.
1000
10014/19/93 (bug fix) Fixed another bug in tkWm.c that caused windows to walk
1002across the screen in some situations.  Also fixed problem where rapid
1003posting and unposting of cascaded submenus (or menus?) could cause Tk
1004to become confused about whether or not a window is mapped (added
1005TkWmUnmapWindow procedure to make top-level unmaps synchronous).
1006
10074/24/93 (feature change) Changed the "after" command to allow times
1008less than or equal to 0, and to use 0 whenever they occur.
1009
10104/26/93 (new feature) Implemented security check for "send" as proposed
1011by Bennett Todd: incoming sends are now rejected unless (a) xhost-style
1012access control is enabled and (b) the list of authorized hosts is
1013empty.  In other words, you have to use xauth to use send.  This feature
1014can be disabled by setting the TK_NO_SECURITY flag at compile-time.
1015
10165/15/93 (improvement) Switched to use Tcl_PrintDouble whenever returning
1017real values as Tcl results.  This potentially allows higher precision.
1018Switched to use %.15g whenever printing reals in Postscript files.
1019However, the change Tcl_PrintDouble causes incompatibilities.  For
1020now, it's disabled with a macro in tclInt.h that redefines Tcl_PrintDouble.
1021Tk 4.0 will delete the macro, and you can also delete it now if you
1022want the better (but incompatible) behavior.
1023
10245/19/93 (bug fix) Fixed divide-by-zero problem that could occur in
1025closeness calculations for canvas oval items.
1026
10275/30/93 (bug fix) PROP and CONFIG were accidentally #defined to the same
1028value in tkBind.c, which could cause incorrect %-substitutions in event
1029bindings in a few exotic cases.
1030
10316/4/93 (improvement) Changed to use GNU autoconfig for configuration.
1032Makefile format changed, and Tcl is no longer automatically included
1033in Tk releases.
1034
10356/7/93 (bug fix) Fixed off-by-one error in rounding negative coordinates
1036during redisplay of canvases.
1037
10386/9/93 (feature improvement) Modified default bindings for entries to
1039keep one character visible to the left of the cursor during backspaces.
1040
10416/18/93 (feature improvement) Added patchlevel.h, for use in coordinating
1042future patch releases, and also added tk_patchLevel variable to make the
1043patch level available in scripts.
1044
10456/26/93 (bug fix) Fixed numeric problems in scales that occurred with
1046very large scale values.
1047
10486/26/93 (bug fix) Polygon items in canvases could cause core dumps if
1049the "coords" widget command was used to add one new coordinate.
1050
10516/26/93 (bug fix) Changed canvases to handle large stipple patterns
1052gracefully (stipples used to jump around during redisplay and lose
1053coherency).
1054
10557/1/93 (syntax change, new feature) Implemented the new packer syntax
1056as described in the book.  For now the old syntax will continue to be
1057supported too.  Converting over is straightforward except (a) use
1058"-anchor" instead of "frame", and (b) padding is different (separate
1059internal and external padding, plus pad amounts are *on each side*
1060instead of total).  Also added "pack propagate" command for keeping
1061the packer from setting the master's requested size.
1062
10637/1/93 Changed copyright notices.  The effect is the same as with the
1064old notices, but the new notices more clearly disclaim liability.
1065
10667/7/93 (new feature) Added support for window stacking order.  Windows
1067will now stack in the order created (most recent on top), plus "raise"
1068and "lower" commands may be used to restack (Tk_RestackWindow procedure
1069is available from C level).
1070
10717/7/93 (reorganization) Moved main.c to tkMain.c, reorganized it to
1072call Tcl_AppInit just like tclsh does, and added argv0 variable to contain
1073application name, and added default Tcl_AppInit procedure for wish.
1074Also added tkTest.c to hold C code for testing.
1075
10767/7/93 (new feature) Added new Tk-specific "exit" command, which cleans
1077up properly before exiting.  It replaces the Tcl "exit" command, and
1078can be used in place of "destroy .".
1079
10807/9/93 (new features) Added tk_dialog library procedure that creates
1081dialogs with a bitmap, message, and any number of buttons.  Also changed
1082default tkerror procedure to use tk_dialog plus offer the user a chance
1083to see a Tcl stack trace.
1084
1085-------------------- Release 3.3 Beta 1, 7/9/93 -------------------------
1086
10877/12/93 (configuration changes) Eliminated leading blank line in
1088configure script;  provided separate targets in Makefile for installing
1089binary and non-binary information; fixed -lnsl and -lsocket handling
1090in configure; added autoconf support for fd_set type; check for various
1091typedefs like mode_t and size_t, and provide substitutes if they
1092don't exist; don't include tkAppInit.o in libtk.a; try to locate the
1093X includes and library in all of the standard places for various systems.
1094
10957/14/93 (new feature) Modified tkMain.c so that it stores the value
1096of the -display command-line option into the DISPLAY environment
1097variable, if it is specified.
1098
10997/15/93 (feature removal) Removed auto-initialization feature from
1100Tk_ConfigureWidget, so that you must once again initialize all fields
1101of a widget record before calling Tk_ConfigureWidget.  This restores
1102the behavior back to what it was in Tk 3.2.
1103
11047/16/93 (bug fix) Modified tkBind.c to ignore the Caps Lock modifier
1105unless it is explicitly requested in a binding.  Without this fix,
1106buttons and menus and other things didn't work if the Caps Lock key
1107was active.
1108
1109-------------------- Release 3.3 Beta 2, 7/21/93 -------------------------
1110
11117/21/93 (new feature) Change "make install" so that it will modify the
1112#! lines on demo scripts to reflect the place where the wish binary
1113is installed.
1114
11157/23/93 (new feature) Added Tk_MainWindow procedure that returns the
1116main window associated with a Tcl interpreter.  This is intended for
1117use by Tcl_AppInit and other initialization procedures.
1118
11197/24/93 (configuration improvements) Changed configure script not to
1120omplain about "fd_set" missing if it's defined in <sys/select.h>.
1121
11227/28/93 (bug fix) "Bad Match - parameter mismatch" errors were
1123sometimes occurring when several top-level windows got created
1124at the same time, due to wrong choice of sibling when stacking
1125windows.
1126
11278/14/93 (new feature) Added support for tcl_prompt1 and tcl_prompt2
1128to wish main program:  makes prompts user-settable.
1129
11308/19/93 (bug fix) Bindings to event sequences like "aD" never matched
1131because the Shift key has to be pressed before D.  Modified Tk to
1132ignore extraneous keypresses if they are for modifier keys.
1133
11348/26/93 (configuration changes) Added Tk_Init, modified Tcl_AppInit
1135procedures to use it and Tcl_Init.  Added support for .wishrc file.
1136
11378/28/93 (new feature) The main window is now a legitimate toplevel
1138widget.
1139
1140-------------------- Release 3.3 Beta 3, 8/30/93 -------------------------
1141
11429/2/93 (bug fix) The packer wasn't always relaying out a master after
1143changes to some of the configuration options of its slaves.
1144
11459/2/93 (bug fix) The binding mechanism made it impossible for patterns
1146like <Double-ButtonRelease-1> to ever match.
1147
11489/2/93 (bug fix) Fixed core dump that occurred for bitmap canvas items
1149if Postscript is generated but no -bitmap option has been specified.
1150
11519/4/93 (enhancement) Slight improvements to menu traversal:  set menu
1152traversal bindings for menubar window in tk_menuBar, plus trigger
1153traversal on <Any-Alt-Keypress> instead of <Alt-Keypress>.
1154
11559/9/93 (bug fix) Changed tkBind.c so that the Num_Lock key doesn't
1156prevent events from triggering bindings.
1157
11589/9/93 (bug fix) Changed tkOption.c to always fetch RESOURCE_MANAGER
1159property from root window of screen 0, rather than using default
1160screen.
1161
11629/9/93 (bug fix) Entry widgets weren't allocating quite enough width
1163for themselves.  Fixed this and changed the size computation to match
1164what's done for buttons and texts.
1165
11669/16/93 (bug fix) Changed tkMain.c not to call exit C procedure directly;
1167instead always invoke "exit" Tcl command so that application can redefine
1168the command to do additional cleanup.
1169
1170-------------------- Release 3.3, 9/29/93 -------------------------
1171
11729/30/93 (bug fix) Packer wasn't unmapping slaves when master got deleted.
1173
11749/30/93 (bug fix) Binding event sequences such as <Right> were being
1175misprinted as ASCII characters such as "S".
1176
117710/6/93 (bug fix) Canvases weren't unmapping window items when the canvas
1178got unmapped, which caused problems for window items whose windows weren't
1179descendants of the canvas (they got left on the screen).
1180
118110/7/93 (feature change) NULL proc arguments to Tk_CreateFileHandler used
1182to have a special undocumented meaning (fd was display);  eliminated this
1183special interpretation.
1184
118510/7/93 (configuration change) Eliminated dependency of tkMain.c on
1186tkInt.h and tkConfig.h, so that it's easier for people to copy the file
1187out of the source directory to make modified versions.
1188
118910/8/93 (bug fix) 3.0 introduced a bug where the class of the application
1190wasn't being set properly, so options based on the application class
1191weren't triggering.  Fixed by adding new argument to Tk_CreateMainWindow.
1192
119310/11/93 (bug fix) Fixed bug in tkTextBTree.c where some deletions would
1194cause core dumps due to halfwayLinePtr not getting set correctly.
1195
119610/18/93 (bug fix) Fixed a couple of bugs that made it hard to actually
1197display N characters in an entry with "-width N" (tended to scroll the
1198entry so that only N-1 characters were visible at once).
1199
120010/22/93 (bug fix) During configuration, XINCLUDE_DIR and XLIBRARY_DIR
1201weren't overriding xmkmf like they were supposed to.
1202
120310/23/93 (new feature) Allow negative scale factors in canvas "scale"
1204widget command.
1205
120610/23/93 (bug fix) Grabs weren't being cleaned up right if the grab
1207window was deleted, causing core-dumps in some cases.
1208
120910/23/93 (bug fix) tk_TextSelectTo wasn't checking to be sure that
1210the "anchor" mark exists.
1211
121210/27/93 (bug fix) Fixed core dump that could occur in a text widget if
1213the scroll command modifies the text.
1214
121511/1/93 (bug fix) Change texts so that the -yscrollcommand option is
1216invoked at display time, not when the window is re-layed out.  This
1217eliminated various core dumps that could occur if -yscrollcommand modified
1218the text.
1219
1220-------------------- Release 3.4, 11/04/93 -------------------------
1221
1222Note: there is no 3.5 release.  It was flawed and was thus withdrawn
1223shortly after it was released.
1224
122511/12/93 (bug fix) TkMain.c didn't compile on some systems because of
1226R_OK in call to "access".  Changed to eliminate call to "access".
1227
1228-------------------- Release 3.6, 11/26/93 -------------------------
1229
123011/10/93 (bug fix) Packer and placer didn't always reposition a window
1231correctly if it was managed inside a neice or lower descendant (using
1232"-in" option) and the neice's parent moved.
1233
123411/24/93 (bug fix) Fixed time problem in selection (retrievals could
1235fail if retriever hasn't received any X events since selection was
1236made, so that time of retrieval appears to be older than time of
1237selection).  Selection code is now much less picky about times, both
1238on retrieving and supplying sides.
1239
124012/2/93 (new feature) Changed arrow-head drawing code for canvas
1241lines to draw a 0-width outline in addition to filling the area:
1242this produces much nicer, more symmetrical displays.
1243
124412/2/93 (bug fix) When colors ran out, Tk was invoking "tkerror"
1245when its state was internally inconsistent, which could cause
1246core dumps in some situations (e.g. if tkerror used the same color
1247that caused colors to run out).  Changed notification to occur
1248as a when-idle handler.
1249
125012/3/93 (bug fix) During a global grab, Tk wasn't including PointerMotion
1251in the list of grabbed events, so pointer motion couldn't be tracked
1252outside the grabbing application.
1253
125412/3/93 (bug fix) Canvases didn't handle smoothed lines correctly
1255when they only contained two points.
1256
125712/3/93 (bug fix) Fixed bug in tkWindow.c where certain kinds of
1258errors during window creation could cause Destroy events to be generated
1259for a window that was never completely initialized.
1260
126112/13/93 (bug fix) Fixed bug in tkTextDisp.c that resulted in core
1262dumps at line 1467 under exmh.  The exact situation is that a text
1263widget was being redisplayed at a time when it had a -yscrollcommand
1264option but hadn't yet been mapped onto the screen.
1265
126612/17/93 (bug fix) Fixed bug in tkWindow.c whereby new top-level windows
1267with non-default visuals still inherited border pixmap from parent (root),
1268which could cause visual clash and X error.
1269
127012/17/93 (bug fix) Fixed bug in tkTextDisp.c that caused round-off
1271error in the information passed to scroll commands.
1272
127312/18/93 (bug fix) Fixed bug in tkPack.c that caused core dumps in
1274some situations if a master with siblings packed "-in" it was deleted.
1275
127612/18/93 (bug fix) Added "compat" directory to distribution, since it's
1277referenced by tkConfig.h on some systems.
1278
127912/18/93 (performance improvement) Improved performance of appending to
1280a listbox, so that inserting N items doesn't take N**2 time.
1281
128212/20/93 (bug fix) Fixed bug in canvas ovals that caused the fill color
1283for the oval to stick out past the outline.
1284
12851/2/94 (fixed Xlib bug) Added code to reuse X resource identifiers so
1286that they won't run out in long running applications.  There are three
1287new library procedures: Tk_FreeXId, Tk_GetPixmap, and Tk_FreePixmap.
1288Modified all Tk code to use these procedures, so wish applications should
1289now be able to run forever without running out of identifiers.
1290
12911/10/94 (bug fix) tkCursor wasn't freeing pixmaps used to create
1292cursors, which caused memory leaks in programs that changed cursors
1293frequently.
1294
12951/21/94 (bug fix) Fixed bug in scales that caused them to loop
1296infinitely drawing tick-marks when -from and -to were the same.
1297
12982/2/94 (bug fix) Fixed problem where messages that contained tabs
1299didn't always compute the correct size, so that text spilled off
1300the right edge.  The fix adds an extra "tabOrigin" parameter to
1301the internal procedures TkMeasureChars, TkDisplayChars, and
1302TkUnderlineChars.
1303
13042/4/94 (bug fix) Fixed off-by-one problem in tkBind.c that caused
1305it to read past the initialized part of dispPtr->modKeyCodes.
1306
13072/7/94 (bug fix) Text widgets didn't handle grabs correctly, such
1308that the "current" character got stuck if a grab occurred while a
1309mouse button was down.  It would get unstuck until after the
1310next button press and release.
1311
13122/19/94 (bug fix) Fixed prolog.ps (prolog for Postscript printing from
1313canvases) so that it correctly prints all of the characters in the
1314ISO Latin-1 character set.
1315
13162/19/94 (bug fix) Modified tkBind.c to save and restore the interpreter's
1317result across the execution of binding scripts.  Otherwise if an event
1318triggers in the middle of some other script (e.g. a destroy event during
1319window creation, because there was an error in the creation command),
1320the intepreter's result gets lost.
1321
13222/19/94 (bug fix) Fixed bug in dealing with results of sent command
1323that could cause them to get lost in some situations.
1324
13252/21/94 (bug fix) Don't let user close a dialog window created by
1326tk_dialog, since this would cause tk_dialog to hang:  force the user
1327to select one of the dialog's buttons.
1328
13292/21/94 (bug fix) Fixed bug in canvas polygons whereby they didn't
1330correctly handle changes in the number of points (via "coords"
1331widget command).
1332
13332/23/94 (bug fix) Large bitmaps in canvases didn't print correctly
1334because they overflowed the 64-KB limit on strings in Postscript.
1335Changed canvas printing to split up large bitmaps into mutliple
1336smaller ones for printing.
1337
13382/25/94 (bug fix) The "." window was being set up with -width
1339and -height options, which interfered with geometry management (any
1340configuration change on "." causes the window to change size to
1341200x200, then change back again).
1342
13432/26/94 (bug fix) Fixed several bugs that occurred when a Destroy
1344event handler for a window deleted the window's parent.
1345
13463/3/94 (new features) Changes to binding mechanism:
1347    - The modifiers for "Alt", "Meta", and "M" are now computed by
1348      examining the modifier map, rather than being hardwired to
1349      M2, M1, and M1.
1350    - When processing events, one script is invoked for each object
1351      in the list passed to Tk_BindEvent, rather than stopping as
1352      soon as a script is invoked for some object.  The "break" and
1353      "continue" commands can be used within a script to abort all
1354      scripts for the event or the current one.
1355      *** POTENTIAL INCOMPATIBILITY ***
1356    - Added "bindtags" command so that new binding groups can be
1357      defined for widgets and the evaluation order can be changed.
1358    - When matching events to bindings, extra modifiers are now ignored,
1359      as if "Any" were specified for every event.  The "Any" modifier
1360      is still recognized, but it is ignored and is deprecated.
1361      *** POTENTIAL INCOMPATIBILITY ***
1362    - In % sequences that print window identifiers (e.g. %a and %S), print
1363      in hexadecimal rather than decimal, for consistence with "winfo id".
1364      *** POTENTIAL INCOMPATIBILITY ***
1365    - The "bind" command no longer supports the event types CirculateRequest,
1366      ConfigureRequest, MapRequest, or ResizeRequest.  These event types
1367      are somewhat dangerous, and they never worked anyway.
1368
13693/13/94 (bug fix) Fixed numerous problems with the "wm iconwindow" command.
1370It appears that this command never really worked at all, but it should
1371work OK now.
1372
13733/14/94 (feature changes) Removed several obsolete features:
1374    - Eliminated "enable" and "disable" widget commands for menus.
1375      *** POTENTIAL INCOMPATIBILITY ***
1376    - Eliminated "activate" and "deactivate" widget commands for buttons,
1377      checkbuttons, radiobuttons, and menubuttons.
1378      *** POTENTIAL INCOMPATIBILITY ***
1379    - Removed -geometry option for frames and toplevels:  it causes
1380      problems when .Xdefaults files contain entries like
1381      "*geometry: +0+0".  Must use -width and -height instead.
1382      *** POTENTIAL INCOMPATIBILITY ***
1383    - Desupported "tkVersion" variable: use "tk_version" instead.
1384      *** POTENTIAL INCOMPATIBILITY ***
1385
13863/16/94 (feature changes) Changes to listboxes:
1387    - Eliminated -geometry option (it causes problems when .Xdefaults
1388      files contain entries like "*geometry: +0+0").  Added -width
1389      and -height options to use instead.
1390      *** POTENTIAL INCOMPATIBILITY ***
1391
13923/21/94 (bug fix) Fixed bug in tkOption.c where the option cache wasn't
1393properly cleaned up after window deletion;  this could cause the wrong
1394value from the option database to be used under some conditions.
1395
13963/25/94 (new features) Changes to geometry management:
1397    - Added Tk_MaintainGeometry and Tk_UnmaintainGeometry procedures
1398      to solve problems with -in windows.  Modified the packer, the
1399      placer, and canvases to use them.
1400    - Changed 2nd argument to Tk_ManageGeometry from Tk_GeometryProc *
1401      to a pointer to a structure with additional information about
1402      the geometry manager, such as name and procedure to call when
1403      slaves are stolen.
1404      *** POTENTIAL INCOMPATIBILITY ***
1405
14063/28/94 (new feature) Overhauled event management:
1407    - Added "cancel" option to the "after" command so that you can
1408      cancel previously-scheduled commands.
1409    - Separated X-specific stuff from generic event management.  The
1410      file tkEvent.c can now be used stand-alone without the rest of Tk.
1411      See the manual entry for Tk_EventInit for information on which
1412      procedures are available this way.
1413    - Added Tk_CreateFileHandler2 procedure, which provides a lower-level
1414      and more powerful form of file event handler.
1415    - Fixed bug in Tk_DoOneEvent where an infinite loop could occur if
1416      the TK_FILE_EVENT and TK_DONT_WAIT flags were set simultaneously
1417      (there were bugs with several other combinations too;  all should
1418      be fixed now).
1419
14203/28/94 (new feature) Added "fileevent" command, which allows event-
1421driven I/O in the style of Mark Diekhans' "addinput" command.
1422
14234/11/94 (new feature) Better support for colormaps and visuals:
1424    - Added new -colormap and -visual options to toplevels and frames.
1425    - Added "winfo visualsavailable" command.
1426    - Added "wm colormapwindows" command, plus support for WM_COLORMAP_WINDOWS
1427      to Tk_SetWindowColormap.
1428    - Added new library procedures Tk_GetVisual, Tk_GetColormap,
1429      and Tk_FreeColormap.
1430
14314/11/94 (bug fix) Fixed core dump that used to occur when specifying
1432an iconwindow ("wm iconwindow") for a toplevel on a different screen
1433than the main window.
1434
14354/23/94 (new feature) Added support for images, including the following:
1436    - New "image" command for creating images.
1437    - Built-in image type: bitmap.
1438    - New "image" item type in canvases.
1439    - Labels, buttons, checkbuttons, radiobuttons, menubuttons, and
1440      menu entries now support a -image option for displaying images.
1441    - Tk_CreateImageType and Tk_ImageChanged procedures, for defining
1442      new types of images in C.
1443    - Tk_GetImage, Tk_FreeImage, Tk_RedrawImage, and Tk_SizeOfImage
1444      procedures, for using images in widgets.
1445
14465/1/94 (new features) Added new procedures Tk_3DVerticalBevel and
1447Tk_3DHorizontalBevel.
1448
14495/11/94 (new features) Major overhaul of text widgets:
1450    - Implemented embedded windows and "window" widget command.
1451    - Added new configuration options for tags: -justify, -lmargin1,
1452      -lmargin2, -rmargin, -offset, -spacing1, -spacing2, and -spacing3.
1453      See the "Display styles" widget demo for examples.
1454    - Added new configuration options for texts: -spacing1, -spacing2,
1455      and -spacing3.
1456    - Added "tagList" option to "insert" widget command to control
1457      tags on new text.  Made tagged regions so they aren't sticky on
1458      either side:  new characters get a tag only if the old chars. on
1459      both sides had it.
1460      *** POTENTIAL INCOMPATIBILITY ***
1461    - Added gravity for marks, and "mark gravity" widget command.
1462    - Added horizontal scrolling, "xview" widget command, -xscrollcommand
1463      option.  Changed "scan" widget commands to support horizontal
1464      scrolling.
1465      *** POTENTIAL INCOMPATIBILITY ***
1466    - Added "search" widget command for searching (either exact matches
1467      or regular expressions).
1468    - New widget commands: bbox, dlineinfo, and see.
1469    - Changed implementation of bindings so that Enter and Leave
1470      events are not generated unless the tag has just become present
1471      (or just ceased to be present) on the current character.  Also
1472      changed bindings to process separately for each tag, rather than
1473      having high-priority tags override low-priority ones.
1474    - The "end" index now refers to the character after the last newline
1475      rather than the newline itself.  You can now tag the final newline
1476      and set a mark after the final newline.
1477    - Deletions of the "sel" tag and the "insert" and "current" marks
1478      are now ignored silently, rather than generating errors.  This means
1479      you can do things like "eval .t tag delete [.t tag names]".
1480
14815/19/94 (bug fix) Canvases didn't generate proper Postscript for stippled
1482text.
1483
14845/20/94 (new feature) Added "bell" command to ring the display's bell.
1485
14865/20/94 (new feature) Incorporated "square" demonstration widget into
1487tktest application.
1488
14895/20/94 (new features) Changed wish application (tkMain.c):
1490    - wish no longer processes the -help option.
1491      *** POTENTIAL INCOMPATIBILITY ***
1492    - The wish main program is now called Tk_Main;  tkAppInit.c has a
1493      "main" procedure that calls Tk_Main.  This makes it easier to use
1494      Tk with C++ programs, which need their own main programs, and it
1495      also allows an application to prefilter the argument list before
1496      calling Tk_Main.
1497      *** POTENTIAL INCOMPATIBILITY ***
1498    - The application's class is now the same as its name (except the
1499      first letter is capitalized), instead of "Tk".
1500      *** POTENTIAL INCOMPATIBILITY ***
1501    - The -file keyword is no longer required:  the script file name can
1502      be provided as the first argument without being preceded by "-file",
1503      as in tclsh.  For backward compatibility the "-file" keyword is
1504      ignored if it is the first argument, but it is deprecated.
1505
15065/26/94 (feature removed) Removed support for "fill" justify mode from
1507Tk_GetJustify and from the TK_CONFIG_JUSTIFY configuration option.  None
1508of the built-in widgets ever supported this mode anyway.
1509*** POTENTIAL INCOMPATIBILITY ***
1510
15115/27/94 (feature change) Changed Tk to use Tk_PrintDouble everywhere
1512that it converts reals to strings.  This means that floating-point
1513values will be generated in some cases where integer-like values were
1514generated before.
1515*** POTENTIAL INCOMPATIBILITY ***
1516
15176/1/94 (feature change) Renamed "pack newinfo" command to "pack info".
1518The old "pack info" command is no longer available.
1519*** POTENTIAL INCOMPATIBILITY ***
1520
15216/20/94 (feature changes) Overhaul of entry widgets:
1522    - Added "-justify" option.
1523    - Added "-show" option to make entries easier to use for passwords.
1524    - Added "cget" widget command.
1525    - Added "selection range" and "selection present" widget commands.
1526    - Added "anchor" symbolic index.
1527    - Changed "-scrollcommand" option to "-xscrollcommand", "view"
1528      widget command to "xview", for compatibility with other widgets.
1529      *** POTENTIAL INCOMPATIBILITY ***
1530    - Changed sel.last to refer to character just *after* last one
1531      selected, again for compatibility with other widgets.
1532      *** POTENTIAL INCOMPATIBILITY ***
1533    - For "delete" widget command, second index now refers to character
1534      just *after* last one to delete.
1535      *** POTENTIAL INCOMPATIBILITY ***
1536    - Overhauled bindings to be more Motif-compatible and to include
1537      common Emacs bindings for editing.
1538    - Changed -width option:  if specified as 0, widget sizes to fit
1539      its current text.
1540
15416/11/94 (new features) Improved Motif compatibility:
1542    - Added "-highlightwidth" and "-highlightcolor" options to all widgets.
1543
15446/27/94 (bug fix) Postscript generation for text items in canvases was
1545not justifying the text properly when a -width was specified that was
1546longer than the longest line.
1547
15486/27/94 (bug fix) "winfo exists" used to report a window as existing
1549if it was in the process of being destroyed (i.e., a destroy handler
1550is in the middle of execution).  Changed to report it as non-existent
1551under these conditions.
1552*** POTENTIAL INCOMPATIBILITY ***
1553
15547/11/94 (bug fix) Selections claimed via "selection own" weren't always
1555being cleared properly when the selection was claimed away.  Also fixed
1556bug where Tk wasn't properly claiming the selection, if there haven't
1557been any recent X events at the time of the claim.
1558
15597/13/94 (feature changes) Overhaul of scrollbar widgets:
1560    - New widget commands: "activate", "cget", "fraction", and "identify".
1561    - New options: -activebackground, -activerelief, -highlightcolor,
1562      -jump, -highlightthickness, and -troughcolor.  What used to be
1563      -background is now -troughcolor, -foreground is now -background,
1564      and -activeforeground is now -activebackground.
1565      *** POTENTIAL INCOMPATIBILITY ***
1566    - Added new syntax for "set" command, "get" result, and generated
1567      commands.  Changed other widgets to use the new syntax.
1568    - Moved the bindings out of C and into Tcl scripts, using the new
1569      options and widget commands.  Added support for all Motif
1570      bindings, plus jump scrolling and cancelling of slider drags.
1571
15727/16/94 (bug fix) Canvases assumed that the Leave event for one item
1573didn't modify or delete the next current item;  this could cause core
1574dumps under some conditions.
1575
15767/23/94 (feature change) Modified Tk_BackgroundError so that tkerror
1577is invoked as an idle handler.  If tkerror generates a break exception
1578then all other queued reports are aborted.
1579
15808/14/94 (bug fix) "cursorOffTime" and "cursorOnTime" were confused in
1581canvases, resulting in the same time being used for both.
1582
15838/16/94 (bug fix) "tkwait variable" command didn't detect errors in
1584variable name, such as trying to wait for an entire array.
1585
15869/2/94 (new features) Overhaul of scale widgets:
1587    - Floating-point values are supported now, following Paul Mackerras'
1588      "fscale" widget.  Added "-resolution" and "-digits" options.
1589    - Added "-variable" option to link scale to variable, following
1590      Henning Schulzrinne's implementation.
1591    - Added focus highlight (-highlightthickness and -highlightcolor
1592      options).
1593    - Added new widget commands "cget",  "coords", "identify", plus
1594      improved "get";  removed wired-in bindings, added complete set
1595      of Motif bindings via Tcl scripts.
1596    - Changed -sliderforeground option to -background, -background to
1597      -troughColor, -activeforeground to -activebackground.
1598      *** POTENTIAL INCOMPATIBILITY ***
1599    - Moved value label from below horizontal scales to above the scale,
1600      for Motif compliance.
1601
16029/9/94 (bug fix) Fixed bug in tkWm.c that caused long delays in "raise"
1603command under some conditions (window already at the top of the stack).
1604
16059/10/94 (new features) Overhaul of label/button/checkbutton/radiobutton
1606widgets:
1607    - Added focus highlight (-highlightthickness and -highlightcolor
1608      options).
1609    - Added new widget command "cget".
1610    - Changed -selector option to -selectcolor, and changed its meaning
1611      too: empty no longer means don't draw the indicator;  it means
1612      don't use a special color when selected.
1613      *** POTENTIAL INCOMPATIBILITY ***
1614    - Added -indicatoron (controls whether indicator is displayed) and
1615      -selectimage (gives special image to display when selected) options.
1616    - Modified bindings to be more Motif-like, added binding for space
1617      key.
1618    - Changed padding defaults to give widgets correct Motif appearance
1619      by default.  Also, changed to ignore padding options when displaying
1620      an image or bitmap.
1621      *** POTENTIAL INCOMPATIBILITY ***
1622    - Can now display text on multiple lines:  newlines cause line breaks,
1623      and word wrapping can be requested with -wraplength option.  Also
1624      added -justify and -underline options.
1625    - The -value option for radiobuttons can now have an empty string as
1626      its value;  it no longer defaults to the name of the widget.
1627      *** POTENTIAL INCOMPATIBILITY ***
1628
16299/13/94 (new features) Modified both canvases and messages to support
1630-highlightthickness and -highlightcolor options plus "cget" widget
1631command.
1632
16339/19/94 (new features) Added Tk_UnsetGrid procedure, modified widgets
1634to use it.  Also changed Tk_SetGrid so that at most one window per
1635toplevel can have gridding enabled.
1636
16379/23/94 (new features) Major overhaul of listbox widgets:
1638    - Added focus highlight (-highlightthickness and -highlightcolor
1639      options).
1640    - Added new widget command "cget".
1641    - Revised selection commands to support single selections as well
1642      as multiple disjoint selections;  syntax of "selection" widget
1643      command has changed to support this.  Added new option -selectmode
1644      for specifying which mode to use.  Default is single selection;
1645      tk_listboxSingleSelect procedure no longer exists.  Selections
1646      now return as items separated by newlines instead of a list whose
1647      elements are the items.
1648      *** POTENTIAL INCOMPATIBILITY ***
1649    - Extended "get" widget command to allow many items to be retrieved
1650      at once.
1651    - Added "bbox" widget command for finding position of an element on
1652      screen.
1653    - Added "activate" command to mark element with traversal focus.
1654    - Extended index mechanism to support new types of indices:
1655      "active", "anchor", "@x,y".
1656    - Added "see" widget command.
1657    - Revised bindings to include all Motif features except for AddMode.
1658    - If -width or -height option is <= 0, the widget requests a size just
1659      large enough to hold all of its text.
1660
166110/6/94 (new features) Overhaul of menubuttons:
1662    - Added focus highlight (-highlightthickness and -highlightcolor
1663      options).
1664    - Added new widget command "cget".
1665    - Added -indicatoron option to display option menu indicator.
1666    - The -menu option must be a child of the menubutton.
1667      *** POTENTIAL INCOMPATIBILITY ***
1668
166910/6/94 (new features) Overhaul of menu widgets:
1670    - Added new widget commands "cget" and "entrycget".
1671    - Changed the implementation of tear-off menus to be more
1672      Motif-like;  added -tearoff option for specifying whether
1673      tearoff entry is displayed.
1674    - Changed interpretation of "@y" index:  it now returns the
1675      closest entry, rather than "none" if y is outside the menu's
1676      range.
1677      *** POTENTIAL INCOMPATIBILITY ***
1678    - The -menu option for a cascade entry must now be a child of
1679      the menu.
1680      *** POTENTIAL INCOMPATIBILITY ***
1681    - Added "type" widget command, so that you can query the type of
1682      an entry.
1683    - Added -foreground, -activeforeground, -selectcolor, -indicatoron,
1684      -image, and -selectimage options to menu entries.
1685    - Changed "selector" menu option to "selectColor" for Motif compliance.
1686      *** POTENTIAL INCOMPATIBILITY ***
1687    - Added -relief option for menus, just for consistency with other
1688      widgets (it was implicitly "raised" before).
1689
169010/6/94 (feature change) Completely overhauled the bindings for menus
1691and menubuttons.  They now fit better with other Tk 4.0 facilities,
1692such as the new binding mechanism, and they provide better Motif
1693compliance (e.g. keyboard traversal of submenus).  Also, the bindings
1694now support option menus, popup menus, and proper Motif tear-off
1695menus.
1696
169710/6/94 (obsolete features) The procedures tk_menuBar and
1698tk_bindForTraversal are no longer needed in Tk 4.0.  They still exist
1699for compability, but they do nothing.
1700
170110/6/94 (new procedures) Added "tk_popup" procedure for posting a
1702popup menu, and "tk_optionMenu" for creating an option menubutton
1703and its associated menu.
1704
170510/6/94 (change in name) The variable "tk_priv" has been renamed
1706to "tkPriv" to reflect that fact that it is private to Tk now.
1707This shouldn't cause any problems, since no-one except Tk should
1708have been using it before anyway (right?).
1709
171010/6/94 (bug fix) Fixed bug in texts where sometimes the text would
1711stop tracking mouse motion (the "current" item wouldn't get updated)
1712because the text widget missed a ButtonRelease event.
1713
171410/20/94 (new features) Overhauled selection code to support multiple
1715selections (primary, secondary, etc.) and multiple displays:
1716    - Changed "selection" command to support new options such as
1717      "-displayof" and "-selection".  Old command formats are still
1718      supported for compatibility, but they are no longer documented
1719      and are deprecated.
1720    - Changed procedures Tk_GetSelection, Tk_CreateSelHandler, and
1721      Tk_ClearSelection to take additional "selection" argument.
1722      *** POTENTIAL INCOMPATIBILITY ***
1723    - Selection targets APPLICATION and WINDOW_NAME have been replaced
1724      by TK_APPLICATION and TK_WINDOW.
1725      *** POTENTIAL INCOMPATIBILITY ***
1726
172710/20/94 (new features) Added support for clipboard:
1728    - New "clipboard" command.
1729    - C procedures Tk_ClipboardClear and Tk_ClipboardAppend.
1730    - Bindings for "cut", "paste", and "copy" for text and entry widgets,
1731      plus "copy" binding for listboxes.
1732
173310/24/94 (bug fix) Button widgets weren't checking for errors when
1734setting the values of associated variables.
1735
173611/3/94 (bug fix) Fixed bug whereby Tk would hang if "exit" was invoked
1737from inside a <Destroy> binding.
1738
173911/15/94 (new features) Overhaul of focus mechanism:
1740    - Added support for multiple displays:  separate focus windows are
1741      kept for each display.
1742    - Added support for keyboard traversal.
1743    - Changed focus model so Tk keeps track of a focus window for each
1744      top-level window and automatically sets the focus on Enter to the
1745      top-level.  Tk no longer synthesizes FocusIn and FocusOut events,
1746      but just uses the standard X mechanisms.  There is no "default"
1747      focus window anymore; the focus reverts to top-levels by default.
1748      *** POTENTIAL INCOMPATIBILITY ***
1749    - Changed focus command:  eliminated "focus default" and "focus none",
1750      added "-displayof" and "-lastfor" options.  An empty string is now
1751      used to signify "no focus" instead of "none".
1752      *** POTENTIAL INCOMPATIBILITY ***
1753    - Added library procedures tk_focusNext, tk_focusPrev, and
1754      tk_focusFollowsMouse.
1755    - Removed obsolete Tk_CreateFocusHandler:  must use FocusIn and
1756      FocusOut events now.
1757      *** POTENTIAL INCOMPATIBILITY ***
1758
175911/23/94 (new features) Overhaul of "send" command:
1760    - Added support for multiple displays: -displayof option to "send".
1761    - Added asynchronous sends: -async option to "send".
1762    - Eliminated fixed timeouts on sends:  as long as the target
1763      application appears to exist, the send will wait for it.
1764    - Stale entries get removed from the application registry now,
1765      so "winfo interps" should never return non-existent applications.
1766    - Can change the name of an application with "tk appname" command.
1767      This is also the preferred way of querying the application name
1768      now.
1769    - The errorCode and errorInfo variables are now propagated back to
1770      the sender now, so a full stack trace is available.
1771    - Tk checks display security on each send now, instead of just during
1772      initialization, so changes in the security status are seen immediately
1773      by all applications.
1774    - The above changes required changes to the data formats used for
1775      communication between source and target applications, so Tk 4.0
1776      applications cannot send to, or be sent from, Tk 3.6 applications.
1777      *** POTENTIAL INCOMPATIBILITY ***
1778    - The procedure Tk_RegisterInterp has been replaced with Tk_SetAppName.
1779      *** POTENTIAL INCOMPATIBILITY ***
1780
178112/6/94 (cleanup) Eliminated "interp" argument to Tk_GetColorByValue,
1782since it is no longer needed.
1783*** POTENTIAL INCOMPATIBILITY ***
1784
178512/7/94 (feature change) Changed the "wm" command so that top-level
1786windows are now resizable by default.  You can no longer specify
1787empty arguments to "wm maxsize" and "wm minsize".
1788*** POTENTIAL INCOMPATIBILITY ***
1789
179012/8/94 (new feature) Added new "photo" image type using code provided
1791by Paul Mackerras:  currently supports only PPM "P6" format images.
1792
179312/14/94 (new features) Canvas modifications:
1794    - Modified the interfaces between generic canvas code and the item
1795      types so that it's easy for people to write new item types outside
1796      of Tk.
1797    - Added support for transparent bitmap items:  just specify an
1798      empty string as the background color.
1799    - Changed the "xview" and "yview" commands for canvases to use the
1800      new scrolling syntax.
1801    - Eliminated -scrollincrement option.
1802      *** POTENTIAL INCOMPATIBILITY ***
1803
180412/14/94 (bug fix) Fixed bug where the dimensions of canvas arrowheads
1805scaled during a "scale" widget command, but the scaling was only
1806temporary and got lost on the next re-configure of the item.  The
1807correct behavior is for the arrowheads not to scale.
1808
1809-------------------- Release 4.0b1, 12/23/94 -------------------------
1810
181112/26/94 (bug fix) Removed obsolete demos from Makefile (color, dialog,
1812size), fixed "install" target.
1813
18141/3/95 (bug fix) Fixed all procedure calls to explicitly cast arguments:
1815implicit conversions from prototypes don't work when compiling under
1816non-ANSI compilers.  Tk is now clean under gcc -Wconversion.
1817
18181/4/95 (bug fix) Used "screenX" without ever setting it in DisplayText
1819in tkCanvText.c:  caused tabs in canvas text items to get messed up.
1820
18211/4/95 (bug fix) Canvases forgot to register the built-in types if
1822Tk_CreateItemType was called before a canvas widget was created.
1823
18241/4/95 (bug fixes) Fixed glitches in various text bindings:
1825    - Up used to do nothing if the cursor was at 2.0.
1826    - Right used to make the cursor invisible if it was just before
1827      the final newline of the text.
1828    - Control-t didn't conform to Emacs;  made it conform to GNU Emacs.
1829    - Deleted Control-x binding, since it doesn't conform to anything and
1830      is confusing for Emacs users.
1831
18321/4/95 (bug fixes) Changed Control-t for entries just as for texts (see
1833above) an deleted Control-x for entries (see above).
1834
18351/4/95 (bug fix) The packer didn't map slaves unless the master was mapped;
1836this could cause slaves to get "lost" so that they weren't mapped until the
1837master resized.
1838
18391/5/95 (bug fix) Scrollbars weren't executing the proper code the first time
1840the mouse entered the widget;  this caused problems if tk_strictMotif was
1841set.
1842
18431/6/95 (bug fix) Fixed label/button/checkbutton/radiobutton/menubutton
1844widgets to allow arbitrary screen distances when specifying -width and
1845-height for an image or bitmap (the manual pages already documented this
1846but the code didn't implement it).
1847
18481/6/95 (new feature) Added very primitive support for input methods,
1849as suggested by Martin Forssen.  This should be enough for European
1850character sets (Compose key) but it isn't near enough for Asian
1851character sets.
1852
18531/8/95 (bug fix) Fixed problem in canvas "xview" and "yview" commands
1854where divide-by-zero errors could sometimes occur.
1855
18561/8/95 (bug fix) New event handler didn't properly handle files for
1857which both TK_READABLE and TK_WRITABLE were specified.
1858
18591/11/95 (bug fix) Fixed bug with text selections:  was returning count
1860too high for data, causing bogus garbage to appear when selection was
1861copied.
1862
1863-------------------- Release 4.0b2, 1/12/95 -------------------------
1864
18651/27/95 (feature removal) Removed %D substitution from binding scripts:
1866wasn't portable, shouldn't be used anyway.
1867*** POTENTIAL INCOMPATIBILITY ***
1868
18691/27/95 (new features) Added -displayof options to the commands
1870"winfo atom", "winfo atomname", "winfo containing", "winfo interps",
1871and "winfo pathname".
1872
18731/27/95 (new feature) Added "idle" option to "after" command to run
1874scripts as idle handlers.
1875
18761/28/95 (new feature) Modified placer to make -x and -relx additive
1877if you specify both.  Same for -y and -rely, -width and -relwidth,
1878and -height and -relheight.  This makes it easy to make request such
1879as "make .a 2 pixels larger than .b".
1880*** POTENTIAL INCOMPATIBILITY ***
1881
18821/28/95 (new feature) Improved auto-grab mechanism in canvases (which
1883prevents current item from changing while a button is down):  changed
1884to report Enter and Leave events for the current item while a button
1885is down.  However, as before, no Enter events are reported for other
1886items until the button goes up.
1887
18881/28/95 (new feature) Bitmap images are now transparent if the -background
1889is specified as an empty string (-maskdata and -maskfile are ignored in
1890this case).  This is also the default.
1891
18921/28/95 (bug fix) Tk didn't support manufacturer- or site-specific keysyms
1893such as SunAudioMute.  Modified tkBind.c so that it uses XStringToKeysym
1894in addition to its own hash table, so that all keysyms are now available.
1895
18961/30/95 (feature change) Modified "clipboard append" so that it reclaims
1897the clipboard selection if it had been previously lost, rather than just
1898generating an error.  This handles certain race conditions more cleanly,
1899and also allows the use of programs like "xclipboard".
1900
19011/30/95 (new feature) Added -xscrollincrement and -yscrollincrement
1902options to canvases.
1903
19041/31/95 (bug fix) Geometry management was broken if a particular geometry
1905manager claimed a slave away from itself.
1906
19071/31/95 (bug fix) Fixed bug in tkVisual.c where a visual with fewer bits
1908than requested was being selected in preference to one with just the right
1909number of bits.
1910
19111/31/95 (bug fix) Texts weren't redisplaying the padding region properly
1912after changes in -padx or -pady.
1913
19141/31/95 (new features) More text improvements:
1915    - Extended "insert" widget command for texts to allow multiple
1916      text-tagList pairs in the same command.
1917    - Added -nocase option to "search" widget command.
1918    - Added -overstrike option to tags.
1919    - Added tab stops, via -tabs option for widget and for tags.
1920
19212/10/95 (bug fix) Modified all widgets to allow renaming of widget
1922commands.  Deleting a widget command will delete the widget.
1923
19242/11/95 (new feature) Added -highlightbackground option to all widgets.
1925
19262/14/95 (new feature) Added "insert" widget command for menus.
1927
19282/15/95 (new feature) Modified text display code (for all widgets) to
1929display well-known control characters like newline and backspace as
1930\n or \b instead of \xa.
1931
19322/15/95 (bug fix) Modified bitmap and photo image managers to delete
1933the image command when the image is deleted.  Also modified them to
1934allow renaming of the image command, and to delete the image if the
1935image command is deleted.
1936
19372/15/95 (bug fix) Fixed text widgets to allow horizontal scrolling
1938even if wrapping was enabled, if a line isn't entirely visible due to
1939a large character or embedded window.
1940
19412/16/95 (feature change) Added "postcascade" widget command to menus,
1942changed "invoke" and "activate" not to post or unpost submenus.  Also
1943fixed bug in redisplay that tended to leave bits of garbage on menu
1944when submenu unposted.
1945*** POTENTIAL INCOMPATIBILITY ***
1946
19472/16/95 (feature removal) Removed "snap back" behavior (slider
1948snaps back to old position if you move the mouse outside the widet
1949before releasing the button) from scrollbars and scales.
1950
19512/16/95 (bug fix) The last line of a listbox wasn't being displayed if
1952it was only partially visible.
1953
19542/16/95 (new features) Added support for "-resolution 0" (no rounding
1955of values) to scale widgets, plus smarter computation of how many digits
1956to display.
1957
19582/17/95 (bug fix) Fixed bug in text bindings for things like Shift-Left:
1959didn't properly set the anchor position.
1960
19612/20/95 (bug fix) Changed management of COLORMAP_WINDOWS property to
1962add the toplevel implicitly to the end of the list if it wasn't already
1963on the list somewhere.  Without this, some window managers implicitly
1964put it at the front of the list, so that colormaps in internal windows
1965are never used.
1966
19672/20/95 (bug fix) Changed to use separate command procedures for
1968button, checkbutton, label, and radiobutton commands.  This allows the
1969class commands to be renamed without breaking their behavior.
1970
19712/20/95 (removed feature) The "bind" command no longer supports
1972"Keymap" events;  they never worked anyway.
1973
19742/20/95 (bug fix) The text "search" widget command looped infinitely
1975when searching an empty text.
1976
19772/20/95 (bug fix) Canvases weren't redrawing their borders after
1978configuration changes.
1979
19802/20/95 (upgrade) Changed to use autoconf version 2.2.
1981
19822/21/95 (bug fix) Fixed several bug fixes in menu bindings that occur
1983when menus have no entries.
1984
19852/21/95 (bug fix) Fixed bug in geometry management that caused windows
1986packed -in siblings to not always be mapped and unmapped properly
1987(particularly when the toplevel got unmapped and mapped).
1988
19892/22/95 (bug fix) Fixed resource leak problem in tkTextDisp.c that
1990caused embedded windows not to be unmapped when off-screen.
1991
19922/23/95 (bug fix) "After cancel" dumped core when the script for an
1993after event cancelled itself.
1994
19952/24/95 (bug fix) Text and entry widgets weren't properly ignoring
1996Alt-, Control-, and Meta- keystrokes, so a widget-specific binding
1997for one of these resulted in the character also being inserted.
1998
19992/24/95 (bug fix) Several widgets accidentally performed unsigned
2000division on negative numbers, thereby losing the sign bit.  This
2001mostly affected the display of images and bitmaps in buttons,
2002menubuttons, and messages.
2003
20042/24/95 (feature reversal) Restored old behavior of %A so that it
2005returns non-printing characters as well as printing ones now.
2006*** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
2007
20082/24/95 (bug fix) Duplicate "leave" events could occur for canvas
2009items under some conditions, due to recursive calls to PickCurrentItem.
2010Added code to detect and skip the nested calls.
2011
20122/24/95 (bug fix) Fixed bug where an error could occur during the first
2013keystroke in an application if its binding invoked "break".
2014
20152/25/95 (new feature) Modified syntax of "search" widget command for
2016texts.  The -nowrap switch and the "variable" final argument are no
2017longer supported.  Instead, there is a -count switch to replace
2018the final argument;  if the final argument is specified, it is now
2019a stopping index for the search.  The features of -nowrap can be
2020achieved now with the stopping index.
2021*** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
2022
20232/27/95 (bug fix) Fixed problem that appears to prevent keyboard
2024input for working under IRIX:  tkBind.c was ignoring XmbLookupString
2025calls that returned a status of XLookupBoth.
2026
20272/27/95 (new feature) Added Tk_GetItemTypes procedure to return
2028information about available canvas item types.
2029
20302/27/95 (feature change) Changed Makefile to always use install-sh
2031for installations:  there's just too much variation among "install"
2032system programs, which makes installation flakey.
2033
20342/27/95 (bug fix) Fixed bug in tkSend.c that caused core dumps if
2035the app's main window was destroyed by a destroy handler on a
2036child.
2037
20383/5/95 (feature change) Change separator character used in "bind +..."
2039bindings from semi-colon to newline (permits bindings that are
2040comments, for what that's worth).
2041
20423/7/95 (bug fix/feature change) Overhauled focus code, both in C
2043and in Tcl:
2044    - Tk won't move the X focus in response to the "focus" command
2045      unless either the application already has the focus or the
2046      -force switch is specified.
2047    - Tk no longer sets the X focus to anything other than top-levels;
2048      it synthesizes events for FocusIn and FocusOut to children.
2049    - A window no longer has to be viewable when focussed to;  Tk will
2050      set the X focus later, when the window becomes viewable.
2051    - Added -takefocus option to all widgets.
2052    - Rewrote tk_focusPrev and tk_focusNext to use the -takefocus option.
2053      These procedures no longer set the focus;  they just return the
2054      next window in focus order.
2055      *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
2056    - Eliminated tk_focusContinue.
2057      *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
2058
20593/8/95 (new feature, bug fix) Added support for tk_strictMotif variable
2060in C:  Tk_StrictMotif library procedure.  Modified buttons, menubuttons,
2061menus to use it.  This fixes the problem with menus not supporting
2062tk_strictMotif properly in Tk4.0b1 and b2.
2063
20643/16/95 (feature overhaul) Overhauled color management:
2065    - Changed Tk so it never denies a color request because a colormap
2066      filled up.  Instead, it allocates the closest available color.
2067    - Eliminated "color model" mechanism.  The "tk colormodel" command
2068      is gone, as are the procedures Tk_GetColorModel and Tk_SetColorModel.
2069      *** POTENTIAL INCOMPATIBILITY ***
2070    - Changed 3D border implementation to allocate colors for shadows
2071      lazily, so they're never allocated if they're never used.  Also
2072      added new feature whereby stippling is used for borders when
2073      the colormap has run out of entries.  Changed arguments to many
2074      of Tk_3D C procedures to take a Tk_Window as argument instead of
2075      a (Display *).  This is needed to do lazy color allocation.
2076      *** POTENTIAL INCOMPATIBILITY ***
2077    - Eliminated colormap argument to Tk_GetColor, Tk_GetColorByValue,
2078      and Tk_Get3DBorder.
2079      *** POTENTIAL INCOMPATIBILITY ***
2080
20813/16/95 (feature change) Event bindings created from Tcl will now ignore
2082Enter, Leave, FocusIn, and FocusOut events with detail NotifyInferior.
2083This is done in anticipation of mega-widgets, so that the user of a
2084mega-widget can create Enter/Leave bindings on the mega-widget without
2085seeing spurious events as the mouse moves among the windows in the
2086mega-widget.
2087*** POTENTIAL INCOMPATIBILITY ***
2088
20893/17/95 (feature change) Changed C interfaces throughout Tk to use ints
2090instead of unsigneds:  the unsigneds turn out to cause subtle problems
2091with arithmetic in some places, and using ints everywhere is just
2092simpler.
2093*** POTENTIAL INCOMPATIBILITY ***
2094
20953/23/95 (bug fix) Selections longer than 4000 bytes were being
2096truncated to 4000 bytes.
2097
2098-------------------- Release 4.0b3, 3/24/95 -------------------------
2099
21003/25/95 (bug fix) Changed "install" to "./install" in Makefile so that
2101"make install" will work even when "." isn't in the search path.
2102
21033/25/95 (bug fix) Modified Tk's selection mechanism to prevent core
2104dumps in other applications during retrievals of large selections
2105(this is actually a bug in the other apps, but I've patched Tk to
2106keep it from getting triggered).
2107
21083/25/95 (bug fix) Fixed bug where X window for "." wasn't being
2109deleted.
2110
21113/27/95 (bug fix) Fixed many bugs associated with having more than
2112one application in a single process.
2113
21143/28/95 (bug fix) The "search" widget command for texts didn't
2115return the correct index and count if there were embedded widgets
2116on the same line as the returned range but before the end of
2117the range.
2118
21193/28/95 (bug fix) Changed pasting via button 2 in text and entries
2120so that it inserts at the pointer location, not the location of
2121the insertion cursor.
2122
21233/28/95 (bug fix) Fixed several bugs related to <Destroy> bindings
2124that delete ancestors in the window hierarchy.  Also eliminated
2125extraneous calls to XDestroyWindow, which speeds up window deletion
2126by about 3x.
2127
21283/28/95 (bug fix) Several widgets (buttons, menubuttons, menus) didn't
2129properly handle image deletions that occurred while the widget was
2130being deleted (caused core dumps).
2131
21323/29/95 (bug fix) When retrieving long selections from text widgets,
2133parts of lines were getting duplicated in the selection information.
2134
21354/1/95 (bug fix) Fixed bug that caused infinite loop in horizontal
2136scales with 0 range.
2137
21384/1/95 (bug fix) Fixed problem with -command option for scrollbars and
2139-takefocus option that caused commands to be evaluated in the wrong
2140context.
2141
21424/1/95 (bug fix) Fixed problem with option database that caused it to
2143sometimes use the wrong option (wasn't flushing the database properly
2144after a change in a window's class).
2145
21464/1/95 (bug fix) If a line in a text widget just barely fit in the window,
2147Tk was allocating a second screen line just for the newline character.
2148
21494/1/95 (new feature) When backspacing in an entry widget, when you reach
2150the left edge of the widget, the insertion cursor gets recentered.
2151
21524/1/95 (new features) Added "winfo pointerx" and "winfo pointery" commands
2153to fetch the current pointer position.
2154
21554/6/95 (bug fix) If the last line of a text widget was only partially
2156visible, it was counted as visible for purposes of the scrollbar.  Now
2157it is treated as if it were off-screen for scrolling purposes.
2158
21594/6/95 (new feature) Modified "bell" command to reset screen saver as well.
2160
21614/6/95 (feature change) Modified menu scanning (where menus pull down
2162as you drag across their menubuttons) so it only works among menus
2163in the same toplevel;  it used to work for any menubuttons in the
2164application.
2165
21664/6/95 (bug fix) Canvas text items weren't allowing real numbers in
2167"@x,y" notation for specifying indices.
2168
21694/7/95 (bug fix) Menus didn't display correctly when -activeborderwidth
2170was large.
2171
21724/7/95 (bug fix) Changed "clipboard append" command to support -- option
2173and to always treat the last argument as data, even if it starts with
2174"-".
2175
21764/17/95 (new feature) Added -wrap option to text tags.
2177
21784/18/95 (bug fix) Listboxes and texts weren't updating their grid information
2179when -width or -height changed.
2180
21814/18/95 (bug fix) "Down" didn't work right in text widgets if the last
2182line was only partially visible in the window.
2183
21844/19/95 (bug fix) Listboxes didn't handle partially visible last lines
2185right:  couldn't scroll it into full visibility, for example.
2186
21874/20/95 (bug fix) If a toplevel was positioned with a command like
2188"wm geometry . -0-0", the window didn't reposition itself to maintain
2189that geometry after a size change.
2190
21914/21/95 (feature change) Changed order of binding tags so widget bindings
2192fire before class bindings.  New order is: widget, class, toplevel, all.
2193*** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
2194
21954/23/95 (new feature) Added "winfo colormapfull" command.
2196
21974/23/95 (new feature) Buttons and radiobuttons and checkbuttons now
2198treat Return the same as Space, unless tk_strictMotif is set.
2199
22004/23/95 (bug fix) Modified menu tear-off procedure to duplicate the
2201binding tags and bindings of the original in the copy.
2202
22034/25/95 (bug fix and feature change) Modified mechanism for choosing
2204"best" visual to fix a bug where depth wasn't really getting highest
2205priority in all situations.
2206
22074/28/95 (bug fix) Failed text searches starting at "end" could result
2208in an infinite loop in Tk.
2209
22104/30/95 (new feature) Added "wm resizable" command to enable and
2211disable interactive resizing.
2212
22134/30/95 (new feature) Added "window names" widget command to texts:
2214returns a list of all embedded windows.
2215
22165/2/95 (feature change) Changed text searches so that forward searches
2217start at the given index, rather than the character just after the
2218given index.
2219*** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
2220
22215/4/95 (bug fix) Default bit gravity for windows was wrong (it was
2222ForgetGravity) causing unnecessary flashing when windows were resized.
2223
22245/4/95 (feature change) Modified Tk_DoOneEvent so that it doesn't
2225sleep if there's nothing that will wake it up again (e.g. no file
2226or timer handlers).  Returns 0 immediately.
2227
22285/5/95 (configuration change) Changed to use BSDgettimeofday instead
2229of gettimeofday on systems like IRIX where BSDgettimeofday is
2230available.  This avoids compilation problems due to the different
2231interface to gettimeofday provided by IRIX.
2232
22335/5/95 (feature change) Changed binding mechanism so that all bindings
2234are created immediately at initialization time, rather than waiting
2235until the first FocusIn or Enter event for a class.
2236
22375/6/95 (feature change) Changed default text for labels, buttons,
2238checkbuttons, radiobuttons, menubuttons, and messages from " " to
2239"".
2240
22415/6/95 (bug fix) If the application was destroyed in the middle of
2242an "update" command, Tk would dump core.
2243
22445/6/95 (bug fix) Changed manual entries to use the standard .TH
2245macro instead of a custom .HS macro;  the .HS macro confuses index
2246generators like makewhatis.
2247
22485/6/95 (bug fix) Change "wm iconwindow" command to disable button
2249presses for the icon window.  This is needed so that the window
2250manager can get those events (X only allows button presses to go
2251to one client for a given window).
2252
22535/9/95 (new feature) When specifying visuals, can now use "best"
2254with a depth, e.g. "-visual {best 8}" to get the best 8-bit visual.
2255
22565/18/95 (bug fix) Fixed bug with -spacing* options for text widget:
2257screen distances weren't allowed, only integers.
2258
22595/20/95 (bug fix) Eliminated memory leaks in tkTextDisp.c and elsewhere.
2260
22615/22/95 (color change) Changed the Tk color palette to a gray scheme.
2262Also added a library procedure tk_setPalette that makes it easy to
2263change colors on the fly, and a procedure tk_bisque that restores the
2264previous light brown scheme.
2265
22665/28/95 (bug fix) Modified canvases so that the -width and -height
2267options refer to the space inside the borders, not the total widget
2268space.  Also changed "xview" and "yview" commands and scroll-increment
2269rounding to use the pixel just inside the borders, rather than (0,0).
2270
22715/28/95 (bug fix) Several widgets (e.g. entries, buttons, and menus)
2272didn't properly handle unsets of variables they were tracing, if the
2273variables were reference through upvars in procedures.
2274
22756/4/95 (bug fix) The placer wasn't rounding window widths right when
2276both -relx and -relwidth were specified (or -rely and -relheight) so
2277that rounding errors accumulated.
2278
22796/4/95 (feature improvement) Change parsing of text indices to handle
2280weird mark and tag names better (e.g. any string ending with ".first"
2281will now be parsed as a tag name, even if it contains embedded spaces,
2282etc.).
2283
22846/4/95 (feature change) If a font defines glyphs for control characters,
2285they are now displayed, instead of translating the character to a
2286backslash sequence (however, tabs and newlines are still treated
2287specially;  glyphs are not displayed for these characters).
2288
22896/4/95 (bug fix) Modify the implementation of "raise" and "lower" for
2290toplevels so that it now works under olwm and olvwm.  It didn't use to
2291work, and the problem is really in the window manager, but Tk now
2292patches around it.  However, only "total" raises and lowers work:
2293raising and lowering relative to a sibling still don't work under
2294olvwm and olwm.
2295
22966/4/95 (feature change) Modified tab code in texts so that a tab always
2297occupies at least as much space as a space character.
2298
22996/4/95 (bug fix) The "%t" substitution wasn't being made properly in
2300Enter and Leave event bindings.
2301
23026/7/95 (new feature) Added support for GIF images.  Unfortunately it's
2303a bit fragile:  certain kinds of badly formed images can cause core
2304dumps;  I don't know enough about the GIF reader (taken from giftoppm)
2305to figure this out.
2306
23076/7/95 (bug fix and feature change) Fixed PPM image reader to be more
2308flexible about header formats, and added support for PGM images.
2309
23106/7/95 (feature change) Added -outlinestipple option to canvas arc
2311items, changed "-style arc" to use -outline as the color instead of
2312-fill (the old approach was pretty quirky).
2313*** POTENTIAL INCOMPATIBILITY ***
2314
23156/8/95 (feature change) Modified interface to Tk_Main to pass in the
2316address of the application-specific initialization procedure.
2317Tcl_AppInit is no longer hardwired into Tk_Main.  This is needed
2318in order to make Tcl a shared library.
2319
23206/8/95 (feature change) Modified Makefile so that the installed versions
2321of wish and libtk.a have version number in them (e.g. wish4.0 and
2322libtk4.0.a) and the library directory name also has an embedded version
2323number (e.g., /usr/local/lib/tk4.0).  This should make it easier for
2324Tk 4.0 to coexist with earlier versions.
2325
23266/9/95 (new feature) Added -outline and -width options to canvas polygon
2327items.
2328
23296/9/95 (feature changed) Renamed -decimate in photo widget to -subsample
2330(decimate wasn't technically correct).
2331*** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
2332
2333-------------------- Release 4.0b4, 6/16/95 -------------------------
2334
23356/19/95 (bug fix) Colors weren't being rounded correctly in canvas
2336Postscript generation: caused "white" to appear slightly gray when
2337the display of the canvas used only 8 bits per color.
2338
23396/20/95 (bug fix) "bbox" widget command for texts didn't return
2340proper width for tabs.
2341
23426/20/95 (bug fix) Scrollbars didn't always work right for texts:
2343couldn't scroll all the way to the bottom of the text in a single
2344drag of the slider.
2345
23466/20/95 (new feature) Added "delta" widget command for scrollbars
2347(needed for above bug fix).
2348
23496/23/95 (bug fix) Listboxes weren't properly redisplaying their
2350borders when the were configured to a smaller size.
2351
23526/23/95 (new feature) Added "winfo server" command.
2353
23546/23/95 (bug fix) If a menu was posted, couldn't switch to another
2355menu with an Alt- key.
2356
23576/24/95 (new feature) Added "winfo pointerxy" command.
2358
23596/25/95 (bug fix) Tk_ParseArgv referenced beyond the end of 0-length
2360option names.
2361
23626/25/95 (bug fix) Fixed problem in tkOption.c where "cachedWindow"
2363could get garbage in it if the main window's class was changed by
2364calling Tk_SetClass.
2365
23666/25/95 (bug fix) Fixed two bugs in menus, one where errors in
2367variable traces weren't propagated correctly and one where "invoke"
2368was invoked at the wrong stack level, with the result that variable
2369traces didn't have access to the right variables.
2370
23716/27/95 (bug fix) tk3d.c wasn't using all the right information
2372when deciding whether or not to stipple borders, so it stippled
2373borders even on 16-bit true-color displays.
2374
23756/28/95 (bug fix) Page up and down operations in texts could cause
2376insertion cursor to drift to the right.  Changed tkTextScrollPages
2377to use upper-left corner of current character, rather than center
2378of character.
2379
23806/28/95 (bug fix) Changed text widget so that you can't put the
2381insertion cursor after the last newline in the text.
2382
23836/28/95 (bug fix) Bitmap images didn't allow ~'s in file names.
2384
23856/28/95 (bug fix) Fixed problem that could cause core dumps in the
2386text widget when dealing with embedded windows (there were problems
2387if the act of redisplaying caused the window layout to change, which
2388can happen with embedded windows).
2389
23906/28/95 (bug fix) Texts didn't handle indices with double negatives,
2391such as ".t mark set insert {insert + -20 chars}".
2392
23936/28/95 (bug fix) Fixed problem where focus didn't always revert to
2394its prior window after a dialog box was dismissed.
2395
23966/28/95 (bug fix) Fixed problem with "search" widget command returning
2397incorrect length on some backwards regexp searches.
2398
23996/28/95 (bug fix) Successive "wm iconbitmap . {}" commands could cause
2400a core dump.
2401
24026/29/95 (new feature) Added -elementborderwidth option for scrollbars
2403so the -borderwidth can be set to 0 without flattening the arrows and
2404slider.
2405
2406-------------------- Release 4.0, 7/1/95 -------------------------
2407
24087/18/95 (bug fix) %t in event bindings didn't work properly for some
2409events (e.g. PropertyNotify).
2410
24117/18/95 (bug fix) Changed "exec wish" lines in demo scripts to
2412"exec wish4.0" to avoid version conflicts.
2413
24147/18/95 (bug fix) Fixed round-off errors in scrolling for texts,
2415canvases, listboxes, and entries.  The error could cause the view
2416to shift up in a command like "$w yview moveto [lindex [$w yview] 0]".
2417
24187/19/95 (bug fix) Canvases weren't always redrawing borders correctly
2419when they became unobscured.  There were also some problems with
2420improper refresh after size changes.
2421
24227/19/95 (bug fix) Fixed bug in text index processing that causes
2423tests textIndex-11.1 and textIndex12.1 to fail on some platforms.
2424
24257/19/95 (bug fix) Fixed bug where 2-second delays were ocurring during
2426"raise" and "lower" commands for toplevel windows under some window
2427managers (such as fvwm).
2428
24297/20/95 (bug fix) Text searches were misbehaving when there were embedded
2430windows on the starting line of the search.  The most common symptom is
2431that Tk would fail to find a match at the starting position for the
2432search.
2433
24347/22/95 (bug fix) Fixed core dump that could occur in menus if a checkbutton
2435entry's -variable option referred to an array (or couldn't be read
2436by the menu C code for some other reason).
2437
24387/22/95 (bug fix) Text widgets didn't update their scrollbars when
2439changes were made to information that was off-screen.
2440
24417/25/95 (bug fix) Fixed core-dump in tkListbox.c that used to happen
2442in the command ".l bbox end" if the listbox was empty.
2443
24447/25/95 (bug fix) Page-up and page-down bindings for listboxes didn't
2445move active element to remain on the screen.
2446
24477/25/95 (bug fix) Patched around H-P compiler problem that results in
2448core-dumps in tkImgPhoto.c during image handling.
2449
24507/25/95 (bug fix) Fixed bug in tkImgPhoto.c that caused core dumps
2451(during Tk self-tests and other image uses) on AIX and other machines
2452where "schar" in tkImgPhoto.c was being defined as "short" instead of
2453"char".
2454
24557/26/95 (bug fix) The PPM image reader couldn't handle maximum intensity
2456values other than 255.
2457
24587/26/95 (bug fix) Canvases didn't redraw their borders when the relief
2459changed from raised to flat.
2460
24617/27/95 (bug fix) Canvases didn't set the scrolling values correctly
2462when no scroll region was specified.
2463
24647/28/95 (bug fix) Modified menu and tk_dialog scripts to restore any
2465old grab that might have been in effect before a menu or dialog was
2466posted.
2467
2468----------------- Released patch 4.0p1, 7/29/95 ----------------------
2469
24708/4/95 (bug fix) Calls to toupper and tolower weren't using the UCHAR
2471macro, so they didn't always work in non-U.S. locales. (JO)
2472
24738/14/95 (new feature) Added -tearoffcommand option for menus.
2474
24758/16/95 (bug fix) Canvases didn't generate proper Enter and Leave
2476events if the Leave handler for an item reconfigured the canvas in
2477a way that made the old current item the new current item again. (JO)
2478
24798/21/95 (bug fix/feature change) When -takefocus was a script, Tk
2480was allowing window viewability to override it.  Changed so that
2481viewability is now ignored when -takefocus is a script. (JO)
2482
24838/21/95 (bug fixes) Fixed memory leaks in tkSend.c, tkSelect.c, and
2484tkUnixWm.c (JO).
2485
24868/21/95 (bug fix) Text widgets didn't handle commands like
2487".t search -backwards foo end 1.0" properly:  never found foo. (JO)
2488
24898/23/95 (new feature) Added Makefile and configure.in support for
2490dynamic loading. (JO)
2491
24928/25/95 (bug fix) The "frame" and "toplevel" commands couldn't safely
2493be renamed, due to a kludgy way that they shared a single command
2494procedure.  Split into separate procedures. (JO)
2495
24968/25/95 (bug fix) Fixed bug in libary/menu.tcl that caused "grab
2497window not visible" errors for popup menus (and perhaps elsewhere?). (JO)
2498
24998/25/95 (bug fix / new feature) The "gray25" bitmap was really only
250012.5% on, not 25%.  Added new "gray12" bitmap that is the same as the
2501old "gray25".  "Gray25" is still supported for compatibility, but its
2502use is deprecated. (JO)
2503
25048/25/95 (bug fix) Scrollbar bindings didn't properly handle case where
2505B2 is clicked while B1 is already down. (JO)
2506
25078/26/95 (bug fix) Menus were ignoring -activebackground if tk_strictMotif
2508was set, but not -activeforeground.  Changed to ignore both. (JO)
2509
25108/26/95 (bug fix) Scales and scrollbars didn't properly handle a
2511-repeatdelay value of 0 (they shouldn't auto-repeat in this case). (JO)
2512
25138/28/95 (bug fix) Tcl errors were occurring for tkPriv(oldGrab) when
2514clicking on a disabled option menu. (JO)
2515
25168/28/95 (bug fix) Changed event-handling code to use FD_SETSIZE instead
2517of OPEN_MAX, since OPEN_MAX is incorrect on some systems (e.g., IRIX). (JO)
2518
25198/28/95 (bug fix) Fixed bug in photo images that caused garbling of
2520image data in the "put" and "copy" commands if the source data had
2521only one scan line but had a width less than the width of the target
2522image. (JO)
2523
25248/29/95 (bug fix) Tk used to refuse to post menus if they had no
2525entries.  This made it impossible for a menu to fill itself the first
2526time it is posted.  Changed to allow menus with no entries to be
2527posted. (JO)
2528
25298/30/95 (bug fix) If there was extra space at the bottom of a menu,
2530it wasn't being redisplayed properly.
2531
25328/30/95 (new feature) Added -transient option to menus.
2533
25348/30/95 (new features) Added proper button 2 support to both scrollbars
2535and scales (it sets the slider position from the mouse position). (JO)
2536
25378/30/95 (bug fix) Fixed potential core dump that could occur in
2538photo images (ReadPPMFileHeader could overflow buffer under some bad
2539inputs, such as certain GIF images). (JO)
2540
25418/30/95 (bug fix) Errors of the form `syntax error in expression "!"'
2542could occasionally happen in tkScaleDrag. (JO)
2543
25448/31/95 (new feature) Changed man page installation (with "mkLinks"
2545script) to create additional links for manual pages corresponding to
2546each of the procedure and command names described in the pages. (JO)
2547
25489/1/95 (new feature) Added "after info" command.  Also added checks
2549so that one interpreter can't cancel another's "after" events. (JO)
2550
25519/8/95 (bug fix) Fixed bug that could cause memory corruption and core
2552dumps if a "fileevent" handler was deleted while the handler was
2553active. (JO)
2554
25559/11/95 Reorganized Tk sources for Windows and Mac ports.  All sources
2556are now in subdirectories:  "generic" contains sources that work on all
2557platforms, "windows", "mac", and "unix" directories contain platform-
2558specific sources.  (SS)
2559
25609/11/95 (new feature) Added new  "notifier" mechanism to allow multiple
2561implementations of the mechanisms for finding out about events.  This
2562change was necessary to support Mac and PC platforms, but it may also
2563allow other goodies such as combining Xt and Tk widgets in a single
2564application.  See the new manual entry Notifier.3 for details. (SS)
2565
25669/11/95 (feature change) Changed interface to Tk_RestrictProc so that
2567(a) it takes a clientData argument instead of display and arg, and
2568(b) it returns a value that can ask for the event to be discarded as well
2569as deferred or processed. (SS)
2570*** POTENTIAL INCOMPATIBILITY ***
2571
25729/11/95 (new feature) Added TK_WINDOW_EVENTS #define, which is equivalent
2573to TK_X_EVENTS but is now preferred, since it applies to all platforms. (SS)
2574
25759/11/95 (feature change) Can't export variables anymore because this doesn't
2576work under Windows DLLs.  Eliminated tk_NumMainWindows variable and replaced
2577with procedure Tk_GetNumMainWindows. (SS)
2578*** POTENTIAL INCOMPATIBILITY ***
2579
25809/11/95 (new feature) Added procedure Tk_PreserveColormap to increment
2581the reference count on colormaps.  Used in photo widgets. (SS)
2582
2583----------------- Released patch 4.0p2, 9/15/95 ----------------------
2584
2585----------------- Released 4.1a1, 9/15/95 ----------------------
2586
25879/22/95 (renamed files) Changed the names of the bitmap images in the
2588$tk_library/demos/images directory to use the .bmap file extension.  (RJ)
2589
25909/22/95 (bug fix) Fixed bug where text widgets could occasionally
2591display the insertion cursor both at the end of one line and the
2592beginning of the next. (JO)
2593
25949/25/95 (bug fix) Fixed bug that could cause core dumps when an
2595application uses multiple screens and a binding destroys the main
2596window (bind code was using MainInfo structure after it had been
2597freed). (JO)
2598
25999/25/95 (bug fix) Text widgets sometimes scrolled backwards on
2600occasion if you dragged down past the bottom of the scrollbar. (JO)
2601
26029/25/95 (bug fix) Fixed bug in menus where a cascaded submenu posted
2603from a torn-off menu could be left posted if mouse was pulled off the
2604end of the cascade and released. (JO)
2605
26069/25/95 (new feature) Added "--" switch to wish, so that you can
2607pass arguments like -n through to a script without having wish
2608interpret them. (JO)
2609
26109/25/95 (bug fix) Fixed core dump that could occur for radiobuttons
2611and selectbuttons if -selectcolor was an empty string. (JO)
2612
26139/26/95 (bug fix) Entries didn't used to notice if a trace procedure
2614on the -textvariable overrode a new value set by the entry.  This
2615could cause the variable to get out of sync with the contents of the
2616entry. (JO)
2617
26189/26/95 (new feature) Added -sliderrelief option to scales, changed
2619default bindings to change the slider's relief to sunken while it's
2620being dragged with the mouse. (JO)
2621
26229/26/95 (bug fix) TkColor.c wasn't computing colormap size correctly;
2623could result in X Protocol error for QueryColors when colormaps run
2624out of colors. (JO)
2625
26269/26/95 (bug fix) Wish couldn't handle script files with spaces in
2627their names. (JO)
2628
26299/27/95 (cosmetic clean-up) Removed extraneous spaces to make error
2630messages consistent: ":  should be" is now ": should be". (JO)
2631
26329/27/95 (feature change)  Modified tk_dialog so that it uses the
2633option database for the -wraplength option on the message.  This
2634allows the option to be overridden by the caller. (JO)
2635
26369/28/95 (bug fix) Wish incorrectly parsed the command line under
2637Windows, causing backslashes to be substituted. (SS)
2638
26399/28/95 (bug fix) Wish now sources wishrc.tcl instead of .wishrc. (SS)
2640
26419/28/95 (bug fix) Tk_DoOneEvent returned 0 under some circumstances
2642when it was possible to find more work to do.  For example, if a
2643signal interrupted select(), but no event handlers were triggered, it
2644would return 0 even though it could still detect events by reentering
2645select().  (SS)
2646
26479/29/95 (bug fix) "winfo interps" caused a crash under Windows. (SS)
2648
264910/1/95 (feature change) Eliminated Tk_NotifyIdle interface in favor of
2650Tk_IdlePending. (SS)
2651
265210/1/95 (bug fix) Turned motion event collapsing into an idle handler
2653so it will be easier to move the event loop into Tcl. (SS)
2654
265510/1/95 (bug fix) Fixed several problems with negative coordinates
2656in canvases.  One example:  dragging a canvas rectangle with a wide
2657border and fractional coordinates could leave junk on the screen
2658if the rectangle was in negative coordinate space. (JO)
2659
266010/2/95 (bug fix) Tk was improperly handling Enter/Leave events
2661during a button grab. (SS)
2662
266310/2/95 (new feature) Added support for the Macintosh do script
2664('dosc') event.  Available only on the Macintosh.  (RJ)
2665
266610/4/95 (new feature) Added support for compiling with VC++.
2667Resulting binaries work under Win32s through NT.
2668
2669----------------- Released 4.1a2, 10/6/95 ----------------------
2670
267110/10/95 (new feature) Macintosh Tk now supports the complete set
2672of X cursors that Unix Tk supports. (RJ)
2673
267410/11/95 (bug fix) Tk now supports all of the X11 cursors under
2675Windows.  (SS)
2676
267710/11/95 (bug fix) The "wm resizable" command was missing from the
2678Windows version of Tk. (SS)
2679
268010/12/95 (bug fix) Macintosh Tk had problems with clipping toplevel
2681windows that children of any frame other than another toplevel. (RJ)
2682
268310/13/95 (bug fix) Eliminated dependency on MKS toolkit for generating
2684the tk.def file from Borland object files. (SS)
2685
268610/16/95 (bug fix) Fixed clipping and update problems relating to
2687the raising and lowering of overlapping windows on Mac. (RJ)
2688
268910/30/95 (bug fix) When focus-follows-mode (invoked via tk_focusFollowsMouse),
2690was focussing on windows even in situations where keyboard traversal would
2691skip the window.  Changed to use the tkFocusOK procedure so that the
2692criteria for focussing are the same in both modes. (JO)
2693
269411/2/95 (bug fix) Changed listbox bindings to ignore double-clicks.
2695This avoids errors that used to occur if a user defined a binding
2696for double-click that deleted the listbox. (JO)
2697
269811/3/95 (feature change) Moved most of the Tk event loop to Tcl.  Many
2699Tk_ names have become Tcl names now:
2700
2701TK_READABLE =>		TCL_READABLE
2702TK_WRITABLE =>		TCL_WRITABLE
2703TK_EXCEPTION =>		TCL_EXCEPTION
2704TK_DONT_WAIT =>		TCL_DONT_WAIT
2705TK_WINDOW_EVENTS =>	TCL_WINDOW_EVENTS
2706TK_FILE_EVENTS =>	TCL_FILE_EVENTS
2707TK_TIMER_EVENTS =>	TCL_TIMER_EVENTS
2708TK_IDLE_EVENTS =>	TCL_IDLE_EVENTS
2709TK_ALL_EVENTS =>	TCL_ALL_EVENTS
2710Tk_IdleProc =>		Tcl_IdleProc
2711Tk_FileProc =>		Tcl_FileProc
2712Tk_TimerProc =>		Tcl_TimerProc
2713Tk_TimerToken =>	Tcl_TimerToken
2714Tk_BackgroundError =>	Tcl_BackgroundError
2715Tk_CancelIdleCall =>	Tcl_CancelIdleCall
2716Tk_CreateFileHandler =>	Tcl_CreateFileHandler
2717Tk_CreateTimerHandler =>Tcl_CreateTimerHandler
2718Tk_DeleteFileHandler =>	Tcl_DeleteFileHandler
2719Tk_DeleteTimerHandler =>Tk_DeleteTimerHandler
2720Tk_DoOneEvent =>	Tcl_DoOneEvent
2721Tk_DoWhenIdle =>	Tcl_DoWhenIdle
2722Tk_Sleep =>		Tcl_Sleep
2723tkerror =>		bgerror
2724
2725Other than the name changes, the functions are the same.  In addition,
2726there are #defines in tk.h so that the old Tk names will still work.
2727tkerror and bgerror are specially hacked as synonyms, so it should be
2728safe to use either one.  You should switch to the new Tcl names ASAP,
2729though, since the old Tk names will eventually be desupported. (JO)
2730
273111/7/95 (features removed) As part of moving the event loop to Tcl,
2732the following procedures were deleted:
2733    - Tk_EventInit (the presence of the event loop in Tcl should
2734      make this unneccessary).
2735    - Tk_CreatFileHandler2 (you can get the same effect by using event
2736      sources in Tcl, but you have to modify your code to use the new
2737      Tcl APIs).
2738    - All of the stuff in the manual entries Notifer.3 and QueueEvent.3;
2739      this has changed because the notifier got reworked when it was
2740      moved to Tcl.
2741*** POTENTIAL INCOMPATIBILITY ***
2742
274311/7/95 (feature change)  Changed to use exit handler to cleanup windows
2744in Tk, so Tk no longer needs to have a private copy of the "exit" command.
2745(JO)
2746
274711/7/95 (bug fix) If wish was invoked with a command-line geometry and
2748a script file (e.g. "wish foo.tcl -geometry 30x20"), and if one of
2749the windows created by the script used the -setgrid option, then the
2750width and height from the command line were lost. (JO)
2751
275211/8/95 (bug fix) The "see" command didn't work quite right for texts:
2753if the window was small and you try to "see" a line just offscreen,
2754Tk centered the line (actually, mis-centered it) when it should have
2755aligned it at the top or bottom. (JO)
2756
275711/9/95 (bug fix) The "send" command crashed if you tried to send to
2758a different display with "-displayof". (JO)
2759
276011/9/95 (bug fix) The Symbol font didn't print right in Postscript
2761output, because of changes made to re-encode fonts to get proper
2762ISO Latin1 behavior.  Changed the code not to re-encode the Symbol
2763font. (JO)
2764
276511/13/95 (bug fix) Fixed Makefile.in and configure.in for UNIX so that
2766configure can be run from a clean directory separate from the Tcl source
2767tree, and compilations can be performed there. (JO)
2768
276911/17/95 (bug fix) If a window was gridded, Tk still computed the
2770default maximum dimensions in pixel units, which resulted in windows
2771that could grow much larger than the screen. (JO)
2772
277311/17/95 (bug fix) If a menus entries were all disabled, posting
2774the menu and typing Up or Down caused an infinite loop, locking
2775up the screen (JO).
2776
277711/19/95 (bug fix) The focus wasn't being restored properly after a
2778menu selection in a cascaded menu. (JO)
2779
278011/19/95 (bug fix) Menubutton's didn't stipple display their images
2781differently when disabled.  Change to have the same behavior as buttons:
2782the image is stippled over in the background color when the menubutton
2783is disabled. (JO)
2784
278511/21/95 (bug fix) Changes in display attributes such as font could
2786cause core dumps in the text widget under some circumstances involving
2787line wrapping. (JO)
2788
278911/22/95 (bug fix/new feature)  Changed both the placer and the packer
2790to ensure that slaves are unmapped whenever the master is unmapped.
2791This saves time that slaves might otherwise spend trying to redisplay
2792themselves when they're unmapped. (JO)
2793
279411/22/95 (bug fix) Space and return keys didn't work for menus if
2795they were posted via Alt-x keystrokes. (JO)
2796
279711/24/95 (bug fix) tk_dialog procedure had binding for <Return> that
2798always activated default binding, even if input focus was in some
2799other binding.  Removed this feature, since existing focus support
2800will already "do the right thing".  (JO)
2801
280211/24/95 (bug fix) Both canvases and texts could dump core if a binding
2803(such as ButtonRelease on an internal item) deleted the widget. (JO)
2804
280511/24/95 (feature change) Replaced "configInfo" file with tkConfig.sh,
2806which is more complete and uses slightly different names.  Also
2807arranged for tkConfig.sh to be installed in the platform-specific
2808library directory. (JO)
2809
281011/24/95 (bug fix) It was possible for a slave to be placed or packed
2811-in itself, with unpleasant consequences.  It is now an error for the
2812slave to be its own master for geometry management. (JO)
2813
281411/25/95 (bug fix) The -command option of scales was sometimes being
2815invoked spuriously (e.g. when the mouse moved in the scale without a
2816button down).  This was because the scale wasn't rounding properly
2817when setting the scale value from its associated variable. (JO)
2818
2819----------------- Released patch 4.0p3, 11/28/95 ----------------------
2820
282112/18/95 (feature change) Moved Tk_Preserve, Tk_Release, and
2822Tk_EventuallyFree to Tcl, renamed to Tcl_Preserve etc.  Added #defines
2823to tk.h so that the old names still work.  (JO)
2824
282512/23/95 (bug fix) If a single process had > 1 Tk application, Tk
2826didn't guarantee that the application names were unique, which could
2827cause all sorts of confusion with "send".  (JO)
2828
282912/23/95 (feature change) Eliminated Tk_CreateMainWindow and moved
2830all of its functionality to Tk_Init.  All that you need to do now
2831to get Tk in an application is to call Tk_Init.  Improved Tk_Init
2832so that -colormap and -visual command-line arguments are now passed
2833through to TkCreateFrame.  Tk_Main is much simpler now, since a lot
2834of its functionality has moved to Tk_Init. (JO)
2835*** POTENTIAL INCOMPATIBILITY ***
2836
283712/23/95 (new feature) Added support for Tcl_StaticPackage so
2838that Tk can now be loaded into slave interpreters with the "load"
2839command to create new applications. (JO)
2840
284112/23/95 (new features) Added support for -colormap and -visual command-
2842line options for wish. (JO)
2843
28441/4/95 (bug fix) Fixed keyboard code to properly handle alt-key
2845sequences for international keyboards and menu-accelerators. (SS)
2846
28471/5/96 (bug fix) Scrollbar code sometimes generated errors on accesses
2848to tkPriv(relief) during control-clicks. (JO)
2849
28501/9/96 (new feature) added the "grid" command to provide a table based
2851geometry manager. (SU)
2852
28531/12/96 (performance optimization) Changed the way tag information is kept
2854in the text's Btree so the cost of adding and removing tag ranges is no longer
2855proportional to the number of unique tags in the text.  In the old system
2856the cost of adding N unique tags was O(N-squared).  The new implementation is
2857optimized for tags that only cover a small amount of text, measuring from
2858their earliest tag range to the end of their last range.  In the best case the
2859cost of adding a tag range is unrelated to the number of unique tags, so the
2860cost of adding N tags is only O(N).  In the worst case, where all tags
2861cover all the text, the cost is still O(N-squared) to add N such tags.
2862Deleting tags still has an O(N) cost (so deleting N tags is O(N-squared),
2863but it is now a factor of 2 faster than the old system. (BW)
2864
28651/12/96 (new feature) added the text "dump" operation that returns information
2866about all elements in a text widget: text, tags, marks, and windows. (BW)
2867
28681/12/96 (new feature) added the text "mark next" and "mark previous" operations
2869to search forward and backwards for the next (previous) mark in the text. (BW)
2870
28711/12/96 (new feature) added the text "tag prevrange" operation to search
2872backwards for the current or previous range of a tag. (BW)
2873
28741/16/96 (new feature) Added support for relative widget placement on
2875the "grid" command. (SU)
2876
28771/17/96 (new feature) Modified the Makefile/configure setup to support
2878compiling Tk as a shared library.  Use the --enable-shared option to
2879the "configure" script. (JO)
2880
2881----------------- Released 4.1b1, 1/26/96 -----------------------
2882
28832/2/96 (bug fix) Frames were getting a default size of 200x200, whereas
2884there should be no default. (JO)
2885
28862/2/96 (bug fix) Argc wasn't getting reset properly after Tk removed
2887the arguments it understood from those on the command line. (JO)
2888
28892/6/96 (bug fix) Fixed off by one error in argument parsing code under
2890Windows. (SS)
2891
28922/6/96 (bug fix) "wm transient" now works under Windows.  The resulting
2893toplevel is created with a modal dialog box frame and will not appear
2894in the taskbar under Windows '95. (SS)
2895
28962/9/96 (bug fix) Changed Makefile.in to use -L and -l for Tcl and Tk
2897libraries so that shared libraries are more likely to be found correctly
2898on more platforms. (JO)
2899
29002/14/96 (feature change) Eliminated tk_CanvasTagsOption variable because
2901it can't be exported safely across DLL boundaries.  Instead, exported
2902Tk_CanvasTagsParseProc and Tk_CanvasTagsPrintProc procedures for
2903use by canvas type managers in creating their own custom options. (JO)
2904*** POTENTIAL INCOMPATIBILITY ***
2905
29062/14/96 (bug fix) "winfo pointerxy" when applied to a non-toplevel window
2907crashed wish.  (SS)
2908
29092/14/96 (bug fix) "tkwait visibility" would hang under Windows. (SS)
2910
29112/14/96 (bug fix) Cursors were not being updated until an enter event.
2912In cases where the cursor left the toplevel and reentered before Tk
2913noticed, the cursor would get "stuck" until the next enter event.
2914Similarly, if the cursor attribute of a window was updated while the
2915mouse was in the window, the cursor would not change until the next
2916time the mouse entered the window. (SS)
2917
29182/15/96 (bug fix) If a top-level was resizable in one direction
2919(e.g. "wm resizable . 0 1"), once the user resized it any changes
2920in the internally requested size (by the widgets) were ignored,
2921even for the non-resizable dimension.  Fixed to handle the two
2922dimensions totally independently, so the widget's requests are
2923honored as long as that dimension hasn't been set by the user. (JO)
2924
29252/17/96 (bug fix) If a text widget had very long lines (e.g. more than
292632K pixels), integer overflow could occur, resulting in parts of the
2927line not being visible. (JO)
2928
29292/20/96 (feature change) Changed the -minsize option of grid to take
2930screen units instead of pixels. (SU)
2931
29322/20/96 (bug fix) grid row and column weights are compared against
2933MINWEIGHT (0.001) instead of 0.0 to guard against divide by zero errors
2934during weight normalization. (SU)
2935
29362/20/96 (bug fix) Menu commands were not being invoked sometimes.
2937There was a race condition that caused events to be processed while a
2938menu was being unposted. (SS)
2939
2940----------------- Released 4.1b2, 2/23/96 -----------------------
2941
29422/23/96 (bug fix) Alt-keys invoked in torn-off and popped up menus
2943caused menus to be posted in the parent toplevel. (JO)
2944
29452/23/96 (bug fix) Canvases weren't always updating their scrollbars
2946when they should. (JO)
2947
29482/23/96 (bug fix) Fixed core dump that could occur if a WM_DELETE_PROTOCOL
2949handler generated an error. (JO)
2950
29512/24/96 (bug fix) Removed dependencies on Makefile in the UNIX Makefile:
2952this caused problems on some platforms (like Linux?). (JO)
2953
29542/24/96 (feature change) Changed text and entry widgets so that they
2955set the insertion cursor before inserting during a button-2 click.
2956Also made optional bindings check for tk_strictMotif at the time of
2957the event, rather than at the time the bindings are created. (JO)
2958
29592/24/96 (bug fix) Tk tended to crash with an X error when unsetting
2960an icon window (e.g. "wm iconwindow . {}"). (JO)
2961
29622/25/96 (bug fix) Wasn't removing windows from the WM_COLORMAP_WINDOWS
2963property when they were deleted.  (JO)
2964
29653/1/96 (new feature) Added new "bbox" widget command for entries.
2966Also modified mouse bindings for entries and texts so that the
2967mouse position rounds to the nearest inter-character gap, rather
2968than the left edge of the character under the mouse.  This provides
2969more natural selection behavior. (JO)
2970
29713/1/96 (bug fix) Fixed core dump that could occur in image code if an
2972image was deleted while in use in a widet, then re-used in another
2973widget while "deleted". (JO)
2974
29753/1/96 (bug fix) Calling wish with a single argument caused a crash
2976under Windows due to an off-by-one error in the argument parsing code. (SS)
2977
29783/1/96 (bug fix) Palette management was broken and resulted in
2979incorrect palette realization and refresh behavior.  Also, images were
2980being drawn incorrectly if they were attached to widgets that had a
2981private colormap. (SS)
2982
29833/2/96 (bug fix) It was possible to press the mouse button over an
2984option menu, drag to a pulldown menu, and have the pulldown menu
2985popup in place of the option menu.  Fixed this so that option menus
2986are isolated from each other and from pulldowns. (JO)
2987
29883/2/96 (bug fix) Fixed yet another bug that caused long delays when
2989raising toplevel windows. (JO)
2990
29913/2/96 (bug fix) Fixed bug in canvases where zero-sized rectangles
2992and ovals didn't always redisplay right (could leave trailing
2993garbage on screen when moved). (JO)
2994
29953/2/96 (bug fix) Entry widgets reset their insertion cursor, selection,
2996and view whenever the text variable changed, plus whenever a "configure"
2997widget command was invoked and there was a text variable for the
2998widget.  Fixed to preserve this information as much as possible. (JO)
2999
30003/5/96 (new feature) Added version suffix to shared library names so that
3001Tk will compile under NetBSD and FreeBSD (I hope).  (JO)
3002
30033/6/96 (bug fix) Changed the way certain configure & motion events are
3004reported.  This fixes several bugs in menus & "winfo rootx". (RJ)
3005
30063/7/96 (bug fix) Fixed tag remove bug that showed up when draging out a
3007selection.  If you had dragged left, then tried to drag back right, the
3008left edge of the selection wasn't being updated because the tag remove
3009wasn't doing anything. (BW)
3010
30113/7/96 (bug fix) Fixed the boundary conditions of tag prevrange.  The second
3012index argument wasn't effecting in stopping the search if it fell within
3013a range.  The second index has to come at or before the start of a range
3014for the range to be found by tag prevrange. (BW)
3015
30163/7/96 (bug fix) "puts" to stdout or stderr when running from a script
3017caused wish41.exe to exit silently.  Now the output is silently
3018discarded without generating an error.  (SS)
3019
30203/7/96 (bug fix) Fixed bug where wish was treating empty lines in the input
3021as end of input, if the input came from stdin. This would cause it to
3022complain about missing closing braces etc. (JL)
3023
3024----------------- Released 4.1b3, 3/8/96 -----------------------
3025
30263/9/96 (bug fix) Fixed bug in text.tcl that could cause errors in text
3027widgets of the form 'can't use non-numeric string as operand of "-"'. (JO)
3028
30293/12/96 (feature improvement) Modified startup script to look in several
3030different places for the Tcl library directory.  This should allow tk
3031to find the libraries under all but the weirdest conditions, even without
3032the TK_LIBRARY environment variable being set. (JO)
3033
30343/14/96 (bug fix) "wish bogus_file_name" didn't print an error message. (JO)
3035
30363/14/96 (bug fix) Button-2 wasn't claiming the focus during paste
3037operations. (JO)
3038
30393/14/96 (bug fix) "tkwait visibility" use to hang forever if its window
3040was deleted.  Now it detects this condition and returns an error. (JO)
3041
30423/16/96 (bug fix) Changed configuration stuff to get dynamic loading and
3043shared libraries working under AIX. (JO)
3044
30453/16/96 (bug fix) Fixed core dumps that could occur when a slave interpreter
3046was deleted in the middle of executin bindings. (JO)
3047
30483/18/96 (new feature) Added support for Activate/Deactivate events.
3049Currently, these new X events will generated only on the Macintosh. (RJ/CS)
3050
30513/21/96 (bug fix) The "tag prevrange" command would fail to return the current
3052range if it began at 1.0 and the starting point of the search was within
3053the range. (BW)
3054
30553/21/96 (configuration improvement) Changed configure script so it
3056doesn't use version numbers (as in -ltk4.1 and libtk4.1.so) under
3057SunOS 4.1, where they don't work anyway.  (JO)
3058
30593/22/96 (bug fix) Made Tk more robust against interpreter deletion. Now it
3060should be safe to delete an interpreter with a Tk application inside it,
3061without first deleting the Tk application. (JL)
3062
30633/26/96 (bug fix) Tk now returns results from a "send" to an interpreter
3064in which the Tk application is destroyed, if the interpreter continues
3065computing after the Tk application is destroyed. Previously any results
3066computed after '.' was destroyed in the target interpreter were discarded
3067by the "send". (JL)
3068
30693/26/96 (new feature) Tk now provides a static Tktest package which is
3070present only in test versions of Tk; this allows the testing commands to
3071be loaded into new interpreters besides the main one. (JL)
3072
30733/28/96 (bug fix) Changed the tk_dialog procedure *not* to make the
3074dialog a transient for its parent.  The old behavior meant that the
3075dialog did not get posted if the parent was iconified. (JO)
3076
30774/5/96 (bug fix) Tk would occasionally crash when destroying toplevels
3078under Windows. (SS)
3079
30804/5/96 (bug fix) Fonts were not being properly deallocated, causing
3081GDI resources to be consumed and never released under Windows. (SS)
3082
30834/11/96 (bug fix) Toplevel windows with no specified geometry were
3084always appearing in the upper left corner of the screen under
3085Windows. (SS)
3086
30874/11/96 (bug fix) "wm minsize" did not properly report the minimum
3088size imposed by the Windows window manager. (SS)
3089
30904/13/96 (bug fix) Text widgets could dump core in some cases where
3091text was inserted on the top visible line. (JO)
3092
30934/16/96 (bug fix) Changed menu code to ignore errors that occur when
3094restoring a grab:  the old grab window might not be visible anymore. (JO)
3095
3096----------------- Released 4.1, 4/21/96 -----------------------
3097
30985/1/96 (buf fix) "option readfile" did not handle files with CRLF
3099line termination. (SS)
3100
31015/1/96 (bug fix) Changed to install tkConfig.sh under "make install-binaries",
3102not "make install-libraries". (JO)
3103
31045/7/96 (bug fix) Moved initScript in tkUnixInit.c to writable memory to
3105avoid potential core dumps. (JO)
3106
31075/7/96 (bug fix) Changed tk_dialog back so that the dialog box is a
3108transient window again.  This is needed to make sure that the dialog
3109box doesn't get obscured.  Also changed it to return -1 if the dialog
3110window is deleted before the user presses a button. (JO)
3111
31125/16/96 (bug fix) Fixed bug that caused core-dumps if a text widget
3113with -setgrid 1 was deleted by removing its command. (JO)
3114
31155/22/96 (bug fix) Listboxes weren't properly ignoring double clicks on
3116button 1. (JO)
3117
31186/12/96 (bug fix) Focus was automatically placed on new toplevels.
3119This caused the titlebar to flash during menubar traversal. (SS)
3120
31216/12/96 (bug fix) Iconification of a window with a specified geometry
3122by using the minimize button would leave the window in an inconsistent
3123state.  When the window was deiconified using "wm deiconify", the
3124window would continue to display as an icon with the deiconified
3125geometry. (SS)
3126
31276/12/96 (bug fix) Fixed a resource leak where the text widget was not
3128freeing all of the TkRegions it created.  This fix affects all
3129platforms, but is particularly important for Win32s. (SS)
3130
31316/21/96 (configuration change) Added --enable-gcc switch to configure
3132script to make Tk just like Tcl.  Now Tk will not use gcc unless you
3133request it explicitly. (JO)
3134
31357/18/96 (bug fix) Changed "configure" script to add an extra -R switch
3136(or whatever is appropriate to the platform) if the X library is in a
3137nonstandard place.  This guarantees that the shared library can be
3138found at runtime without having to set the LD_LIBRARY_PATH variable. (JO)
3139
31407/19/96 (bug fix) Fixed bug in tkImgGIF.c that cause core dumps if a
3141GIF file contained multiple images. (JO)
3142
31437/20/96 (bug fix) Deadlock could occur if a recursive series of send
3144operations involved multiple displays. (JO)
3145
31467/23/96 (bug fix) Fixed a resource leak where deallocated XIDs were
3147taking up memory on Windows and Macintosh platforms. (SS)
3148
31497/30/96 (bug fix) A core dump could occur if a <Destroy> handler for
3150a window tried to create a child in the half-dead window.  Fixed by
3151making the window's name disappear from the name table once it starts
3152to be deleted. (JO)
3153
3154----------------- Released patch 4.1p1, 8/2/96 -----------------------
3155
31564/30/96 (new feature) Added support for named virtual events. New "event"
3157command to define/destroy named virtual events and to programmatically
3158send both real and virtual events to Tk. (CS)
3159
31608/6/96 (bug fix) Entry widgets were invoking scrollbar update functions
3161too often. (JO)
3162
31638/9/96 (bug fix) 7/30 change above for <Destroy> handlers broke many
3164things by making window available during Destroy handler.  Reworked
3165fix for core dump to simply disallow creating children of half-dead
3166parents. (JO)
3167
31688/12/96 (bug fix) Fixed bug where using the Copy menu item on the
3169Macintosh would append a NULL character at the end of the text. (RJ)
3170
31718/15/96 (bug fix) Fixed Mac code so garbage wouldn't be printed in
3172text and entry widgets when function & other non-printing keys were
3173pressed. (RJ)
3174
31758/15/96 (configuration improvement) Changed the file patchlevel.h
3176to be tkPatch.h.  This avoids conflict with the Tcl file and is now
3177in 8.3 format on the Windows platform. (RJ)
3178
31798/19/96 (bug fix) Fixed a bug under Windows where the initial window
3180position for a toplevel window was reported as +0+0, regardless of the
3181actual position. (SS)
3182
31838/21/96 (bug fix) If the last character on a line in a text widget was
3184a space character that didn't completely fit, the text widget would
3185sometimes add an extra wrap line. (JO)
3186
31878/22/96 (feature change) Complete rewrite of the grid geometry manager.
3188There is a new layout algorithm that produces better (but different)
3189layouts in many common cases. (SU)
3190
31918/22/96 (new feature) There are two new options for the grid geometry
3192manager, "grid update" which forces an immediate layout calculation,
3193and a "-pad" option to rowconfigure and columnconfigure that allows for
3194extra space around widgets. (SU)
3195
31968/22/96 (feature change) The order in which the grid geometry manager
3197reports slaves is now last-managed first. (SU)
3198
31998/22/96 (feature change) The column and row weights in the grid
3200geometry manager are kept internally as integers, instead of floating
3201point values.  Floating point values are still accepted on the command line,
3202but are truncated to integers. (SU)
3203
32048/22/96 (new feature) There are four new commands for opening common
3205dialog boxes: tk_chooseColor, tk_getOpenFile, tk_getSaveFile and
3206tk_messageBox. Native dialog boxes are used wherever available. (IL)
3207
32088/22/96 (new demos) Added "fsbox", "msgbox" and "clrpick" demos. (IL)
3209
32108/23/96 (feature change) Invoking the edit menu on the Macintosh now
3211generates the following virtual events <<Cut>>, <<Copy>>, <<Paste>>,
3212and <<Clear>> instead of faking key events. (RJ)
3213*** POTENTIAL INCOMPATIBILITY ***
3214
32158/25/96 (bug fix)  Fixed a bug that would cause "grid x" to dump core. (SU)
3216
32178/26/96 (new feature) Added the "unsupported1" command to the
3218Macintosh version of Tk.  This command will allow you to set the style
3219of a new toplevel Window (much like overrideredirect).  You can use
3220this to get access to all of the Native Mac window styles.  This is to
3221hold you over until we get a more general solution added to the
3222toplevel command. (RJ)
3223
32248/26/96 (new feature) Added support to handle the zoom box on a
3225Macintosh window.  (Currently, you can only get a Tk window with a
3226zoom box by using the "unsupported1" command. (RJ)
3227
32288/27/96 (documentation change) Removed old change bars (for changes in
3229Tk 4.1 and earlier releases) from manual entries. (JO)
3230
3231----------------- Released 4.2b1, 8/30/96 -----------------------
3232
32339/5/96 (bug fixes) Fixed several bugs in file dialogs: individual files
3234could be listed twice, if a long list of files were shown, and the view
3235scrolled to the right, and then a different file file was shown, the
3236scrollregion on the canvas wasn't being reset, so the file dialog was
3237broken from then on, added an update idletasks so that the watch
3238cursor was shown when the dialog was thinking. For the motif file
3239dialog, fixed the weights for resizing.  On the clrpicker, fixed the
3240finalColor variable which caused problems when the OK button was
3241"clicked" before the dialog was mapped (in the test suite). Added Ioi's
3242last changes from before he left. For message boxes, if a single button
3243message box is shown (currently only 'ok'), it is set to be the default
3244even if not specified. (KC)
3245
32469/5/96 (bug fix) Fixed bug on Macintosh where menus would appear in a
3247seemingly random location.  (RJ)
3248
32499/5/96 (bug fix) Text widgets had rounding problems with the "yview"
3250command that caused them sometimes to round to the line before the
3251correct one. (JO)
3252
32539/5/96 (bug fix) Changed grab code to retry grabs after errors where
3254another application already has the grab.  This is needed to get
3255around race conditions with some window managers and will hopefully
3256solve the grab errors that people see occasionally. (JO)
3257
32589/6/96 (bug fix) Fixed x-y coordinate confusion problem with scaling
3259of window items in canvases. (JO)
3260
32619/11/96 (bug fix) The open and save file dialogs would change the
3262current working directory under Windows. (SS)
3263
32649/12/96 (bug fix) The Tk event system was delivering events to dead
3265windows, if the event handler got reentered during a Destroy event
3266handler.  This could cause core dumps and other problems. (JO)
3267
32689/20/96 (bug fix) In XFillRectangles under Windows, a brush was not
3269being deallocated. (SS)
3270
32719/20/96 (bug fix) The Mac window manager used to generate a mouseUp
3272event for a top level that was recently raised to the front/active
3273window which often caused a tk(priv) error.  The up event is no
3274longer generated with solves several problems. (RJ)
3275
32769/25/96 (bug fix) The font code under Windows was leaking memory
3277whenever a new font was referenced using the three part font names. (SS)
3278
32799/26/96 (bug fix) The tests for the common dialogs still used the 'testevent'
3280function.  I updated these calls in clrpick.test, msgbox.test, filebox.test
3281to use the new event gereating mechanism.
3282
32839/18/96 (bug fix) Long-standing bug in bind where <Button-1><Button-1> was
3284reported as <Double-Button-1>, but <Double-Key-a> was reported as "aa". (CS)
3285
32869/27/96 (bug fix) Bindings didn't work on 64-bit machines due to changes
3287made for virtual events. (CS)
3288
32899/30/96 (feature change) Binding for new virtual events included both
3290lower and upper-case, e.g., <<Copy>> was defined as <Control-c> and
3291<Control-C>.  Previously, widgets were directly bound to only lower-case
3292bindings.  The upper-case binding caused incompatibility with some existing
3293Tcl programs, so the upper case bindings for <<Cut>>, <<Copy>>, and <<Paste>>
3294were removed. (CS)
3295
32969/30/96 (bug fix) The postscript code in the canvas widget now uses
3297channels to get and write .ps files which fixed a bug on the Mac where
3298an output file would have mixed EOL characters.  In addition, I added
3299the ability for the prolog to come from the Tk shared library on the
3300Mac which makes it possible to have a standalone application. (RJ)
3301
330210/1/96 (feature change)  "grid forget" was renamed "grid remove".  A new
3303command "grid forget" was added whose semantics are the same as "pack forget"
3304(SAU)
3305*** POTENTIAL INCOMPATIBILITY ***
3306
330710/1/96 (feature change)  grid no longer accepts floating point values for
3308row or column weights, integers must be used.  (SAU)
3309*** POTENTIAL INCOMPATIBILITY ***
3310
331110/1/96 (feature change)  "grid {column,row}configure <master> <index>"
3312returns a list of option value pairs for all of the row or column
3313constraints. It used to return an error. (SAU)
3314
331510/1/96 (bug fix)  "The way grid handles '^' short-cuts was re-written
3316to eliminate core dumps. (SAU)
3317
331810/3/96 (feature change) A virtual event binding associated with a
3319given physical event is now considered less specific than a binding for
3320that same physical event, all other things being equal. (CS).
3321
332210/3/96 (bug fix) Under Windows text placed on the clipboard did not
3323undergo CRLF translation when delivered to other applications. (SS)
3324
332510/3/96 (bug fix) Copying an image onto itself with a zoom factor that
3326caused the image to grow was accessing freed memory. (SS)
3327
332810/3/96 (bug fix) Under Windows, the image blank subcommand did not
3329work. (SS)
3330
333110/10/96 (bug fix) Under Windows & Macintosh, XSetFont and XChangeGC
3332were not implemented, and XSetLineAttributes did not correctly update
3333the GC. (SS)
3334
333510/10/96 (bug fix) Under Windows, 8-bit non-palette displays were not
3336handled properly. (SS)
3337
333810/10/96 (bug fix) Under Windows, images of depth other than 8 or 24
3339bits were not being rendered properly. (SS)
3340
334110/10/96 (bug fix) Under Windows, bitmap subimages were not correctly
3342displayed. (SS)
3343
334410/14/96 (bug fix) Under Window, wm resizable would constrain both
3345programatic resizes as well as user resizes. (SS)
3346
3347----------------- Released 4.2, 10/16/96 -----------------------
3348
334910/17/96 (bug fix) XCopyPlane was broken under Windows and would cause
3350a crash when used with a clipping bitmap. (SS)
3351
335210/21/96 (bug fix) Added missing resources needed by tk_getOpenDialog
3353on the Macintosh to the shared library for Tk. (RJ)
3354
335510/22/96 (bug fix) Invoking a menu with an Alt key sequence caused an
3356error due to a misplaced common in library/menu.tcl. (JO)
3357
335810/23/96 (bug fix) Errors in files sourced by the Macintosh
3359"Source..." menu are now correctly reported via the background
3360error mechanism. (RJ)
3361
336210/23/96 (bug fix) Fixed a bug in the Mac subwindow implementation
3363that caused refreshes to not occur for canvases with embedded
3364windows. (RJ)
3365
336610/24/96 (bug fix) Provided workaround for Apple bug that doesn't
3367handle zooming correctly for floating windows. (RJ)
3368
336910/24/96 (bug fix) Macintosh tearoff menus are now correctly
3370displayed as Mac floating windows. (RJ)
3371
337211/1/96 (bug fix) Restored manual page for procedures like
3373Tk_CreateWindowFromPath and Tk_DestroyWindow; was accidentally deleted
3374when Tk_CreateMainWindow procedure was decommissioned. (JO)
3375
337611/19/96 (bug fix) Fixed bugs in postscript code that would cause the
3377prefix to not be included and the output file to have the wrong
3378permissions. (RJ)
3379
338012/2/96 (bug fix) Fixed problem with canvas lines where it didn't
3381compute bounding boxes correctly for zero-width lines: this could
3382potentially leave garbage on the screen when items were deleted or
3383moved. (JO)
3384
338512/5/96 (bug fix) Fixed the Macintosh implementation of pointer x/y
3386which was returning garbage. (RJ)
3387
338812/6/96 (bug fix) Fixed grid bug where the positioning of slaves was
3389incorrect for non-zero values of ipadx and ipady (SU)
3390
339112/6/96 (bug fix) Fixed grid bug where slaves got "lost" when an
3392already managed slave is re-managed in a different master. (SAU)
3393
3394----------------- Released 4.2p1, 12/8/96 (Mac only) --------------
3395
33961/17/97 (bug fix) Fixed bug where the Tk clipboard was not in sync
3397with the Macintosh clipboard on start-up.  (RJ)
3398
3399----------------- Released 4.2p2, 1/31/97 --------------
3400