1 This file summarizes all changes made to Tk since version 1.0 was
2 released on March 13, 1991. Changes that aren't backward compatible
7 3/16/91 (bug fix) Modified tkWindow.c to remove Tk's Tcl commands from
8 the interpreter when the main window is deleted (otherwise there will
9 be dangling pointers to the non-existent window).
11 3/16/91 (bug fix) Modified tkColor.c not to free black or white colors:
12 some X servers get upset at this.
14 3/18/91 (bug fix) Modified tkShare.c to fix bug causing "DeleteGroup
15 couldn't find group on shareList" panic.
17 3/18/91 (bug fix) Several changes to tkListbox.c and tkScrollbar.c to
18 handle listboxes (and scrollbars) with zero total entries in them.
20 3/22/91 (bug fix) Fixed a few ='s in tkListbox.c that should be ==.
22 3/22/91 (bug fix) Fixed error in main.c that caused BadWindow errors
23 in some cases where wish scripts invoke "destroy .".
25 3/23/91 (new feature) Added Tk_CancelIdleCall to remove Tk_DoWhenIdle
28 3/23/91 (bug fix and new feature) Added -name option to main.c, made
29 it more clever about choosing name (was always using the name "wish"
30 on most Unix systems).
32 3/23/91 (new feature) Added TK_CONFIG_STRING option to Tk_ConfigureWidget,
33 used it to malloc strings for various widget options that used to be
34 Tk_Uid's (e.g. button text, message strings, etc.). Eliminates core
35 leaks when values change in continuous non-repeating fashion.
37 3/29/91 (new feature) Added Tk_Preserve, Tk_Release, and
38 Tk_EventuallyFree procedures to help manage widget records and avoid
39 premature memory free-ing.
41 4/4/91 (bug fix) Fixed problem in tkWm.c where top-level window geometry
42 wasn't tracking correctly when wm-induced size change also changed window
43 position (e.g. menus wouldn't be displayed at the right places).
45 4/5/91 (new feature) Added "invoke" option to widget command for buttons,
46 check buttons, and radio buttons.
48 4/5/91 (new feature) Added "unpack" option to "pack" command.
50 4/5/91 (bug fix) Changed tkPack.c to use new Tk_Preserve code and be
51 more careful about window deletions that occur while repacking is in
54 4/6/91 (bug fix) Major overhaul of deletion code in all widgets to use
55 Tk_Preserve and Tk_Release. Should fix many problems.
57 4/6/91 (bug fix) Changed "winfo children" to generate correct lists
58 when child names have embedded spaces.
60 4/6/91 (new feature) Added "screenheight" and "screenwidth" options to
63 4/18/91 (bug fix) Binding mechanism didn't correctly handle very long
64 %-substitutions in commands (e.g. long path names) and caused memory
65 to be overwritten. Modified tkBind.c to fix.
67 ---------------------- Release 1.1, 4/18/91 -------------------------
69 4/19/91 (bug fix) Inconsistent ICCCM handling of coordinates of reparented
70 windows causes windows to gradually walk south when moved or resized.
71 Fixed tkWm.c to patch around the problem.
73 ---------------------- Release 1.2, 4/24/91 -------------------------
75 4/26/91 (new feature) Added -geometry and -display switches to wish.
76 Also wrote wish manual entry.
78 5/3/91 (bug fix) Fixed bug in tkListbox.c that caused garbage to appear
79 at right edge of window when strings were to large to fit in window.
81 5/3/91 (bug fix) Fixed bug in tkListbox.c where topIndex wasn't getting
82 updated when elements were deleted: tended to cause errors in
83 communication with scrollbars.
85 5/16/91 (bug fix) Fixed bug in tk3d.c, which caused core dumps when
86 consecutive points in a polygon were the same (happened with some
87 configurations of radio buttons, for example).
89 5/16/91 (bug fix) Fixed main.c to allow stdin to be redirected.
91 6/1/91 (bug fix) Make sure that pointers are never used after being
94 6/15/91 (bug fix) Fixed bug in tkBind.c that caused current binding
95 values to not always be printed correctly.
97 6/15/91 (bug fix) Make sure that interpreters are always unregistered
98 when their main windows are deleted, and make wish delete the main
99 window before exiting.
101 8/21/91 (misfeature correction) Automatically set source of window
102 position to "user" in "wm geometry" command, unless it has been
103 explicitly set to "program".
105 9/5/91 (bug fix) Modified option code to accept '#' as a comment
106 character in .Xdefaults files, in addition to '!'.
108 9/10/91 (misfeature correction) Changed binding mechanism so that
109 numeric %-sequences are output in decimal instead of hex.
111 9/19/91 (bug fix) Fixed bug in Tk_DoOneEvent(1) where it wasn't
112 checking files and X connections properly so it missed events.
114 10/6/91 (new feature) Reorganized tkBind.c to provide generic "binding
115 table" structure, which can be used to create bindings on items in
116 canvases as well as windows.
118 10/6/91 (new feature) Upgraded buttons and menus to use new tracing
119 code in Tcl 6.0. Allows radio buttons and check buttons to both set
120 and clear themselves when associated variable changes.
122 10/17/91 (bug fix) Fixed 2 bugs in listboxes: accidentally advanced the
123 selection when new entries were inserted in the listbox after the location
124 of the selected item(s), and goofed up on redisplay if selected item
125 was deleted and then selection was immediately lost.
127 10/27/91 (bug fix) "pack unpack" wasn't telling Tk that it no longer
128 manages window; this led to core dumps in some situations.
130 10/31/91 (reorganization) Renamed manual entries so that they are no
131 more than 14 characters in length.
133 10/31/91 (reorganization) Changed tk.h and tkInt.h so that tkInt.h
134 doesn't needed to be included by tk.h.
136 11/3/91 (portability improvement) Eliminated use of "class" as a variable
137 name, since it's a reserved word in C++.
139 11/7/91 (reorganization) Many changes to upgrade for Tcl 6.1 including
140 use of Tcl hash tables instead of separate "Hash_" module. The "lib"
141 subdirectory is no longer needed in Tk.
143 ---------------------- Release 1.3, 11/7/91 -------------------------
145 11/24/91 (bug fix) Fixed bug causing occasional errors if existing bindings
146 are modified (FindSequence in tkBind.c forget to set *maskPtr).
148 11/24/91 (bug fix) Used wrong hash table in Tk_GetColorByValue. Could
149 cause new entries to get created unnecessarily.
151 12/2/91 (bug fix) Changed "bind" code to put backslashes in front of
152 special characters (e.g. [ or \) that appear in %-replacements, so that
153 they can be parsed cleanly.
155 12/10/91 (bug fix) Manual entries had first lines that caused "man" program
156 to try weird preprocessor. Added blank comment lines to fix problem.
158 1/2/92 (documentation cleanup) Changed manual entries for Tk_GetBitmap
159 and the like to make it more clear that the argument must be a Tk_Uid
162 1/2/92 (bug fix) Fixed problem where scrollbars that were very short or
163 very narrow (too small to hold both arrows) could cause negative values
164 in calls to XClearArea, which crashed some servers.
166 1/2/92 (bug fix) Fixed bug in TkMeasureChars occurring when maxChars
167 is 0. Occasionally affected things like message window geometry.
169 1/3/92 (new feature) Added procedures Tk_GetJustify, Tk_GetAnchor,
170 Tk_GetCapStyle, and Tk_GetJoinStyle, plus support for these things
171 in Tk_ConfigureWidget.
173 ---------------------- Release 1.4, 1/10/92 -------------------------
175 1/12/92 (bug fix) TkMenubutton.c wasn't cleaning up mbPtr->varName
176 properly during menubutton cleanup if an error occurred during
179 1/19/92 (bug fix) Fixed off-by-one bug in tkListbox.c that caused
180 scrollbars to display a slider that was too large.
182 2/10/92 (bug fix) Tk_CreateFileHandler didn't correctly handle case
183 where new mask was specified for existing handler.
185 2/13/92 (bug fix) Tk_DeleteAllBindings wasn't correctly removing
186 bindings from the pattern table: only did the removal for the
187 first pattern in a pattern list.
189 2/15/92 (new feature) Added procedures Tk_DefineBitmap and
190 Tk_SizeOfBitmap. Tk_GetBitmapFromData is now considered obsolete
191 and probably shouldn't be used anymore. Tk_GetBitmapFromData
192 is now implemented by calling Tk_DefineBitmap and Tk_GetBitmap.
194 2/15/92 (new feature) Added "curselection" and "select clear" options
195 to widget command for listboxes.
197 2/15/92 (new feature) Added Tk_3DBorderColor procedure.
199 2/17/92 (relaxed limitations) Changed scrollbars so they no longer limit
200 the slider position to lie within the object's range: can scroll off the
201 end of an object, if the object permits it. Changed listboxes and
202 entries to explicitly prevent viewing off the ends. Also relaxed
203 listbox index checks so that out-of-range indices are automatically
204 adjust to fit within the listbox range.
206 2/19/92 (bug fix) tkWindow.c tended to leave half-created windows around
207 if a new window's name was found to be in use already. Fixed to clean
210 2/22/92 (new feature) Added -anchor, -bitmap, -height, -textvariable,
211 -width options to labels, buttons, check buttons, menu buttons, and radio
212 buttons. This means that (a) size can be controlled better, (b) bitmaps
213 can be displayed in any buttons, (c) the position of the text within the
214 button can be controlled, and (d) a button can be made to display the value
215 of a variable, continuously updating itself. Also changed -selector option
216 so that if it's specified as an empty string then no selector is drawn
219 2/22/92 (new feature) Changed menus to support bitmaps in menu entries:
220 added new -bitmap option for entries.
222 2/26/92 (bug fix) "after" command, when invoked with just one argument,
223 called Tk_Sleep rather than registering a timer handler and looping on
224 Tk_DoOneEvent. As a result, it caused the application to become non-
225 responsive to X events during the sleep. Changed to use a Tk_DoOneEvent
226 loop so that it is responsive.
228 2/26/92 (bug fix) Tk's main program didn't map the main window until
229 after the startup script returned. Changed to map the window as a
230 do-when-idle handler, so that scripts can cause the window to be
231 mapped immediately with a call to "update" or "after".
233 2/28/92 (bug fix) "wm withdraw" wasn't working if invoked before window
234 was originally mapped: window got mapped anyway. Fixed so that the
235 window doesn't get mapped as long as it's withdrawn.
237 2/29/92 (new feature) Can use "focus none" to clear input focus.
239 2/29/92 (bug fix) Fixed tkEvent.c to generate SubstructureNotify events
240 properly. These weren't being generated previously.
242 2/29/92 (bug fix) Fixed entries so that newline characters can be properly
243 displayed (as `\x0a'). Had to change interface to TkDisplayChars in order
244 to do this (added flags argument).
246 2/29/92 (bug fix) Change Tk not to update size and position of top-level
247 windows directly during calls like Tk_ResizeWindow. Instead, wait until
248 actual event is received. This makes updates happen at same time as
251 3/6/92 (bug fix) TkMenubutton.c was dumping core when a menubutton was
252 pressed at a time when there was no associated menu for the button.
254 3/6/92 (new feature) Added Tk script library directory with official
255 Tk initialization file "tk.tcl". Other procedures used by Tk are in
256 other files. Tk procedures and variables all have names starting
257 with "tk_". Also added Wish startup script "wish.tcl", which sources
258 both the Tk and Tcl startup scripts. This means that things like
259 auto-loading and abbreviation expansion are now available in wish.
260 Added new variables tk_library, tk_priv, and tk_version.
262 3/6/92 (new feature) It's now possible to set bindings for whole
263 classes by using the class name in the bind command. For example,
264 "bind Button <Enter> {puts stdout Hi!}" will cause a message to be
265 printed whenever any mouse button is entered. Can also use "all"
266 to set bindings for all widgets. Widget-specific bindings override
267 class bindings which override "all" bindings.
269 3/6/92 (reorganization) Changed buttons (all flavors) and listboxes to
270 eliminate all hard-wired behavior. Instead, default behavior is set
271 by class bindings in tk.tcl. Also set up class bindings for menus,
272 menubuttons, and entries, which previously had no default behavior at
273 all. Scrollbars and scales still have hard-wired behavior that can't
276 3/7/92 (look-and-feel change) Changed listboxes and entries and menus
277 to use button 2 for scanning instead of button 3. This is more consistent
278 with the official Motif use of button 2 for dragging.
280 3/10/92 (new features) Added more options to "winfo" command: screencells,
281 screendepth, screenmmheight, screenmmwidth, and screenvisual.
283 3/13/92 (bug fix) Event sharing mechanism (tkShare.c) wasn't checking
284 to see whether window was mapped before sharing events with it.
286 3/16/92 (bug fix) Tk_SetInternalBorderWidth was passing wrong window to
287 geometry-management procedures, causing core-dumps when menu buttons
288 had their border widths changed.
290 3/16/92 (bug fix) Menus were setting their geometry directory rather
291 than using Tk_GeometryRequest mechanism.
293 3/17/92 (new feature) Added -cursor option to all widgets to set the
294 active cursor for the widget. Also added TK_CONFIG_ACTIVE_CURSOR
297 3/18/92 (new feature) Implemented generalized screen coordinates to
298 allow resolution-independent specification in many cases (but pixel-
299 based coordinates are still OK). Added Tk_GetScreenMM(),
300 Tk_GetPixels(), new configure types TK_CONFIG_SCREEN_MM and
301 TK_CONFIG_PIXELS. Changed widgets to use this new configure types
302 wherever possible (a few of the more complex cases still haven't
303 been taken care of yet). Added "pixels" and "fpixels" options to
306 3/18/92 (new feature) First cut at canvas widgets is done and part of
307 the official Tk now. Canvases display text and structured graphics,
308 and allow you to bind commands to events related to the text and
311 3/21/92 (new feature) Added new "place" command. It implements a
312 new geometry manager that provides fixed placement, rubber-sheet
313 placement, and combinations of the two. Eliminated the commands
314 "move", "resize", and "map" that were provided by main.c but never
315 officially supported; the placer provides all of this functionality.
317 3/23/92 (bug fix) Fixed bug in tkWm.c where top-level windows were
318 occasionally not being given the right size. The problem occurred
319 when a string of resizes happened all in a row (such as deleting all
320 the windows in an application and then recreating them).
322 3/23/92 (new feature) Added Tk_CoordsToWindow procedure and
323 "winfo containing" command. These may be used to locate the window
324 containing a given point.
326 3/28/92 (new feature) Added "-exportselection" option to listboxes,
327 so that listbox selection need not necessarily be the X selection.
329 4/12/92 (bug fix) Changed menu buttons to store name of menubutton
330 in the associated variable, rather than the name of the menu. This
331 is necessary in order to allow several menu buttons to share the
333 *** POTENTIAL INCOMPATIBILITY ***
335 4/12/92 (bug fix) Fixed core dump that occurred in tkError.c when
336 removing the first error record from the error list.
338 4/15/92 (bug fix) Fixed bug in tkBind.c that prevented <KeyPress-1>
339 event specifications from being processed correctly: the "1" was
340 treated as a button name rather than a keysym.
342 4/18/92 (new feature) Added Tk_DefineCursor and Tk_UndefineCursor
345 4/18/92 (new feature) Major revision to listboxes. Can now scroll and
346 scan in both x and y, plus -exportselection option allows selection not
347 to be exported. The "view" widget command has been replaced by "xview"
348 and "yview", and the "scan" widget command has a new syntax.
349 *** POTENTIAL INCOMPATIBILITY ***
351 4/18/92 (new feature) Added -exportselection option to entries, so you
352 can select whether you want the entry selection to be the X selection
355 4/24/92 (new features) Added TK_CONFIG_CUSTOM type to Tk_ConfigureWidget,
356 plus added new flags TK_CONFIG_NULL_OK, TK_CONFIG_DONT_SET_DEFAULT,
357 and TK_CONFIG_OPTION_SPECIFIED. Several other new types, such as
358 TK_CONFIG_CAP_STYLE, were also added as part of implementing canvases.
360 4/29/92 (bug fix) Changed "-selector" default for menus to have separate
361 values for mono and color.
363 4/30/92 (bug fix) Fixed bug in tkListbox.c where it occasionally generated
364 bogus scroll commands (last index less than first).
366 4/30/92 (reorganization) Moved demos directory to "library/demos".
368 ---------------------- Release 2.0, 5/1/92 -------------------------
370 5/2/92 (bug fix) Fixed problem in tkListbox.c where it was doing too many
371 redisplays after repeated insertions. Also reduced number of invocations
372 of scrollbar commands.
374 5/7/92 (portability improvement) Changed main.c not to use TK_EXCEPTION
375 flag; it isn't needed and it causes problems on some systems.
377 5/9/92 (bug fix) Plugged core leaks in tkListbox.c and tkBind.c
379 5/9/92 (bug fix) TkBind.c was accidentally deleting bindings during
380 attempts to print non-existent bindings.
382 5/11/92 (bug fix) Maximum name length for applications (name used in
383 "send" commands) was too short (only 20); increased to 1000. Also
384 fixed bug related to over-long names that caused core dumps.
386 5/13/92 (bug fix) tkShare.c was using a dangling pointer if a share
387 group was deleted as a side-effect of a shared event.
389 5/13/92 (bug fix) Various initialization and core leak problems in
390 tkGC.c, tkSend.c, tkMenu.c, tkEvent.c, tkCanvas.c, tkCanvPoly.c,
391 tkCanvLine.c, tkListbox.c, tkEntry.c.
393 5/13/92 (bug fix) Empty entries could be scanned off the left edge,
394 displaying a garbage character.
396 5/13/92 (bug fix) Fixed a few problems with window manager interactions,
397 such as tendency for windows to spontaneously shrink in size. By no
398 means are all of the problems fixed, though.
400 5/13/92 (performance optimization) Changed Tk_GeometryRequest not to
401 invoke geometry manager unless requested size has changed.
403 ---------------------- Release 2.1, 5/14/92 -------------------------
405 5/1/92 (new features) Added flags like TK_IDLE_EVENTS to Tk_DoWhenIdle,
406 plus added "idletasks" option to "update" command. Tk_DoWhenIdle arguments
407 look different now, but the change should be upward-compatible.
409 5/17/92 (new feature/bug fix) Added support for VisibilityNotify events
410 to the "bind" command. For some reason they weren't supported previously.
412 5/17/92 (new feature) Added "tkwait" command.
414 5/17/92 (new feature) Added "grab" command.
416 5/17/92 (new feature) Added "-width" option to messages. Also changed
417 messages to use the computed (i.e. desired) line length when displaying,
418 not the actual width of the window.
420 5/17/92 (bug fixes) Did some more fiddling with tkWm.c in the hopes
421 of improving window manager interactions. Now there won't be more than
422 one configure request outstanding to the wm at a time.
424 5/17/92 (bug fix) Arrowheads on canvas lines weren't being translated
427 5/20/92 (bug fix) Page-mode scrolling didn't work correctly for canvases
428 (wrong windowUnits was passed to scrollbars).
430 5/20/92 (bug fix) Changed scrollbars not to lose highlight when pointer
431 leaves window with button down. Also changed redisplay to double-buffer
432 for smoother redraws.
434 5/21/92 (new feature) Added "gray50" and "gray25" as predefined bitmaps.
436 5/22/92 (new feature) Buttons can now be disabled using the "-state" and
437 "-disabledforeground configuration options. The "activate" and "deactivate"
438 widget commands for buttons are now obsolete and will go away soon.
439 Please change Tcl scripts not to use them.
441 5/23/92 (new feature) Entries can now be disabled using the "-state"
442 config option. Also improved class bindings for entries to keep the
443 cursor visible in the window when operations occur. Also made slight
444 improvements in the way redisplay is done.
446 5/23/92 (new feature) Added "-textvariable" option to entries so that
447 the text in an entry can be tied to the value of a global variable in
448 a fashion similar to buttons.
450 5/27/92 (new feature) Added "-textvariable" and "-anchor" options to
453 5/28/92 (new feature) Added "-padx" and "-pady" and "-underline" options
456 5/28/92 (feature change) Changed "-width" and "-height" options on
457 all flavors of buttons and menubuttons so that they are orthogonal
458 to "-padx" and "-pady". It used to be that -width overrode -padx
459 (no padding). Now they accumulate.
461 5/29/92 (new feature) Added "-disabledforeground" option to menus and
462 all flavors of buttons (can specify color for disabled things rather
463 than just using stipple to gray out).
465 5/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
468 and will go away soon. Please change Tcl scripts not to use them.
470 5/29/92 (new features) Added "atom" and "atomname" options to "winfo"
473 5/29/92 (new feature) Wrote tk_listboxSingleSelect procedure, which
474 can be used to change listbox behavior so that only a single item is
477 6/1/92 (new feature) Added new modifier names "Meta" and "Alt" for
480 6/3/92 (new feature) Added "winfo toplevel" command.
482 6/3/92 (new feature) Made several changes for greater Motif compliance,
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
488 6/15/92 (bug fix) Fixed problem in tkBind.c where command string for a
489 binding could get reallocated while the command was being executed (e.g.
490 bindings that delete or change themselves).
492 6/15/92 (bug fix) Don't allow "tabWidth" field to become zero in tkFont.c:
493 can cause core dumps for fonts that don't enough information to compute
496 6/19/92 (bug fix) Fixed bug in binding mechanism that caused structure-
497 related events to be reported both to the correct window and its parent.
499 7/14/92 (bug fix) Changed tkColor.c not to free colors for visual types
500 StaticGray or StaticColor.
502 7/15/92 (new feature) Text widgets now exist. They display any number of
503 lines of text with a variety of display formats, and include hypertext
504 facilities. See the manual page for details.
506 7/20/92 (bug fix) If a top-level window was put in the iconic state to
507 begin with, it could be deiconified with "wm deiconify .foo" until it had
508 first been deiconified by hand from the window manager. Tk was getting
509 confused and thought the window was mapped when it wasn't.
511 7/29/92 (bug fix) Don't permit rectangles or ovals to have zero-sized
512 dimensions. Round up to at least one pixel.
514 7/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.
523 8/6/92 (new feature) Added "-width" and "-height" options to frames.
524 The "-geometry" option is now obsolete and should be removed from Tcl
525 scripts: it may go away in the future.
527 8/7/92 (bug fix) Error messages in Tk_ParseArgv were sometimes including
528 the option name where they should have included its value.
530 ---------------------- Release 2.2, 8/7/92 -------------------------
532 8/7/92 (bug fix) Changed tkCanvas.c to be more conservative in the area
533 it passes to XCopyArea.
535 8/8/92 (bug fix) Fixed bug in tkTextDisp.c that sometimes caused core
536 dumps when text views changed (e.g. typing return on last line of screen).
538 8/8/92 (bug fix) Fixed bug in menu.tcl that caused errors when using
539 keyboard to traverse over separator menu entries.
541 8/10/92 (bug fix) Changed to use OPEN_MAX instead of MAX_FD to compute
542 maximum # of open files.
544 8/10/92 (bug fix) Canvases weren't updating scrollbars on window size
545 changes. They also weren't recentering canvases on window size changes.
547 8/10/92 (bug fix) There were still a few places where commands were being
548 invoked at local level instead of global level (e.g. commands associated
549 with buttons and menu entries).
551 8/10/92 (bug fix) TkBind.c used to ignore explicit shift modifiers for
552 all keys (i.e. <Shift-Tab> was treated the same as <Tab>). Modified to
553 allow explicit request for shift modifier, like <Shift-Tab>.
555 8/13/92 (feature change) Changed default fonts to request "Adobe" fonts
558 8/16/92 (bug fixes) Modified tkCanvArc.c and tkTrig.c to increase slightly
559 the bounding boxes for arcs, in order to make sure that proper redisplay
560 occurs when arcs are moved (little turds were getting left behind).
562 8/16/92 (bug fix) Modified tkCanvas.c not to redraw at all if the redisplay
563 area is off the screen. Also, only do a background clear for the portion
564 of the redraw area that is on-screen. Also, reduced size of off-screen
565 pixmaps used for redisplaying, which speeds up redisplay in some cases.
567 8/19/92 (bug fix) Canvases that were taller than wide were not being
568 redisplayed properly.
570 8/20/92 (new feature) Added Tk_CreateGenericHandler procedure for trapping
571 all X events (useful for tracing, watching non-Tk windows, etc.).
573 8/21/92 (bug fix) Widgets weren't always being notified when they got
574 the focus back again (the problem had to do with grabs and menus in
577 8/21/92 (new feature) Added "-state" option to scale widgets.
579 8/22/92 (new feature) Changed tkBitmap.c to allow tilde-substitution
580 to occur in bitmap file names.
582 ---------------------- Release 2.3, 8/24/92 -------------------------
584 8/27/92 (bug fix) Changes to -activebackground and -activeforeground options
585 for menubuttons were being lost.
587 8/27/92 (bug fix) Entries were selecting last character when a B1-drag
588 occurred past the right edge of the text.
590 8/28/92 (bug fix) Fixed bug in canvases where a grab during a button
591 press caused the canvas state to lock up so that it didn't select a
594 9/7/92 (bug fix) Changed tkMenu.c to accept numerical menu indices that
595 are out of range; now it just rounds them off to the nearest existing
598 9/7/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps when
599 invoking "yview -pickplace" widget command on texts that are too small
600 to hold any lines at all.
602 9/11/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps
603 when adding tags to non-existent lines.
605 9/11/92 (bug fix) Line items in canvases didn't permit an empty fill
606 color (i.e. couldn't make them transparent).
608 9/14/92 (reorganization) Changed manual entries to use .1, .3, and .n
609 extensions. Added "install" target to Makefile to suggest how Tk should
612 9/16/92 (bug fix) Changed tkSend.c to always specify the root window of
613 screen 0 rather than using DefaultRootWindow. DefaultRootWindow doesn't
614 always go to screen 0 on displays with multiple screens, which can result
615 in send's not being possible between the screens.
617 9/18/92 (new feature) Added three new options to "wm" command: "protocol",
618 "client", and "command". These provide support for window manager protocols
619 such as WM_DELETE_WINDOW and WM_TAKE_FOCUS, plus support for the
620 WM_CLIENT_MACHINE and WM_COMMAND properties.
622 9/30/92 (new feature) Implemented color model support, including
623 "tk colormodel" command and Tk_GetColorModel and Tk_SetColorModel
624 procedures. These allow you to force mono operation even on a color
625 display. Also changed color allocation not to give errors when colors
626 run out, but just to switch to a mono color model.
628 10/1/92 (bug fixes) Fixed two bugs in tkTextBTree.c that caused core dumps
629 during text deletion.
631 10/5/92 (bug work-around) Changed tkColor.c to ignore errors when freeing
632 colors. This is needed to work around improper reference count management
633 for colormap entries under X11/NeWS.
635 10/7/92 (new feature) Added support for different visual types, including
636 procedures Tk_SetWindowVisual and Tk_SetWindowColormap, plus macros
637 Tk_Visual, Tk_Depth, and Tk_Colormap. The code for this was contributed
640 10/7/92 (new feature) Added Tk_IsTopLevel macro.
642 10/12/92 (bug fix) Fixed bug in tk.tcl that caused torn-off menus with
643 cascaded children not to track mouse motion correctly (the cascade
644 switched in response to mouse motions within the cascaded child).
646 10/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
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 ***
663 10/15/92 (bug fix) Fixed text items in canvases where they didn't
664 display the insertion cursor if the item had no characters in it.
666 10/26/92 (bug fix) Fixed bug in tkSelect.c that occasionally caused
667 BadWindow X protocol errors when retrieving the selection. Tk wasn't
668 making sure that a window existed before using it to retrieve the
671 10/30/92 (feature change) Changed canvases so that if the scroll region
672 is smaller than the window and -confine is on, the scroll region isn't
673 forced to be centered in the window; it can be anywhere that meets the
674 confinement restrictions.
676 11/2/92 (new feature) Added "winfo exists" command.
678 11/5/92 (new feature) Changed DoWhenIdle handlers so that if a new
679 when-idle handler is created as a side-effect of another when-idle
680 handler, the new handler isn't invoked until Tk has first checked
681 for other events to process.
683 11/6/92 (bug fixes, new features) Major overhaul of window manager
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
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).
697 11/6/92 (bug fixes) Modified menus so that they work correctly with
698 virtual root window managers. Also fixed bug where menus didn't move
699 along with their associated windows, so that the menu popped up at
700 the old location of the window rather than its new location.
702 11/9/92 (new constraint) Made it illegal to give windows names that
703 start with upper-case letters, since such names will goof up the
704 option database by appearing to be classes rather than names.
705 *** POTENTIAL INCOMPATIBILITY ***
707 11/10/92 (new feature) Added Postscript output to canvases.
709 11/13/92 (bug fix) Changed default for maximum size passed to window
710 manager from 1000000 (which causes some wm's to make windows too large
711 when "maximized") to the size of the display.
713 11/14/92 (feature change) Major overhaul of menubuttons and pull-down
714 menus. Removed event-sharing code, including Tk_ShareEvents and
715 Tk_UnshareEvents. The -variable option for menubuttons has been
716 removed,and the "post" and "unpost" widget commands for menubuttons
717 no longer exist. The "post" widget command for menus no longer
718 allows a group option. The procedure tk_menus has been replaced
719 with a new procedure, tk_menuBar, which has a slightly different
721 *** POTENTIAL INCOMPATIBILITY ***
723 11/20/92 (new features, feature changes) Major overhaul of grab
724 mechanism to produce more correct event streams. Also changed Tcl
725 commands to require explicit window for grab releases (makes it
726 possible for grabs to work on multiple displays simultaneously).
727 The old "grab none" command no longer exists, but new options
728 have been added: "current", "release", "set", and "status".
729 *** POTENTIAL INCOMPATIBILITY ***
731 11/20/92 (new feature) Use TK_LIBRARY environment variable to set library
732 directory location, if it is defined. Otherwise fall back on usual
735 11/25/92 (bug fix) "wm grid" command was using wrong window.
737 11/29/92 (bug fix) Fixed core dump that occurred when trying to use
738 placer on top-level windows: return error instead.
740 11/29/92 (bug fix) Selection retrieval wasn't making sure that the window
741 on whose behalf selection is being retrieved actually exists.
743 12/3/92 (new feature) Added support for Mode_switch key to support the
744 full ISO character set. Also added event handlers for MappingNotify
745 events so that Tk updates itself in response to keycode and modifier
748 12/6/92 (bug fix) Ignore recursive attempts to destroy window.
750 12/9/92 (new demos) Added "tcolor" and "rmt" demos.
752 12/10/92 (new features) Added "yposition" widget command for menus,
753 changed "delete" widget command to take an optional second index,
754 and changed -command option for cascade entries so that it is
755 invoked when the entry is activated rather than when it is invoked.
756 *** POTENTIAL INCOMPATIBILITY ***
758 12/12/92 (implementation change) Changed the procedures Tk_FreeBitmap,
759 Tk_NameOfBitmap, Tk_SizeOfBitmap, Tk_FreeCursor, Tk_NameOfCursor, and
760 Tk_FreeGC to require an addition Display argument. This is needed for
761 Tk to function correctly when an application has windows on multiple
763 *** POTENTIAL INCOMPATIBILITY ***
765 12/12/92 (new feature) Started creating a test suite. Right now it
766 only has a few tests.
768 12/12/92 (new feature) Modified the packer so that a window can be
769 packed in descendants of its parent (used to be restricted to the
770 parent alone). This makes it possible to hide extra windows used
771 for geometry management. Also, can use generalized screen distances
772 in the "pack" command.
774 12/16/92 (feature change) Boolean options such as -exportselection now
775 print as 0/1 rather than true/false (both the default and current values
776 print this way). This makes it easier to use these values in expressions.
777 *** POTENTIAL INCOMPATIBILITY ***
779 12/16/92 (name change) The classes "RadioButton" and "CheckButton" have
780 been renamed "Radiobutton" and "Checkbutton" for consistency. From now
781 on widget class names will have exactly one capital letter.
782 *** POTENTIAL INCOMPATIBILITY ***
784 12/16/92 (new feature) Added -setgrid option to listboxes.
786 12/16/92 (new feature) The "destroy" command, and the "delete" widget
787 command for canvases, now accept any number of arguments, including
790 12/16/92 (new feature) Changed internal TkBindError procedure to
791 Tk_BackgroundError and exported it to Tk clients.
793 12/16/92 (option name change) Changed the place command's "dependents"
794 option to "slaves" for better consistency with documentation.
795 *** POTENTIAL INCOMPATIBILITY ***
797 12/16/92 (name changes) Renamed the "cursor*" options in entries and
798 canvases to "insert*". Also renamed the "cursor" index to "insert" and
799 the "cursor" widget command to "icursor". This was done to avoid
800 confusion between the mouse cursor and the insertion cursor.
801 *** POTENTIAL INCOMPATIBILITY ***
803 ---------------------- Release 3.0, 12/17/92 -------------------------
805 12/17/92 (bug fix) Fixed dangling-pointer bug in canvases that occurred
806 if a <LeaveNotify> binding deleted the current item.
808 12/18/92 (bug fix) Core dump occurred if "wm" invoked with no arguments.
809 Also, tkWm.c wasn't properly setting WM_CLASS property on application
812 12/18/92 (incorrect documentation) Updated manual entries for Tk_FreeGC,
813 Tk_FreeCursor, and Tk_FreeBitmap to reflect new interface that requires
816 12/18/92 (missing documentation) Added documentation for the canvas
817 "postscript" command, which was missing in the 3.0 release.
819 12/21/92 (bug fixes) There were lots of problems with the new installation
820 targets in the Makefiles, such as using "cp -f" and not installing
821 prolog.ps. Made several other miscellaneous improvements to Makefile.
823 12/21/92 (bug fix) Arrowheads on canvas line items weren't moving properly
824 after coordinate changes made with the "coords" widget command.
826 12/21/92 (bug fix) If top-level window was initially withdrawn, couldn't
827 ever deiconify it again.
829 12/21/92 (bug fix) Double-button event sequences didn't always trigger
830 properly when grabs were in effect.
832 12/22/92 (bug fix) The packer didn't display any top or bottom windows
833 after a left or right expanded window, and vice versa. Also made the
834 distribution of space among expanded windows more even.
836 12/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
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
846 (e) Added test file "select.test" to test suite.
848 12/28/92 (bug fix) Fixed problem with flashing menus that occurred
849 because menu.tcl was willing to unpost and then immediately repost
852 1/6/93 (bug fix) Test for UnmapNotify events in tkPack.c used = instead
855 1/21/93 (bug fix) Changed many widgets to eliminate use of
856 DefaultVisualofScreen, DefaultColormap, etc. and use the visuals
857 and colormaps for the actual windows instead. Also changed to
858 inherit colormaps and windows from parent by default.
860 1/21/93 (new features) Added new winfo options "cells", "depth", and
863 1/23/93 (bug fix) Fixed problem with text display that could result
864 in negative XCopyArea heights being sent to X server. This causes some
865 servers (e.g. some versions of OpenWindows) to crash.
867 1/25/93 (new feature) Added -postcommand option to menus, so that menus
868 can be reconfigured before each posting.
870 1/29/93 (feature change) Changed %X and %Y in bindings so that they
871 refer to the virtual root rather than the true root. Although
872 potentially incompatible, this change should almost always "do the
874 *** POTENTIAL INCOMPATIBILITY ***
876 1/31/93 (bug fix) Changed "send" code to grab server while updating
877 the registry property (before this fix, two programs could allocate
878 the same interpreter name if they started up simultaneously). In
879 order to make this fix I had to change the code for reclaiming
880 names of dead interpreters in a way that sometimes allows dead
881 interpreters to persist in the registry.
883 2/1/93 (feature change) Changed entries to allow leftmost "visible"
884 character to be the end of the text (i.e. no characters actually visible).
885 This is needed so that the cursor can be displayed even if the last
886 actual character is too wide to fit in the window.
888 2/3/93 (bug fix) Fixed two bugs in tkFocus.c: (a) FocusIn events
889 were getting lost in some cases because the focus window hadn't been
890 created yet (e.g. new top-level window pops up underneath the mouse);
891 (b) Tk was accidentally triggering FocusOut events when the mouse
892 moved from a top-level window to one of its children.
894 2/4/93 (new feature) Added "visibility" option to "tkwait" command to make
895 it easier to wait for a new window to appear on the screen.
897 ---------------------- Release 3.1, 2/5/93 -------------------------
899 2/10/93 (installation improvements) Makefile improvements: added RANLIB
900 variable for easier Sys-V installation, changed to use INCLUDE_DIR
901 properly, and added SHELL variable for SGI systems.
903 ---------------------- Release 3.2, 2/11/93 -------------------------
905 2/11/93 (new feature) Added "wm state" command, and improved wm so that
906 the right thing will happen if you invoke "wm iconify" when a window is
909 2/14/93 (bug fix) When -colormap option was used in generating Postscript
910 for canvases, Tk didn't add an extra space after the color command.
912 2/14/93 (new feature) Changed "extern" declarations in tk.h to "EXTERN",
913 which will use the definition of EXTERN from tcl.h and work correctly
916 2/18/93 (bug fix) Item-specific bindings weren't getting deleted from
917 canvas items when the items were deleted. As a result, they could
918 suddenly re-appear for new items if the new items were allocated a
919 record at the same addresses as the old ones.
921 2/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;
923 can always use tkwait plus after with additional arguments to achieve
924 the effect of responding to events.
925 *** POTENTIAL INCOMPATIBILITY ***
927 2/20/93 (bug fix) Fixed bug in tkWindow.c where colormaps weren't being
928 set correctly for new top-level windows on different screens than their
929 parents (the bug results in X protocol errors: "invalid Colormap
932 2/22/93 (bug fix) Changed "#!/usr/local/wish" in demo scripts to
933 "#!/usr/local/bin/wish" to reflect new location of binary.
935 2/22/93 (new feature) Added new reliefs "groove" and "ridge".
937 2/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).
941 2/25/93 (improved implementation) Changed DrawText procedure in
942 prolog for outputting Postscript from canvases to use stringwidth
943 instead of charpath+pathbbox: avoids limitcheck problems with long
944 strings, and also properly includes space characters in calculation.
946 2/25/93 (bug fix) Fixed several bugs in library/menu.tcl that caused
947 menu traversal to mis-behave when menu had no entries.
949 2/26/93 (new feature) Added "wm frame" command.
951 3/6/93 (bug fix) Mwm in click-to-focus mode was goofing up grabs so that
952 pull-down menus were sometimes unresponsive. Modified tk.tcl to ignore
953 the spurious B1-Enter events generated by mwm, plus modified tkGrab.c to
954 release simulated button grabs correctly.
956 3/8/93 (bug fix) Tk had wrong interpretation of "lbearing" font metric,
957 which caused text to be displayed at the wrong horizontal position in
958 several places (labels/buttons, listboxes, canvas text, scales). This
959 change will cause slight changes in the way certain widgets are
962 3/12/93 (bug fix) Fixed core dumps that occurred in tkEntry.c because of
963 zero values in entryPtr->avgWidth.
965 3/12/93 (bug fix) Tk_CoordsToWindow was using root coordinates always.
966 Changed to use virtual-root coordinates when a virtual-root window
967 manager is being used. Before this fix, "winfo containing" didn't
968 return the correct window under virtual-root window managers.
970 3/18/93 (bug fix) Modified tkWm.c so that Tk doesn't fight with window
971 manager over position of window; it just takes what the window manager
974 3/21/93 (new feature) Changed menus to display cascade entries with
975 standard Motif arrows at right side.a
977 3/22/93 (bug fix) Fixed bug in tkPack.c that was causing memory to
978 get trashed with the integer value 1.
980 3/22/93 (bug fix) Canvas text didn't print correctly if it contained
981 an open paren (or other special character) immediately followed by
984 3/22/93 (bug fix) Text widgets didn't redisplay properly in cases
985 where 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
987 first bit copy's target area overlapped the source area for
990 4/1/93 (bug fix) Changed canvases to use ISO Latin-1 font encoding
991 if that's supported by the Postscript interpreter. Also added workaround
992 for bug in NeWSprint related to stipple fills.
994 4/1/93 (bug fixes) Made various changes to focusing and grabs to
995 eliminate extraneous focus events and generally improve behavior.
997 4/2/93 (bug fix) Modified tkWm.c not to wait indefinitely for the window
998 manager to map or reconfigure a window: this led to deadlock in some
999 situations, such as creating a new top-level window with a grab held.
1001 4/19/93 (bug fix) Fixed another bug in tkWm.c that caused windows to walk
1002 across the screen in some situations. Also fixed problem where rapid
1003 posting and unposting of cascaded submenus (or menus?) could cause Tk
1004 to become confused about whether or not a window is mapped (added
1005 TkWmUnmapWindow procedure to make top-level unmaps synchronous).
1007 4/24/93 (feature change) Changed the "after" command to allow times
1008 less than or equal to 0, and to use 0 whenever they occur.
1010 4/26/93 (new feature) Implemented security check for "send" as proposed
1011 by Bennett Todd: incoming sends are now rejected unless (a) xhost-style
1012 access control is enabled and (b) the list of authorized hosts is
1013 empty. In other words, you have to use xauth to use send. This feature
1014 can be disabled by setting the TK_NO_SECURITY flag at compile-time.
1016 5/15/93 (improvement) Switched to use Tcl_PrintDouble whenever returning
1017 real values as Tcl results. This potentially allows higher precision.
1018 Switched to use %.15g whenever printing reals in Postscript files.
1019 However, the change Tcl_PrintDouble causes incompatibilities. For
1020 now, it's disabled with a macro in tclInt.h that redefines Tcl_PrintDouble.
1021 Tk 4.0 will delete the macro, and you can also delete it now if you
1022 want the better (but incompatible) behavior.
1024 5/19/93 (bug fix) Fixed divide-by-zero problem that could occur in
1025 closeness calculations for canvas oval items.
1027 5/30/93 (bug fix) PROP and CONFIG were accidentally #defined to the same
1028 value in tkBind.c, which could cause incorrect %-substitutions in event
1029 bindings in a few exotic cases.
1031 6/4/93 (improvement) Changed to use GNU autoconfig for configuration.
1032 Makefile format changed, and Tcl is no longer automatically included
1035 6/7/93 (bug fix) Fixed off-by-one error in rounding negative coordinates
1036 during redisplay of canvases.
1038 6/9/93 (feature improvement) Modified default bindings for entries to
1039 keep one character visible to the left of the cursor during backspaces.
1041 6/18/93 (feature improvement) Added patchlevel.h, for use in coordinating
1042 future patch releases, and also added tk_patchLevel variable to make the
1043 patch level available in scripts.
1045 6/26/93 (bug fix) Fixed numeric problems in scales that occurred with
1046 very large scale values.
1048 6/26/93 (bug fix) Polygon items in canvases could cause core dumps if
1049 the "coords" widget command was used to add one new coordinate.
1051 6/26/93 (bug fix) Changed canvases to handle large stipple patterns
1052 gracefully (stipples used to jump around during redisplay and lose
1055 7/1/93 (syntax change, new feature) Implemented the new packer syntax
1056 as described in the book. For now the old syntax will continue to be
1057 supported too. Converting over is straightforward except (a) use
1058 "-anchor" instead of "frame", and (b) padding is different (separate
1059 internal and external padding, plus pad amounts are *on each side*
1060 instead of total). Also added "pack propagate" command for keeping
1061 the packer from setting the master's requested size.
1063 7/1/93 Changed copyright notices. The effect is the same as with the
1064 old notices, but the new notices more clearly disclaim liability.
1066 7/7/93 (new feature) Added support for window stacking order. Windows
1067 will now stack in the order created (most recent on top), plus "raise"
1068 and "lower" commands may be used to restack (Tk_RestackWindow procedure
1069 is available from C level).
1071 7/7/93 (reorganization) Moved main.c to tkMain.c, reorganized it to
1072 call Tcl_AppInit just like tclsh does, and added argv0 variable to contain
1073 application name, and added default Tcl_AppInit procedure for wish.
1074 Also added tkTest.c to hold C code for testing.
1076 7/7/93 (new feature) Added new Tk-specific "exit" command, which cleans
1077 up properly before exiting. It replaces the Tcl "exit" command, and
1078 can be used in place of "destroy .".
1080 7/9/93 (new features) Added tk_dialog library procedure that creates
1081 dialogs with a bitmap, message, and any number of buttons. Also changed
1082 default tkerror procedure to use tk_dialog plus offer the user a chance
1083 to see a Tcl stack trace.
1085 -------------------- Release 3.3 Beta 1, 7/9/93 -------------------------
1087 7/12/93 (configuration changes) Eliminated leading blank line in
1088 configure script; provided separate targets in Makefile for installing
1089 binary and non-binary information; fixed -lnsl and -lsocket handling
1090 in configure; added autoconf support for fd_set type; check for various
1091 typedefs like mode_t and size_t, and provide substitutes if they
1092 don't exist; don't include tkAppInit.o in libtk.a; try to locate the
1093 X includes and library in all of the standard places for various systems.
1095 7/14/93 (new feature) Modified tkMain.c so that it stores the value
1096 of the -display command-line option into the DISPLAY environment
1097 variable, if it is specified.
1099 7/15/93 (feature removal) Removed auto-initialization feature from
1100 Tk_ConfigureWidget, so that you must once again initialize all fields
1101 of a widget record before calling Tk_ConfigureWidget. This restores
1102 the behavior back to what it was in Tk 3.2.
1104 7/16/93 (bug fix) Modified tkBind.c to ignore the Caps Lock modifier
1105 unless it is explicitly requested in a binding. Without this fix,
1106 buttons and menus and other things didn't work if the Caps Lock key
1109 -------------------- Release 3.3 Beta 2, 7/21/93 -------------------------
1111 7/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
1115 7/23/93 (new feature) Added Tk_MainWindow procedure that returns the
1116 main window associated with a Tcl interpreter. This is intended for
1117 use by Tcl_AppInit and other initialization procedures.
1119 7/24/93 (configuration improvements) Changed configure script not to
1120 omplain about "fd_set" missing if it's defined in <sys/select.h>.
1122 7/28/93 (bug fix) "Bad Match - parameter mismatch" errors were
1123 sometimes occurring when several top-level windows got created
1124 at the same time, due to wrong choice of sibling when stacking
1127 8/14/93 (new feature) Added support for tcl_prompt1 and tcl_prompt2
1128 to wish main program: makes prompts user-settable.
1130 8/19/93 (bug fix) Bindings to event sequences like "aD" never matched
1131 because the Shift key has to be pressed before D. Modified Tk to
1132 ignore extraneous keypresses if they are for modifier keys.
1134 8/26/93 (configuration changes) Added Tk_Init, modified Tcl_AppInit
1135 procedures to use it and Tcl_Init. Added support for .wishrc file.
1137 8/28/93 (new feature) The main window is now a legitimate toplevel
1140 -------------------- Release 3.3 Beta 3, 8/30/93 -------------------------
1142 9/2/93 (bug fix) The packer wasn't always relaying out a master after
1143 changes to some of the configuration options of its slaves.
1145 9/2/93 (bug fix) The binding mechanism made it impossible for patterns
1146 like <Double-ButtonRelease-1> to ever match.
1148 9/2/93 (bug fix) Fixed core dump that occurred for bitmap canvas items
1149 if Postscript is generated but no -bitmap option has been specified.
1151 9/4/93 (enhancement) Slight improvements to menu traversal: set menu
1152 traversal bindings for menubar window in tk_menuBar, plus trigger
1153 traversal on <Any-Alt-Keypress> instead of <Alt-Keypress>.
1155 9/9/93 (bug fix) Changed tkBind.c so that the Num_Lock key doesn't
1156 prevent events from triggering bindings.
1158 9/9/93 (bug fix) Changed tkOption.c to always fetch RESOURCE_MANAGER
1159 property from root window of screen 0, rather than using default
1162 9/9/93 (bug fix) Entry widgets weren't allocating quite enough width
1163 for themselves. Fixed this and changed the size computation to match
1164 what's done for buttons and texts.
1166 9/16/93 (bug fix) Changed tkMain.c not to call exit C procedure directly;
1167 instead always invoke "exit" Tcl command so that application can redefine
1168 the command to do additional cleanup.
1170 -------------------- Release 3.3, 9/29/93 -------------------------
1172 9/30/93 (bug fix) Packer wasn't unmapping slaves when master got deleted.
1174 9/30/93 (bug fix) Binding event sequences such as <Right> were being
1175 misprinted as ASCII characters such as "S".
1177 10/6/93 (bug fix) Canvases weren't unmapping window items when the canvas
1178 got unmapped, which caused problems for window items whose windows weren't
1179 descendants of the canvas (they got left on the screen).
1181 10/7/93 (feature change) NULL proc arguments to Tk_CreateFileHandler used
1182 to have a special undocumented meaning (fd was display); eliminated this
1183 special interpretation.
1185 10/7/93 (configuration change) Eliminated dependency of tkMain.c on
1186 tkInt.h and tkConfig.h, so that it's easier for people to copy the file
1187 out of the source directory to make modified versions.
1189 10/8/93 (bug fix) 3.0 introduced a bug where the class of the application
1190 wasn't being set properly, so options based on the application class
1191 weren't triggering. Fixed by adding new argument to Tk_CreateMainWindow.
1193 10/11/93 (bug fix) Fixed bug in tkTextBTree.c where some deletions would
1194 cause core dumps due to halfwayLinePtr not getting set correctly.
1196 10/18/93 (bug fix) Fixed a couple of bugs that made it hard to actually
1197 display N characters in an entry with "-width N" (tended to scroll the
1198 entry so that only N-1 characters were visible at once).
1200 10/22/93 (bug fix) During configuration, XINCLUDE_DIR and XLIBRARY_DIR
1201 weren't overriding xmkmf like they were supposed to.
1203 10/23/93 (new feature) Allow negative scale factors in canvas "scale"
1206 10/23/93 (bug fix) Grabs weren't being cleaned up right if the grab
1207 window was deleted, causing core-dumps in some cases.
1209 10/23/93 (bug fix) tk_TextSelectTo wasn't checking to be sure that
1210 the "anchor" mark exists.
1212 10/27/93 (bug fix) Fixed core dump that could occur in a text widget if
1213 the scroll command modifies the text.
1215 11/1/93 (bug fix) Change texts so that the -yscrollcommand option is
1216 invoked at display time, not when the window is re-layed out. This
1217 eliminated various core dumps that could occur if -yscrollcommand modified
1220 -------------------- Release 3.4, 11/04/93 -------------------------
1222 Note: there is no 3.5 release. It was flawed and was thus withdrawn
1223 shortly after it was released.
1225 11/12/93 (bug fix) TkMain.c didn't compile on some systems because of
1226 R_OK in call to "access". Changed to eliminate call to "access".
1228 -------------------- Release 3.6, 11/26/93 -------------------------
1230 11/10/93 (bug fix) Packer and placer didn't always reposition a window
1231 correctly if it was managed inside a neice or lower descendant (using
1232 "-in" option) and the neice's parent moved.
1234 11/24/93 (bug fix) Fixed time problem in selection (retrievals could
1235 fail if retriever hasn't received any X events since selection was
1236 made, so that time of retrieval appears to be older than time of
1237 selection). Selection code is now much less picky about times, both
1238 on retrieving and supplying sides.
1240 12/2/93 (new feature) Changed arrow-head drawing code for canvas
1241 lines to draw a 0-width outline in addition to filling the area:
1242 this produces much nicer, more symmetrical displays.
1244 12/2/93 (bug fix) When colors ran out, Tk was invoking "tkerror"
1245 when its state was internally inconsistent, which could cause
1246 core dumps in some situations (e.g. if tkerror used the same color
1247 that caused colors to run out). Changed notification to occur
1248 as a when-idle handler.
1250 12/3/93 (bug fix) During a global grab, Tk wasn't including PointerMotion
1251 in the list of grabbed events, so pointer motion couldn't be tracked
1252 outside the grabbing application.
1254 12/3/93 (bug fix) Canvases didn't handle smoothed lines correctly
1255 when they only contained two points.
1257 12/3/93 (bug fix) Fixed bug in tkWindow.c where certain kinds of
1258 errors during window creation could cause Destroy events to be generated
1259 for a window that was never completely initialized.
1261 12/13/93 (bug fix) Fixed bug in tkTextDisp.c that resulted in core
1262 dumps at line 1467 under exmh. The exact situation is that a text
1263 widget was being redisplayed at a time when it had a -yscrollcommand
1264 option but hadn't yet been mapped onto the screen.
1266 12/17/93 (bug fix) Fixed bug in tkWindow.c whereby new top-level windows
1267 with non-default visuals still inherited border pixmap from parent (root),
1268 which could cause visual clash and X error.
1270 12/17/93 (bug fix) Fixed bug in tkTextDisp.c that caused round-off
1271 error in the information passed to scroll commands.
1273 12/18/93 (bug fix) Fixed bug in tkPack.c that caused core dumps in
1274 some situations if a master with siblings packed "-in" it was deleted.
1276 12/18/93 (bug fix) Added "compat" directory to distribution, since it's
1277 referenced by tkConfig.h on some systems.
1279 12/18/93 (performance improvement) Improved performance of appending to
1280 a listbox, so that inserting N items doesn't take N**2 time.
1282 12/20/93 (bug fix) Fixed bug in canvas ovals that caused the fill color
1283 for the oval to stick out past the outline.
1285 1/2/94 (fixed Xlib bug) Added code to reuse X resource identifiers so
1286 that they won't run out in long running applications. There are three
1287 new library procedures: Tk_FreeXId, Tk_GetPixmap, and Tk_FreePixmap.
1288 Modified all Tk code to use these procedures, so wish applications should
1289 now be able to run forever without running out of identifiers.
1291 1/10/94 (bug fix) tkCursor wasn't freeing pixmaps used to create
1292 cursors, which caused memory leaks in programs that changed cursors
1295 1/21/94 (bug fix) Fixed bug in scales that caused them to loop
1296 infinitely drawing tick-marks when -from and -to were the same.
1298 2/2/94 (bug fix) Fixed problem where messages that contained tabs
1299 didn't always compute the correct size, so that text spilled off
1300 the right edge. The fix adds an extra "tabOrigin" parameter to
1301 the internal procedures TkMeasureChars, TkDisplayChars, and
1304 2/4/94 (bug fix) Fixed off-by-one problem in tkBind.c that caused
1305 it to read past the initialized part of dispPtr->modKeyCodes.
1307 2/7/94 (bug fix) Text widgets didn't handle grabs correctly, such
1308 that the "current" character got stuck if a grab occurred while a
1309 mouse button was down. It would get unstuck until after the
1310 next button press and release.
1312 2/19/94 (bug fix) Fixed prolog.ps (prolog for Postscript printing from
1313 canvases) so that it correctly prints all of the characters in the
1314 ISO Latin-1 character set.
1316 2/19/94 (bug fix) Modified tkBind.c to save and restore the interpreter's
1317 result across the execution of binding scripts. Otherwise if an event
1318 triggers in the middle of some other script (e.g. a destroy event during
1319 window creation, because there was an error in the creation command),
1320 the intepreter's result gets lost.
1322 2/19/94 (bug fix) Fixed bug in dealing with results of sent command
1323 that could cause them to get lost in some situations.
1325 2/21/94 (bug fix) Don't let user close a dialog window created by
1326 tk_dialog, since this would cause tk_dialog to hang: force the user
1327 to select one of the dialog's buttons.
1329 2/21/94 (bug fix) Fixed bug in canvas polygons whereby they didn't
1330 correctly handle changes in the number of points (via "coords"
1333 2/23/94 (bug fix) Large bitmaps in canvases didn't print correctly
1334 because they overflowed the 64-KB limit on strings in Postscript.
1335 Changed canvas printing to split up large bitmaps into mutliple
1336 smaller ones for printing.
1338 2/25/94 (bug fix) The "." window was being set up with -width
1339 and -height options, which interfered with geometry management (any
1340 configuration change on "." causes the window to change size to
1341 200x200, then change back again).
1343 2/26/94 (bug fix) Fixed several bugs that occurred when a Destroy
1344 event handler for a window deleted the window's parent.
1346 3/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
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.
1369 3/13/94 (bug fix) Fixed numerous problems with the "wm iconwindow" command.
1370 It appears that this command never really worked at all, but it should
1373 3/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 ***
1386 3/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 ***
1392 3/21/94 (bug fix) Fixed bug in tkOption.c where the option cache wasn't
1393 properly cleaned up after window deletion; this could cause the wrong
1394 value from the option database to be used under some conditions.
1396 3/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
1404 *** POTENTIAL INCOMPATIBILITY ***
1406 3/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
1420 3/28/94 (new feature) Added "fileevent" command, which allows event-
1421 driven I/O in the style of Mark Diekhans' "addinput" command.
1423 4/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.
1431 4/11/94 (bug fix) Fixed core dump that used to occur when specifying
1432 an iconwindow ("wm iconwindow") for a toplevel on a different screen
1433 than the main window.
1435 4/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.
1446 5/1/94 (new features) Added new procedures Tk_3DVerticalBevel and
1447 Tk_3DHorizontalBevel.
1449 5/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,
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
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
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]".
1481 5/19/94 (bug fix) Canvases didn't generate proper Postscript for stippled
1484 5/20/94 (new feature) Added "bell" command to ring the display's bell.
1486 5/20/94 (new feature) Incorporated "square" demonstration widget into
1489 5/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
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.
1506 5/26/94 (feature removed) Removed support for "fill" justify mode from
1507 Tk_GetJustify and from the TK_CONFIG_JUSTIFY configuration option. None
1508 of the built-in widgets ever supported this mode anyway.
1509 *** POTENTIAL INCOMPATIBILITY ***
1511 5/27/94 (feature change) Changed Tk to use Tk_PrintDouble everywhere
1512 that it converts reals to strings. This means that floating-point
1513 values will be generated in some cases where integer-like values were
1515 *** POTENTIAL INCOMPATIBILITY ***
1517 6/1/94 (feature change) Renamed "pack newinfo" command to "pack info".
1518 The old "pack info" command is no longer available.
1519 *** POTENTIAL INCOMPATIBILITY ***
1521 6/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
1541 6/11/94 (new features) Improved Motif compatibility:
1542 - Added "-highlightwidth" and "-highlightcolor" options to all widgets.
1544 6/27/94 (bug fix) Postscript generation for text items in canvases was
1545 not justifying the text properly when a -width was specified that was
1546 longer than the longest line.
1548 6/27/94 (bug fix) "winfo exists" used to report a window as existing
1549 if it was in the process of being destroyed (i.e., a destroy handler
1550 is in the middle of execution). Changed to report it as non-existent
1551 under these conditions.
1552 *** POTENTIAL INCOMPATIBILITY ***
1554 7/11/94 (bug fix) Selections claimed via "selection own" weren't always
1555 being cleared properly when the selection was claimed away. Also fixed
1556 bug where Tk wasn't properly claiming the selection, if there haven't
1557 been any recent X events at the time of the claim.
1559 7/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.
1572 7/16/94 (bug fix) Canvases assumed that the Leave event for one item
1573 didn't modify or delete the next current item; this could cause core
1574 dumps under some conditions.
1576 7/23/94 (feature change) Modified Tk_BackgroundError so that tkerror
1577 is invoked as an idle handler. If tkerror generates a break exception
1578 then all other queued reports are aborted.
1580 8/14/94 (bug fix) "cursorOffTime" and "cursorOnTime" were confused in
1581 canvases, resulting in the same time being used for both.
1583 8/16/94 (bug fix) "tkwait variable" command didn't detect errors in
1584 variable name, such as trying to wait for an entire array.
1586 9/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
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.
1602 9/9/94 (bug fix) Fixed bug in tkWm.c that caused long delays in "raise"
1603 command under some conditions (window already at the top of the stack).
1605 9/10/94 (new features) Overhaul of label/button/checkbutton/radiobutton
1607 - Added focus highlight (-highlightthickness and -highlightcolor
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
1618 - Changed padding defaults to give widgets correct Motif appearance
1619 by default. Also, changed to ignore padding options when displaying
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 ***
1629 9/13/94 (new features) Modified both canvases and messages to support
1630 -highlightthickness and -highlightcolor options plus "cget" widget
1633 9/19/94 (new features) Added Tk_UnsetGrid procedure, modified widgets
1634 to use it. Also changed Tk_SetGrid so that at most one window per
1635 toplevel can have gridding enabled.
1637 9/23/94 (new features) Major overhaul of listbox widgets:
1638 - Added focus highlight (-highlightthickness and -highlightcolor
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
1651 - Added "bbox" widget command for finding position of an element on
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.
1661 10/6/94 (new features) Overhaul of menubuttons:
1662 - Added focus highlight (-highlightthickness and -highlightcolor
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 ***
1669 10/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
1677 *** POTENTIAL INCOMPATIBILITY ***
1678 - The -menu option for a cascade entry must now be a child of
1680 *** POTENTIAL INCOMPATIBILITY ***
1681 - Added "type" widget command, so that you can query the type of
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).
1690 10/6/94 (feature change) Completely overhauled the bindings for menus
1691 and menubuttons. They now fit better with other Tk 4.0 facilities,
1692 such as the new binding mechanism, and they provide better Motif
1693 compliance (e.g. keyboard traversal of submenus). Also, the bindings
1694 now support option menus, popup menus, and proper Motif tear-off
1697 10/6/94 (obsolete features) The procedures tk_menuBar and
1698 tk_bindForTraversal are no longer needed in Tk 4.0. They still exist
1699 for compability, but they do nothing.
1701 10/6/94 (new procedures) Added "tk_popup" procedure for posting a
1702 popup menu, and "tk_optionMenu" for creating an option menubutton
1703 and its associated menu.
1705 10/6/94 (change in name) The variable "tk_priv" has been renamed
1706 to "tkPriv" to reflect that fact that it is private to Tk now.
1707 This shouldn't cause any problems, since no-one except Tk should
1708 have been using it before anyway (right?).
1710 10/6/94 (bug fix) Fixed bug in texts where sometimes the text would
1711 stop tracking mouse motion (the "current" item wouldn't get updated)
1712 because the text widget missed a ButtonRelease event.
1714 10/20/94 (new features) Overhauled selection code to support multiple
1715 selections (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
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 ***
1727 10/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.
1733 10/24/94 (bug fix) Button widgets weren't checking for errors when
1734 setting the values of associated variables.
1736 11/3/94 (bug fix) Fixed bug whereby Tk would hang if "exit" was invoked
1737 from inside a <Destroy> binding.
1739 11/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 ***
1759 11/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
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 ***
1781 12/6/94 (cleanup) Eliminated "interp" argument to Tk_GetColorByValue,
1782 since it is no longer needed.
1783 *** POTENTIAL INCOMPATIBILITY ***
1785 12/7/94 (feature change) Changed the "wm" command so that top-level
1786 windows are now resizable by default. You can no longer specify
1787 empty arguments to "wm maxsize" and "wm minsize".
1788 *** POTENTIAL INCOMPATIBILITY ***
1790 12/8/94 (new feature) Added new "photo" image type using code provided
1791 by Paul Mackerras: currently supports only PPM "P6" format images.
1793 12/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
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 ***
1804 12/14/94 (bug fix) Fixed bug where the dimensions of canvas arrowheads
1805 scaled during a "scale" widget command, but the scaling was only
1806 temporary and got lost on the next re-configure of the item. The
1807 correct behavior is for the arrowheads not to scale.
1809 -------------------- Release 4.0b1, 12/23/94 -------------------------
1811 12/26/94 (bug fix) Removed obsolete demos from Makefile (color, dialog,
1812 size), fixed "install" target.
1814 1/3/95 (bug fix) Fixed all procedure calls to explicitly cast arguments:
1815 implicit conversions from prototypes don't work when compiling under
1816 non-ANSI compilers. Tk is now clean under gcc -Wconversion.
1818 1/4/95 (bug fix) Used "screenX" without ever setting it in DisplayText
1819 in tkCanvText.c: caused tabs in canvas text items to get messed up.
1821 1/4/95 (bug fix) Canvases forgot to register the built-in types if
1822 Tk_CreateItemType was called before a canvas widget was created.
1824 1/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.
1832 1/4/95 (bug fixes) Changed Control-t for entries just as for texts (see
1833 above) an deleted Control-x for entries (see above).
1835 1/4/95 (bug fix) The packer didn't map slaves unless the master was mapped;
1836 this could cause slaves to get "lost" so that they weren't mapped until the
1839 1/5/95 (bug fix) Scrollbars weren't executing the proper code the first time
1840 the mouse entered the widget; this caused problems if tk_strictMotif was
1843 1/6/95 (bug fix) Fixed label/button/checkbutton/radiobutton/menubutton
1844 widgets to allow arbitrary screen distances when specifying -width and
1845 -height for an image or bitmap (the manual pages already documented this
1846 but the code didn't implement it).
1848 1/6/95 (new feature) Added very primitive support for input methods,
1849 as suggested by Martin Forssen. This should be enough for European
1850 character sets (Compose key) but it isn't near enough for Asian
1853 1/8/95 (bug fix) Fixed problem in canvas "xview" and "yview" commands
1854 where divide-by-zero errors could sometimes occur.
1856 1/8/95 (bug fix) New event handler didn't properly handle files for
1857 which both TK_READABLE and TK_WRITABLE were specified.
1859 1/11/95 (bug fix) Fixed bug with text selections: was returning count
1860 too high for data, causing bogus garbage to appear when selection was
1863 -------------------- Release 4.0b2, 1/12/95 -------------------------
1865 1/27/95 (feature removal) Removed %D substitution from binding scripts:
1866 wasn't portable, shouldn't be used anyway.
1867 *** POTENTIAL INCOMPATIBILITY ***
1869 1/27/95 (new features) Added -displayof options to the commands
1870 "winfo atom", "winfo atomname", "winfo containing", "winfo interps",
1871 and "winfo pathname".
1873 1/27/95 (new feature) Added "idle" option to "after" command to run
1874 scripts as idle handlers.
1876 1/28/95 (new feature) Modified placer to make -x and -relx additive
1877 if you specify both. Same for -y and -rely, -width and -relwidth,
1878 and -height and -relheight. This makes it easy to make request such
1879 as "make .a 2 pixels larger than .b".
1880 *** POTENTIAL INCOMPATIBILITY ***
1882 1/28/95 (new feature) Improved auto-grab mechanism in canvases (which
1883 prevents current item from changing while a button is down): changed
1884 to report Enter and Leave events for the current item while a button
1885 is down. However, as before, no Enter events are reported for other
1886 items until the button goes up.
1888 1/28/95 (new feature) Bitmap images are now transparent if the -background
1889 is specified as an empty string (-maskdata and -maskfile are ignored in
1890 this case). This is also the default.
1892 1/28/95 (bug fix) Tk didn't support manufacturer- or site-specific keysyms
1893 such as SunAudioMute. Modified tkBind.c so that it uses XStringToKeysym
1894 in addition to its own hash table, so that all keysyms are now available.
1896 1/30/95 (feature change) Modified "clipboard append" so that it reclaims
1897 the clipboard selection if it had been previously lost, rather than just
1898 generating an error. This handles certain race conditions more cleanly,
1899 and also allows the use of programs like "xclipboard".
1901 1/30/95 (new feature) Added -xscrollincrement and -yscrollincrement
1902 options to canvases.
1904 1/31/95 (bug fix) Geometry management was broken if a particular geometry
1905 manager claimed a slave away from itself.
1907 1/31/95 (bug fix) Fixed bug in tkVisual.c where a visual with fewer bits
1908 than requested was being selected in preference to one with just the right
1911 1/31/95 (bug fix) Texts weren't redisplaying the padding region properly
1912 after changes in -padx or -pady.
1914 1/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.
1921 2/10/95 (bug fix) Modified all widgets to allow renaming of widget
1922 commands. Deleting a widget command will delete the widget.
1924 2/11/95 (new feature) Added -highlightbackground option to all widgets.
1926 2/14/95 (new feature) Added "insert" widget command for menus.
1928 2/15/95 (new feature) Modified text display code (for all widgets) to
1929 display well-known control characters like newline and backspace as
1930 \n or \b instead of \xa.
1932 2/15/95 (bug fix) Modified bitmap and photo image managers to delete
1933 the image command when the image is deleted. Also modified them to
1934 allow renaming of the image command, and to delete the image if the
1935 image command is deleted.
1937 2/15/95 (bug fix) Fixed text widgets to allow horizontal scrolling
1938 even if wrapping was enabled, if a line isn't entirely visible due to
1939 a large character or embedded window.
1941 2/16/95 (feature change) Added "postcascade" widget command to menus,
1942 changed "invoke" and "activate" not to post or unpost submenus. Also
1943 fixed bug in redisplay that tended to leave bits of garbage on menu
1944 when submenu unposted.
1945 *** POTENTIAL INCOMPATIBILITY ***
1947 2/16/95 (feature removal) Removed "snap back" behavior (slider
1948 snaps back to old position if you move the mouse outside the widet
1949 before releasing the button) from scrollbars and scales.
1951 2/16/95 (bug fix) The last line of a listbox wasn't being displayed if
1952 it was only partially visible.
1954 2/16/95 (new features) Added support for "-resolution 0" (no rounding
1955 of values) to scale widgets, plus smarter computation of how many digits
1958 2/17/95 (bug fix) Fixed bug in text bindings for things like Shift-Left:
1959 didn't properly set the anchor position.
1961 2/20/95 (bug fix) Changed management of COLORMAP_WINDOWS property to
1962 add the toplevel implicitly to the end of the list if it wasn't already
1963 on the list somewhere. Without this, some window managers implicitly
1964 put it at the front of the list, so that colormaps in internal windows
1967 2/20/95 (bug fix) Changed to use separate command procedures for
1968 button, checkbutton, label, and radiobutton commands. This allows the
1969 class commands to be renamed without breaking their behavior.
1971 2/20/95 (removed feature) The "bind" command no longer supports
1972 "Keymap" events; they never worked anyway.
1974 2/20/95 (bug fix) The text "search" widget command looped infinitely
1975 when searching an empty text.
1977 2/20/95 (bug fix) Canvases weren't redrawing their borders after
1978 configuration changes.
1980 2/20/95 (upgrade) Changed to use autoconf version 2.2.
1982 2/21/95 (bug fix) Fixed several bug fixes in menu bindings that occur
1983 when menus have no entries.
1985 2/21/95 (bug fix) Fixed bug in geometry management that caused windows
1986 packed -in siblings to not always be mapped and unmapped properly
1987 (particularly when the toplevel got unmapped and mapped).
1989 2/22/95 (bug fix) Fixed resource leak problem in tkTextDisp.c that
1990 caused embedded windows not to be unmapped when off-screen.
1992 2/23/95 (bug fix) "After cancel" dumped core when the script for an
1993 after event cancelled itself.
1995 2/24/95 (bug fix) Text and entry widgets weren't properly ignoring
1996 Alt-, Control-, and Meta- keystrokes, so a widget-specific binding
1997 for one of these resulted in the character also being inserted.
1999 2/24/95 (bug fix) Several widgets accidentally performed unsigned
2000 division on negative numbers, thereby losing the sign bit. This
2001 mostly affected the display of images and bitmaps in buttons,
2002 menubuttons, and messages.
2004 2/24/95 (feature reversal) Restored old behavior of %A so that it
2005 returns non-printing characters as well as printing ones now.
2006 *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
2008 2/24/95 (bug fix) Duplicate "leave" events could occur for canvas
2009 items under some conditions, due to recursive calls to PickCurrentItem.
2010 Added code to detect and skip the nested calls.
2012 2/24/95 (bug fix) Fixed bug where an error could occur during the first
2013 keystroke in an application if its binding invoked "break".
2015 2/25/95 (new feature) Modified syntax of "search" widget command for
2016 texts. The -nowrap switch and the "variable" final argument are no
2017 longer supported. Instead, there is a -count switch to replace
2018 the final argument; if the final argument is specified, it is now
2019 a stopping index for the search. The features of -nowrap can be
2020 achieved now with the stopping index.
2021 *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
2023 2/27/95 (bug fix) Fixed problem that appears to prevent keyboard
2024 input for working under IRIX: tkBind.c was ignoring XmbLookupString
2025 calls that returned a status of XLookupBoth.
2027 2/27/95 (new feature) Added Tk_GetItemTypes procedure to return
2028 information about available canvas item types.
2030 2/27/95 (feature change) Changed Makefile to always use install-sh
2031 for installations: there's just too much variation among "install"
2032 system programs, which makes installation flakey.
2034 2/27/95 (bug fix) Fixed bug in tkSend.c that caused core dumps if
2035 the app's main window was destroyed by a destroy handler on a
2038 3/5/95 (feature change) Change separator character used in "bind +..."
2039 bindings from semi-colon to newline (permits bindings that are
2040 comments, for what that's worth).
2042 3/7/95 (bug fix/feature change) Overhauled focus code, both in C
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 ***
2059 3/8/95 (new feature, bug fix) Added support for tk_strictMotif variable
2060 in C: Tk_StrictMotif library procedure. Modified buttons, menubuttons,
2061 menus to use it. This fixes the problem with menus not supporting
2062 tk_strictMotif properly in Tk4.0b1 and b2.
2064 3/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,
2079 *** POTENTIAL INCOMPATIBILITY ***
2081 3/16/95 (feature change) Event bindings created from Tcl will now ignore
2082 Enter, Leave, FocusIn, and FocusOut events with detail NotifyInferior.
2083 This is done in anticipation of mega-widgets, so that the user of a
2084 mega-widget can create Enter/Leave bindings on the mega-widget without
2085 seeing spurious events as the mouse moves among the windows in the
2087 *** POTENTIAL INCOMPATIBILITY ***
2089 3/17/95 (feature change) Changed C interfaces throughout Tk to use ints
2090 instead of unsigneds: the unsigneds turn out to cause subtle problems
2091 with arithmetic in some places, and using ints everywhere is just
2093 *** POTENTIAL INCOMPATIBILITY ***
2095 3/23/95 (bug fix) Selections longer than 4000 bytes were being
2096 truncated to 4000 bytes.
2098 -------------------- Release 4.0b3, 3/24/95 -------------------------
2100 3/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.
2103 3/25/95 (bug fix) Modified Tk's selection mechanism to prevent core
2104 dumps in other applications during retrievals of large selections
2105 (this is actually a bug in the other apps, but I've patched Tk to
2106 keep it from getting triggered).
2108 3/25/95 (bug fix) Fixed bug where X window for "." wasn't being
2111 3/27/95 (bug fix) Fixed many bugs associated with having more than
2112 one application in a single process.
2114 3/28/95 (bug fix) The "search" widget command for texts didn't
2115 return the correct index and count if there were embedded widgets
2116 on the same line as the returned range but before the end of
2119 3/28/95 (bug fix) Changed pasting via button 2 in text and entries
2120 so that it inserts at the pointer location, not the location of
2121 the insertion cursor.
2123 3/28/95 (bug fix) Fixed several bugs related to <Destroy> bindings
2124 that delete ancestors in the window hierarchy. Also eliminated
2125 extraneous calls to XDestroyWindow, which speeds up window deletion
2128 3/28/95 (bug fix) Several widgets (buttons, menubuttons, menus) didn't
2129 properly handle image deletions that occurred while the widget was
2130 being deleted (caused core dumps).
2132 3/29/95 (bug fix) When retrieving long selections from text widgets,
2133 parts of lines were getting duplicated in the selection information.
2135 4/1/95 (bug fix) Fixed bug that caused infinite loop in horizontal
2136 scales with 0 range.
2138 4/1/95 (bug fix) Fixed problem with -command option for scrollbars and
2139 -takefocus option that caused commands to be evaluated in the wrong
2142 4/1/95 (bug fix) Fixed problem with option database that caused it to
2143 sometimes use the wrong option (wasn't flushing the database properly
2144 after a change in a window's class).
2146 4/1/95 (bug fix) If a line in a text widget just barely fit in the window,
2147 Tk was allocating a second screen line just for the newline character.
2149 4/1/95 (new feature) When backspacing in an entry widget, when you reach
2150 the left edge of the widget, the insertion cursor gets recentered.
2152 4/1/95 (new features) Added "winfo pointerx" and "winfo pointery" commands
2153 to fetch the current pointer position.
2155 4/6/95 (bug fix) If the last line of a text widget was only partially
2156 visible, it was counted as visible for purposes of the scrollbar. Now
2157 it is treated as if it were off-screen for scrolling purposes.
2159 4/6/95 (new feature) Modified "bell" command to reset screen saver as well.
2161 4/6/95 (feature change) Modified menu scanning (where menus pull down
2162 as you drag across their menubuttons) so it only works among menus
2163 in the same toplevel; it used to work for any menubuttons in the
2166 4/6/95 (bug fix) Canvas text items weren't allowing real numbers in
2167 "@x,y" notation for specifying indices.
2169 4/7/95 (bug fix) Menus didn't display correctly when -activeborderwidth
2172 4/7/95 (bug fix) Changed "clipboard append" command to support -- option
2173 and to always treat the last argument as data, even if it starts with
2176 4/17/95 (new feature) Added -wrap option to text tags.
2178 4/18/95 (bug fix) Listboxes and texts weren't updating their grid information
2179 when -width or -height changed.
2181 4/18/95 (bug fix) "Down" didn't work right in text widgets if the last
2182 line was only partially visible in the window.
2184 4/19/95 (bug fix) Listboxes didn't handle partially visible last lines
2185 right: couldn't scroll it into full visibility, for example.
2187 4/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
2189 that geometry after a size change.
2191 4/21/95 (feature change) Changed order of binding tags so widget bindings
2192 fire before class bindings. New order is: widget, class, toplevel, all.
2193 *** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
2195 4/23/95 (new feature) Added "winfo colormapfull" command.
2197 4/23/95 (new feature) Buttons and radiobuttons and checkbuttons now
2198 treat Return the same as Space, unless tk_strictMotif is set.
2200 4/23/95 (bug fix) Modified menu tear-off procedure to duplicate the
2201 binding tags and bindings of the original in the copy.
2203 4/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
2205 priority in all situations.
2207 4/28/95 (bug fix) Failed text searches starting at "end" could result
2208 in an infinite loop in Tk.
2210 4/30/95 (new feature) Added "wm resizable" command to enable and
2211 disable interactive resizing.
2213 4/30/95 (new feature) Added "window names" widget command to texts:
2214 returns a list of all embedded windows.
2216 5/2/95 (feature change) Changed text searches so that forward searches
2217 start at the given index, rather than the character just after the
2219 *** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
2221 5/4/95 (bug fix) Default bit gravity for windows was wrong (it was
2222 ForgetGravity) causing unnecessary flashing when windows were resized.
2224 5/4/95 (feature change) Modified Tk_DoOneEvent so that it doesn't
2225 sleep if there's nothing that will wake it up again (e.g. no file
2226 or timer handlers). Returns 0 immediately.
2228 5/5/95 (configuration change) Changed to use BSDgettimeofday instead
2229 of gettimeofday on systems like IRIX where BSDgettimeofday is
2230 available. This avoids compilation problems due to the different
2231 interface to gettimeofday provided by IRIX.
2233 5/5/95 (feature change) Changed binding mechanism so that all bindings
2234 are created immediately at initialization time, rather than waiting
2235 until the first FocusIn or Enter event for a class.
2237 5/6/95 (feature change) Changed default text for labels, buttons,
2238 checkbuttons, radiobuttons, menubuttons, and messages from " " to
2241 5/6/95 (bug fix) If the application was destroyed in the middle of
2242 an "update" command, Tk would dump core.
2244 5/6/95 (bug fix) Changed manual entries to use the standard .TH
2245 macro instead of a custom .HS macro; the .HS macro confuses index
2246 generators like makewhatis.
2248 5/6/95 (bug fix) Change "wm iconwindow" command to disable button
2249 presses for the icon window. This is needed so that the window
2250 manager can get those events (X only allows button presses to go
2251 to one client for a given window).
2253 5/9/95 (new feature) When specifying visuals, can now use "best"
2254 with a depth, e.g. "-visual {best 8}" to get the best 8-bit visual.
2256 5/18/95 (bug fix) Fixed bug with -spacing* options for text widget:
2257 screen distances weren't allowed, only integers.
2259 5/20/95 (bug fix) Eliminated memory leaks in tkTextDisp.c and elsewhere.
2261 5/22/95 (color change) Changed the Tk color palette to a gray scheme.
2262 Also added a library procedure tk_setPalette that makes it easy to
2263 change colors on the fly, and a procedure tk_bisque that restores the
2264 previous light brown scheme.
2266 5/28/95 (bug fix) Modified canvases so that the -width and -height
2267 options refer to the space inside the borders, not the total widget
2268 space. Also changed "xview" and "yview" commands and scroll-increment
2269 rounding to use the pixel just inside the borders, rather than (0,0).
2271 5/28/95 (bug fix) Several widgets (e.g. entries, buttons, and menus)
2272 didn't properly handle unsets of variables they were tracing, if the
2273 variables were reference through upvars in procedures.
2275 6/4/95 (bug fix) The placer wasn't rounding window widths right when
2276 both -relx and -relwidth were specified (or -rely and -relheight) so
2277 that rounding errors accumulated.
2279 6/4/95 (feature improvement) Change parsing of text indices to handle
2280 weird mark and tag names better (e.g. any string ending with ".first"
2281 will now be parsed as a tag name, even if it contains embedded spaces,
2284 6/4/95 (feature change) If a font defines glyphs for control characters,
2285 they are now displayed, instead of translating the character to a
2286 backslash sequence (however, tabs and newlines are still treated
2287 specially; glyphs are not displayed for these characters).
2289 6/4/95 (bug fix) Modify the implementation of "raise" and "lower" for
2290 toplevels so that it now works under olwm and olvwm. It didn't use to
2291 work, and the problem is really in the window manager, but Tk now
2292 patches around it. However, only "total" raises and lowers work:
2293 raising and lowering relative to a sibling still don't work under
2296 6/4/95 (feature change) Modified tab code in texts so that a tab always
2297 occupies at least as much space as a space character.
2299 6/4/95 (bug fix) The "%t" substitution wasn't being made properly in
2300 Enter and Leave event bindings.
2302 6/7/95 (new feature) Added support for GIF images. Unfortunately it's
2303 a bit fragile: certain kinds of badly formed images can cause core
2304 dumps; I don't know enough about the GIF reader (taken from giftoppm)
2307 6/7/95 (bug fix and feature change) Fixed PPM image reader to be more
2308 flexible about header formats, and added support for PGM images.
2310 6/7/95 (feature change) Added -outlinestipple option to canvas arc
2311 items, changed "-style arc" to use -outline as the color instead of
2312 -fill (the old approach was pretty quirky).
2313 *** POTENTIAL INCOMPATIBILITY ***
2315 6/8/95 (feature change) Modified interface to Tk_Main to pass in the
2316 address of the application-specific initialization procedure.
2317 Tcl_AppInit is no longer hardwired into Tk_Main. This is needed
2318 in order to make Tcl a shared library.
2320 6/8/95 (feature change) Modified Makefile so that the installed versions
2321 of wish and libtk.a have version number in them (e.g. wish4.0 and
2322 libtk4.0.a) and the library directory name also has an embedded version
2323 number (e.g., /usr/local/lib/tk4.0). This should make it easier for
2324 Tk 4.0 to coexist with earlier versions.
2326 6/9/95 (new feature) Added -outline and -width options to canvas polygon
2329 6/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 ***
2333 -------------------- Release 4.0b4, 6/16/95 -------------------------
2335 6/19/95 (bug fix) Colors weren't being rounded correctly in canvas
2336 Postscript generation: caused "white" to appear slightly gray when
2337 the display of the canvas used only 8 bits per color.
2339 6/20/95 (bug fix) "bbox" widget command for texts didn't return
2340 proper width for tabs.
2342 6/20/95 (bug fix) Scrollbars didn't always work right for texts:
2343 couldn't scroll all the way to the bottom of the text in a single
2346 6/20/95 (new feature) Added "delta" widget command for scrollbars
2347 (needed for above bug fix).
2349 6/23/95 (bug fix) Listboxes weren't properly redisplaying their
2350 borders when the were configured to a smaller size.
2352 6/23/95 (new feature) Added "winfo server" command.
2354 6/23/95 (bug fix) If a menu was posted, couldn't switch to another
2355 menu with an Alt- key.
2357 6/24/95 (new feature) Added "winfo pointerxy" command.
2359 6/25/95 (bug fix) Tk_ParseArgv referenced beyond the end of 0-length
2362 6/25/95 (bug fix) Fixed problem in tkOption.c where "cachedWindow"
2363 could get garbage in it if the main window's class was changed by
2364 calling Tk_SetClass.
2366 6/25/95 (bug fix) Fixed two bugs in menus, one where errors in
2367 variable traces weren't propagated correctly and one where "invoke"
2368 was invoked at the wrong stack level, with the result that variable
2369 traces didn't have access to the right variables.
2371 6/27/95 (bug fix) tk3d.c wasn't using all the right information
2372 when deciding whether or not to stipple borders, so it stippled
2373 borders even on 16-bit true-color displays.
2375 6/28/95 (bug fix) Page up and down operations in texts could cause
2376 insertion cursor to drift to the right. Changed tkTextScrollPages
2377 to use upper-left corner of current character, rather than center
2380 6/28/95 (bug fix) Changed text widget so that you can't put the
2381 insertion cursor after the last newline in the text.
2383 6/28/95 (bug fix) Bitmap images didn't allow ~'s in file names.
2385 6/28/95 (bug fix) Fixed problem that could cause core dumps in the
2386 text widget when dealing with embedded windows (there were problems
2387 if the act of redisplaying caused the window layout to change, which
2388 can happen with embedded windows).
2390 6/28/95 (bug fix) Texts didn't handle indices with double negatives,
2391 such as ".t mark set insert {insert + -20 chars}".
2393 6/28/95 (bug fix) Fixed problem where focus didn't always revert to
2394 its prior window after a dialog box was dismissed.
2396 6/28/95 (bug fix) Fixed problem with "search" widget command returning
2397 incorrect length on some backwards regexp searches.
2399 6/28/95 (bug fix) Successive "wm iconbitmap . {}" commands could cause
2402 6/29/95 (new feature) Added -elementborderwidth option for scrollbars
2403 so the -borderwidth can be set to 0 without flattening the arrows and
2406 -------------------- Release 4.0, 7/1/95 -------------------------
2408 7/18/95 (bug fix) %t in event bindings didn't work properly for some
2409 events (e.g. PropertyNotify).
2411 7/18/95 (bug fix) Changed "exec wish" lines in demo scripts to
2412 "exec wish4.0" to avoid version conflicts.
2414 7/18/95 (bug fix) Fixed round-off errors in scrolling for texts,
2415 canvases, listboxes, and entries. The error could cause the view
2416 to shift up in a command like "$w yview moveto [lindex [$w yview] 0]".
2418 7/19/95 (bug fix) Canvases weren't always redrawing borders correctly
2419 when they became unobscured. There were also some problems with
2420 improper refresh after size changes.
2422 7/19/95 (bug fix) Fixed bug in text index processing that causes
2423 tests textIndex-11.1 and textIndex12.1 to fail on some platforms.
2425 7/19/95 (bug fix) Fixed bug where 2-second delays were ocurring during
2426 "raise" and "lower" commands for toplevel windows under some window
2427 managers (such as fvwm).
2429 7/20/95 (bug fix) Text searches were misbehaving when there were embedded
2430 windows on the starting line of the search. The most common symptom is
2431 that Tk would fail to find a match at the starting position for the
2434 7/22/95 (bug fix) Fixed core dump that could occur in menus if a checkbutton
2435 entry's -variable option referred to an array (or couldn't be read
2436 by the menu C code for some other reason).
2438 7/22/95 (bug fix) Text widgets didn't update their scrollbars when
2439 changes were made to information that was off-screen.
2441 7/25/95 (bug fix) Fixed core-dump in tkListbox.c that used to happen
2442 in the command ".l bbox end" if the listbox was empty.
2444 7/25/95 (bug fix) Page-up and page-down bindings for listboxes didn't
2445 move active element to remain on the screen.
2447 7/25/95 (bug fix) Patched around H-P compiler problem that results in
2448 core-dumps in tkImgPhoto.c during image handling.
2450 7/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
2452 where "schar" in tkImgPhoto.c was being defined as "short" instead of
2455 7/26/95 (bug fix) The PPM image reader couldn't handle maximum intensity
2456 values other than 255.
2458 7/26/95 (bug fix) Canvases didn't redraw their borders when the relief
2459 changed from raised to flat.
2461 7/27/95 (bug fix) Canvases didn't set the scrolling values correctly
2462 when no scroll region was specified.
2464 7/28/95 (bug fix) Modified menu and tk_dialog scripts to restore any
2465 old grab that might have been in effect before a menu or dialog was
2468 ----------------- Released patch 4.0p1, 7/29/95 ----------------------
2470 8/4/95 (bug fix) Calls to toupper and tolower weren't using the UCHAR
2471 macro, so they didn't always work in non-U.S. locales. (JO)
2473 8/14/95 (new feature) Added -tearoffcommand option for menus.
2475 8/16/95 (bug fix) Canvases didn't generate proper Enter and Leave
2476 events if the Leave handler for an item reconfigured the canvas in
2477 a way that made the old current item the new current item again. (JO)
2479 8/21/95 (bug fix/feature change) When -takefocus was a script, Tk
2480 was allowing window viewability to override it. Changed so that
2481 viewability is now ignored when -takefocus is a script. (JO)
2483 8/21/95 (bug fixes) Fixed memory leaks in tkSend.c, tkSelect.c, and
2486 8/21/95 (bug fix) Text widgets didn't handle commands like
2487 ".t search -backwards foo end 1.0" properly: never found foo. (JO)
2489 8/23/95 (new feature) Added Makefile and configure.in support for
2490 dynamic loading. (JO)
2492 8/25/95 (bug fix) The "frame" and "toplevel" commands couldn't safely
2493 be renamed, due to a kludgy way that they shared a single command
2494 procedure. Split into separate procedures. (JO)
2496 8/25/95 (bug fix) Fixed bug in libary/menu.tcl that caused "grab
2497 window not visible" errors for popup menus (and perhaps elsewhere?). (JO)
2499 8/25/95 (bug fix / new feature) The "gray25" bitmap was really only
2500 12.5% on, not 25%. Added new "gray12" bitmap that is the same as the
2501 old "gray25". "Gray25" is still supported for compatibility, but its
2502 use is deprecated. (JO)
2504 8/25/95 (bug fix) Scrollbar bindings didn't properly handle case where
2505 B2 is clicked while B1 is already down. (JO)
2507 8/26/95 (bug fix) Menus were ignoring -activebackground if tk_strictMotif
2508 was set, but not -activeforeground. Changed to ignore both. (JO)
2510 8/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)
2513 8/28/95 (bug fix) Tcl errors were occurring for tkPriv(oldGrab) when
2514 clicking on a disabled option menu. (JO)
2516 8/28/95 (bug fix) Changed event-handling code to use FD_SETSIZE instead
2517 of OPEN_MAX, since OPEN_MAX is incorrect on some systems (e.g., IRIX). (JO)
2519 8/28/95 (bug fix) Fixed bug in photo images that caused garbling of
2520 image data in the "put" and "copy" commands if the source data had
2521 only one scan line but had a width less than the width of the target
2524 8/29/95 (bug fix) Tk used to refuse to post menus if they had no
2525 entries. This made it impossible for a menu to fill itself the first
2526 time it is posted. Changed to allow menus with no entries to be
2529 8/30/95 (bug fix) If there was extra space at the bottom of a menu,
2530 it wasn't being redisplayed properly.
2532 8/30/95 (new feature) Added -transient option to menus.
2534 8/30/95 (new features) Added proper button 2 support to both scrollbars
2535 and scales (it sets the slider position from the mouse position). (JO)
2537 8/30/95 (bug fix) Fixed potential core dump that could occur in
2538 photo images (ReadPPMFileHeader could overflow buffer under some bad
2539 inputs, such as certain GIF images). (JO)
2541 8/30/95 (bug fix) Errors of the form `syntax error in expression "!"'
2542 could occasionally happen in tkScaleDrag. (JO)
2544 8/31/95 (new feature) Changed man page installation (with "mkLinks"
2545 script) to create additional links for manual pages corresponding to
2546 each of the procedure and command names described in the pages. (JO)
2548 9/1/95 (new feature) Added "after info" command. Also added checks
2549 so that one interpreter can't cancel another's "after" events. (JO)
2551 9/8/95 (bug fix) Fixed bug that could cause memory corruption and core
2552 dumps if a "fileevent" handler was deleted while the handler was
2555 9/11/95 Reorganized Tk sources for Windows and Mac ports. All sources
2556 are now in subdirectories: "generic" contains sources that work on all
2557 platforms, "windows", "mac", and "unix" directories contain platform-
2558 specific sources. (SS)
2560 9/11/95 (new feature) Added new "notifier" mechanism to allow multiple
2561 implementations of the mechanisms for finding out about events. This
2562 change was necessary to support Mac and PC platforms, but it may also
2563 allow other goodies such as combining Xt and Tk widgets in a single
2564 application. See the new manual entry Notifier.3 for details. (SS)
2566 9/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
2569 as deferred or processed. (SS)
2570 *** POTENTIAL INCOMPATIBILITY ***
2572 9/11/95 (new feature) Added TK_WINDOW_EVENTS #define, which is equivalent
2573 to TK_X_EVENTS but is now preferred, since it applies to all platforms. (SS)
2575 9/11/95 (feature change) Can't export variables anymore because this doesn't
2576 work under Windows DLLs. Eliminated tk_NumMainWindows variable and replaced
2577 with procedure Tk_GetNumMainWindows. (SS)
2578 *** POTENTIAL INCOMPATIBILITY ***
2580 9/11/95 (new feature) Added procedure Tk_PreserveColormap to increment
2581 the reference count on colormaps. Used in photo widgets. (SS)
2583 ----------------- Released patch 4.0p2, 9/15/95 ----------------------
2585 ----------------- Released 4.1a1, 9/15/95 ----------------------
2587 9/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)
2590 9/22/95 (bug fix) Fixed bug where text widgets could occasionally
2591 display the insertion cursor both at the end of one line and the
2592 beginning of the next. (JO)
2594 9/25/95 (bug fix) Fixed bug that could cause core dumps when an
2595 application uses multiple screens and a binding destroys the main
2596 window (bind code was using MainInfo structure after it had been
2599 9/25/95 (bug fix) Text widgets sometimes scrolled backwards on
2600 occasion if you dragged down past the bottom of the scrollbar. (JO)
2602 9/25/95 (bug fix) Fixed bug in menus where a cascaded submenu posted
2603 from a torn-off menu could be left posted if mouse was pulled off the
2604 end of the cascade and released. (JO)
2606 9/25/95 (new feature) Added "--" switch to wish, so that you can
2607 pass arguments like -n through to a script without having wish
2608 interpret them. (JO)
2610 9/25/95 (bug fix) Fixed core dump that could occur for radiobuttons
2611 and selectbuttons if -selectcolor was an empty string. (JO)
2613 9/26/95 (bug fix) Entries didn't used to notice if a trace procedure
2614 on the -textvariable overrode a new value set by the entry. This
2615 could cause the variable to get out of sync with the contents of the
2618 9/26/95 (new feature) Added -sliderrelief option to scales, changed
2619 default bindings to change the slider's relief to sunken while it's
2620 being dragged with the mouse. (JO)
2622 9/26/95 (bug fix) TkColor.c wasn't computing colormap size correctly;
2623 could result in X Protocol error for QueryColors when colormaps run
2626 9/26/95 (bug fix) Wish couldn't handle script files with spaces in
2629 9/27/95 (cosmetic clean-up) Removed extraneous spaces to make error
2630 messages consistent: ": should be" is now ": should be". (JO)
2632 9/27/95 (feature change) Modified tk_dialog so that it uses the
2633 option database for the -wraplength option on the message. This
2634 allows the option to be overridden by the caller. (JO)
2636 9/28/95 (bug fix) Wish incorrectly parsed the command line under
2637 Windows, causing backslashes to be substituted. (SS)
2639 9/28/95 (bug fix) Wish now sources wishrc.tcl instead of .wishrc. (SS)
2641 9/28/95 (bug fix) Tk_DoOneEvent returned 0 under some circumstances
2642 when it was possible to find more work to do. For example, if a
2643 signal interrupted select(), but no event handlers were triggered, it
2644 would return 0 even though it could still detect events by reentering
2647 9/29/95 (bug fix) "winfo interps" caused a crash under Windows. (SS)
2649 10/1/95 (feature change) Eliminated Tk_NotifyIdle interface in favor of
2650 Tk_IdlePending. (SS)
2652 10/1/95 (bug fix) Turned motion event collapsing into an idle handler
2653 so it will be easier to move the event loop into Tcl. (SS)
2655 10/1/95 (bug fix) Fixed several problems with negative coordinates
2656 in canvases. One example: dragging a canvas rectangle with a wide
2657 border and fractional coordinates could leave junk on the screen
2658 if the rectangle was in negative coordinate space. (JO)
2660 10/2/95 (bug fix) Tk was improperly handling Enter/Leave events
2661 during a button grab. (SS)
2663 10/2/95 (new feature) Added support for the Macintosh do script
2664 ('dosc') event. Available only on the Macintosh. (RJ)
2666 10/4/95 (new feature) Added support for compiling with VC++.
2667 Resulting binaries work under Win32s through NT.
2669 ----------------- Released 4.1a2, 10/6/95 ----------------------
2671 10/10/95 (new feature) Macintosh Tk now supports the complete set
2672 of X cursors that Unix Tk supports. (RJ)
2674 10/11/95 (bug fix) Tk now supports all of the X11 cursors under
2677 10/11/95 (bug fix) The "wm resizable" command was missing from the
2678 Windows version of Tk. (SS)
2680 10/12/95 (bug fix) Macintosh Tk had problems with clipping toplevel
2681 windows that children of any frame other than another toplevel. (RJ)
2683 10/13/95 (bug fix) Eliminated dependency on MKS toolkit for generating
2684 the tk.def file from Borland object files. (SS)
2686 10/16/95 (bug fix) Fixed clipping and update problems relating to
2687 the raising and lowering of overlapping windows on Mac. (RJ)
2689 10/30/95 (bug fix) When focus-follows-mode (invoked via tk_focusFollowsMouse),
2690 was focussing on windows even in situations where keyboard traversal would
2691 skip the window. Changed to use the tkFocusOK procedure so that the
2692 criteria for focussing are the same in both modes. (JO)
2694 11/2/95 (bug fix) Changed listbox bindings to ignore double-clicks.
2695 This avoids errors that used to occur if a user defined a binding
2696 for double-click that deleted the listbox. (JO)
2698 11/3/95 (feature change) Moved most of the Tk event loop to Tcl. Many
2699 Tk_ names have become Tcl names now:
2701 TK_READABLE => TCL_READABLE
2702 TK_WRITABLE => TCL_WRITABLE
2703 TK_EXCEPTION => TCL_EXCEPTION
2704 TK_DONT_WAIT => TCL_DONT_WAIT
2705 TK_WINDOW_EVENTS => TCL_WINDOW_EVENTS
2706 TK_FILE_EVENTS => TCL_FILE_EVENTS
2707 TK_TIMER_EVENTS => TCL_TIMER_EVENTS
2708 TK_IDLE_EVENTS => TCL_IDLE_EVENTS
2709 TK_ALL_EVENTS => TCL_ALL_EVENTS
2710 Tk_IdleProc => Tcl_IdleProc
2711 Tk_FileProc => Tcl_FileProc
2712 Tk_TimerProc => Tcl_TimerProc
2713 Tk_TimerToken => Tcl_TimerToken
2714 Tk_BackgroundError => Tcl_BackgroundError
2715 Tk_CancelIdleCall => Tcl_CancelIdleCall
2716 Tk_CreateFileHandler => Tcl_CreateFileHandler
2717 Tk_CreateTimerHandler =>Tcl_CreateTimerHandler
2718 Tk_DeleteFileHandler => Tcl_DeleteFileHandler
2719 Tk_DeleteTimerHandler =>Tk_DeleteTimerHandler
2720 Tk_DoOneEvent => Tcl_DoOneEvent
2721 Tk_DoWhenIdle => Tcl_DoWhenIdle
2722 Tk_Sleep => Tcl_Sleep
2725 Other than the name changes, the functions are the same. In addition,
2726 there are #defines in tk.h so that the old Tk names will still work.
2727 tkerror and bgerror are specially hacked as synonyms, so it should be
2728 safe to use either one. You should switch to the new Tcl names ASAP,
2729 though, since the old Tk names will eventually be desupported. (JO)
2731 11/7/95 (features removed) As part of moving the event loop to Tcl,
2732 the 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
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
2741 *** POTENTIAL INCOMPATIBILITY ***
2743 11/7/95 (feature change) Changed to use exit handler to cleanup windows
2744 in Tk, so Tk no longer needs to have a private copy of the "exit" command.
2747 11/7/95 (bug fix) If wish was invoked with a command-line geometry and
2748 a script file (e.g. "wish foo.tcl -geometry 30x20"), and if one of
2749 the windows created by the script used the -setgrid option, then the
2750 width and height from the command line were lost. (JO)
2752 11/8/95 (bug fix) The "see" command didn't work quite right for texts:
2753 if the window was small and you try to "see" a line just offscreen,
2754 Tk centered the line (actually, mis-centered it) when it should have
2755 aligned it at the top or bottom. (JO)
2757 11/9/95 (bug fix) The "send" command crashed if you tried to send to
2758 a different display with "-displayof". (JO)
2760 11/9/95 (bug fix) The Symbol font didn't print right in Postscript
2761 output, because of changes made to re-encode fonts to get proper
2762 ISO Latin1 behavior. Changed the code not to re-encode the Symbol
2765 11/13/95 (bug fix) Fixed Makefile.in and configure.in for UNIX so that
2766 configure can be run from a clean directory separate from the Tcl source
2767 tree, and compilations can be performed there. (JO)
2769 11/17/95 (bug fix) If a window was gridded, Tk still computed the
2770 default maximum dimensions in pixel units, which resulted in windows
2771 that could grow much larger than the screen. (JO)
2773 11/17/95 (bug fix) If a menus entries were all disabled, posting
2774 the menu and typing Up or Down caused an infinite loop, locking
2777 11/19/95 (bug fix) The focus wasn't being restored properly after a
2778 menu selection in a cascaded menu. (JO)
2780 11/19/95 (bug fix) Menubutton's didn't stipple display their images
2781 differently when disabled. Change to have the same behavior as buttons:
2782 the image is stippled over in the background color when the menubutton
2785 11/21/95 (bug fix) Changes in display attributes such as font could
2786 cause core dumps in the text widget under some circumstances involving
2789 11/22/95 (bug fix/new feature) Changed both the placer and the packer
2790 to ensure that slaves are unmapped whenever the master is unmapped.
2791 This saves time that slaves might otherwise spend trying to redisplay
2792 themselves when they're unmapped. (JO)
2794 11/22/95 (bug fix) Space and return keys didn't work for menus if
2795 they were posted via Alt-x keystrokes. (JO)
2797 11/24/95 (bug fix) tk_dialog procedure had binding for <Return> that
2798 always activated default binding, even if input focus was in some
2799 other binding. Removed this feature, since existing focus support
2800 will already "do the right thing". (JO)
2802 11/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)
2805 11/24/95 (feature change) Replaced "configInfo" file with tkConfig.sh,
2806 which is more complete and uses slightly different names. Also
2807 arranged for tkConfig.sh to be installed in the platform-specific
2808 library directory. (JO)
2810 11/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
2812 slave to be its own master for geometry management. (JO)
2814 11/25/95 (bug fix) The -command option of scales was sometimes being
2815 invoked spuriously (e.g. when the mouse moved in the scale without a
2816 button down). This was because the scale wasn't rounding properly
2817 when setting the scale value from its associated variable. (JO)
2819 ----------------- Released patch 4.0p3, 11/28/95 ----------------------
2821 12/18/95 (feature change) Moved Tk_Preserve, Tk_Release, and
2822 Tk_EventuallyFree to Tcl, renamed to Tcl_Preserve etc. Added #defines
2823 to tk.h so that the old names still work. (JO)
2825 12/23/95 (bug fix) If a single process had > 1 Tk application, Tk
2826 didn't guarantee that the application names were unique, which could
2827 cause all sorts of confusion with "send". (JO)
2829 12/23/95 (feature change) Eliminated Tk_CreateMainWindow and moved
2830 all of its functionality to Tk_Init. All that you need to do now
2831 to get Tk in an application is to call Tk_Init. Improved Tk_Init
2832 so that -colormap and -visual command-line arguments are now passed
2833 through to TkCreateFrame. Tk_Main is much simpler now, since a lot
2834 of its functionality has moved to Tk_Init. (JO)
2835 *** POTENTIAL INCOMPATIBILITY ***
2837 12/23/95 (new feature) Added support for Tcl_StaticPackage so
2838 that Tk can now be loaded into slave interpreters with the "load"
2839 command to create new applications. (JO)
2841 12/23/95 (new features) Added support for -colormap and -visual command-
2842 line options for wish. (JO)
2844 1/4/95 (bug fix) Fixed keyboard code to properly handle alt-key
2845 sequences for international keyboards and menu-accelerators. (SS)
2847 1/5/96 (bug fix) Scrollbar code sometimes generated errors on accesses
2848 to tkPriv(relief) during control-clicks. (JO)
2850 1/9/96 (new feature) added the "grid" command to provide a table based
2851 geometry manager. (SU)
2853 1/12/96 (performance optimization) Changed the way tag information is kept
2854 in the text's Btree so the cost of adding and removing tag ranges is no longer
2855 proportional to the number of unique tags in the text. In the old system
2856 the cost of adding N unique tags was O(N-squared). The new implementation is
2857 optimized for tags that only cover a small amount of text, measuring from
2858 their earliest tag range to the end of their last range. In the best case the
2859 cost of adding a tag range is unrelated to the number of unique tags, so the
2860 cost of adding N tags is only O(N). In the worst case, where all tags
2861 cover all the text, the cost is still O(N-squared) to add N such tags.
2862 Deleting tags still has an O(N) cost (so deleting N tags is O(N-squared),
2863 but it is now a factor of 2 faster than the old system. (BW)
2865 1/12/96 (new feature) added the text "dump" operation that returns information
2866 about all elements in a text widget: text, tags, marks, and windows. (BW)
2868 1/12/96 (new feature) added the text "mark next" and "mark previous" operations
2869 to search forward and backwards for the next (previous) mark in the text. (BW)
2871 1/12/96 (new feature) added the text "tag prevrange" operation to search
2872 backwards for the current or previous range of a tag. (BW)
2874 1/16/96 (new feature) Added support for relative widget placement on
2875 the "grid" command. (SU)
2877 1/17/96 (new feature) Modified the Makefile/configure setup to support
2878 compiling Tk as a shared library. Use the --enable-shared option to
2879 the "configure" script. (JO)
2881 ----------------- Released 4.1b1, 1/26/96 -----------------------
2883 2/2/96 (bug fix) Frames were getting a default size of 200x200, whereas
2884 there should be no default. (JO)
2886 2/2/96 (bug fix) Argc wasn't getting reset properly after Tk removed
2887 the arguments it understood from those on the command line. (JO)
2889 2/6/96 (bug fix) Fixed off by one error in argument parsing code under
2892 2/6/96 (bug fix) "wm transient" now works under Windows. The resulting
2893 toplevel is created with a modal dialog box frame and will not appear
2894 in the taskbar under Windows '95. (SS)
2896 2/9/96 (bug fix) Changed Makefile.in to use -L and -l for Tcl and Tk
2897 libraries so that shared libraries are more likely to be found correctly
2898 on more platforms. (JO)
2900 2/14/96 (feature change) Eliminated tk_CanvasTagsOption variable because
2901 it can't be exported safely across DLL boundaries. Instead, exported
2902 Tk_CanvasTagsParseProc and Tk_CanvasTagsPrintProc procedures for
2903 use by canvas type managers in creating their own custom options. (JO)
2904 *** POTENTIAL INCOMPATIBILITY ***
2906 2/14/96 (bug fix) "winfo pointerxy" when applied to a non-toplevel window
2909 2/14/96 (bug fix) "tkwait visibility" would hang under Windows. (SS)
2911 2/14/96 (bug fix) Cursors were not being updated until an enter event.
2912 In cases where the cursor left the toplevel and reentered before Tk
2913 noticed, the cursor would get "stuck" until the next enter event.
2914 Similarly, if the cursor attribute of a window was updated while the
2915 mouse was in the window, the cursor would not change until the next
2916 time the mouse entered the window. (SS)
2918 2/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
2920 in the internally requested size (by the widgets) were ignored,
2921 even for the non-resizable dimension. Fixed to handle the two
2922 dimensions totally independently, so the widget's requests are
2923 honored as long as that dimension hasn't been set by the user. (JO)
2925 2/17/96 (bug fix) If a text widget had very long lines (e.g. more than
2926 32K pixels), integer overflow could occur, resulting in parts of the
2927 line not being visible. (JO)
2929 2/20/96 (feature change) Changed the -minsize option of grid to take
2930 screen units instead of pixels. (SU)
2932 2/20/96 (bug fix) grid row and column weights are compared against
2933 MINWEIGHT (0.001) instead of 0.0 to guard against divide by zero errors
2934 during weight normalization. (SU)
2936 2/20/96 (bug fix) Menu commands were not being invoked sometimes.
2937 There was a race condition that caused events to be processed while a
2938 menu was being unposted. (SS)
2940 ----------------- Released 4.1b2, 2/23/96 -----------------------
2942 2/23/96 (bug fix) Alt-keys invoked in torn-off and popped up menus
2943 caused menus to be posted in the parent toplevel. (JO)
2945 2/23/96 (bug fix) Canvases weren't always updating their scrollbars
2946 when they should. (JO)
2948 2/23/96 (bug fix) Fixed core dump that could occur if a WM_DELETE_PROTOCOL
2949 handler generated an error. (JO)
2951 2/24/96 (bug fix) Removed dependencies on Makefile in the UNIX Makefile:
2952 this caused problems on some platforms (like Linux?). (JO)
2954 2/24/96 (feature change) Changed text and entry widgets so that they
2955 set the insertion cursor before inserting during a button-2 click.
2956 Also made optional bindings check for tk_strictMotif at the time of
2957 the event, rather than at the time the bindings are created. (JO)
2959 2/24/96 (bug fix) Tk tended to crash with an X error when unsetting
2960 an icon window (e.g. "wm iconwindow . {}"). (JO)
2962 2/25/96 (bug fix) Wasn't removing windows from the WM_COLORMAP_WINDOWS
2963 property when they were deleted. (JO)
2965 3/1/96 (new feature) Added new "bbox" widget command for entries.
2966 Also modified mouse bindings for entries and texts so that the
2967 mouse position rounds to the nearest inter-character gap, rather
2968 than the left edge of the character under the mouse. This provides
2969 more natural selection behavior. (JO)
2971 3/1/96 (bug fix) Fixed core dump that could occur in image code if an
2972 image was deleted while in use in a widet, then re-used in another
2973 widget while "deleted". (JO)
2975 3/1/96 (bug fix) Calling wish with a single argument caused a crash
2976 under Windows due to an off-by-one error in the argument parsing code. (SS)
2978 3/1/96 (bug fix) Palette management was broken and resulted in
2979 incorrect palette realization and refresh behavior. Also, images were
2980 being drawn incorrectly if they were attached to widgets that had a
2981 private colormap. (SS)
2983 3/2/96 (bug fix) It was possible to press the mouse button over an
2984 option menu, drag to a pulldown menu, and have the pulldown menu
2985 popup in place of the option menu. Fixed this so that option menus
2986 are isolated from each other and from pulldowns. (JO)
2988 3/2/96 (bug fix) Fixed yet another bug that caused long delays when
2989 raising toplevel windows. (JO)
2991 3/2/96 (bug fix) Fixed bug in canvases where zero-sized rectangles
2992 and ovals didn't always redisplay right (could leave trailing
2993 garbage on screen when moved). (JO)
2995 3/2/96 (bug fix) Entry widgets reset their insertion cursor, selection,
2996 and view whenever the text variable changed, plus whenever a "configure"
2997 widget command was invoked and there was a text variable for the
2998 widget. Fixed to preserve this information as much as possible. (JO)
3000 3/5/96 (new feature) Added version suffix to shared library names so that
3001 Tk will compile under NetBSD and FreeBSD (I hope). (JO)
3003 3/6/96 (bug fix) Changed the way certain configure & motion events are
3004 reported. This fixes several bugs in menus & "winfo rootx". (RJ)
3006 3/7/96 (bug fix) Fixed tag remove bug that showed up when draging out a
3007 selection. If you had dragged left, then tried to drag back right, the
3008 left edge of the selection wasn't being updated because the tag remove
3009 wasn't doing anything. (BW)
3011 3/7/96 (bug fix) Fixed the boundary conditions of tag prevrange. The second
3012 index argument wasn't effecting in stopping the search if it fell within
3013 a range. The second index has to come at or before the start of a range
3014 for the range to be found by tag prevrange. (BW)
3016 3/7/96 (bug fix) "puts" to stdout or stderr when running from a script
3017 caused wish41.exe to exit silently. Now the output is silently
3018 discarded without generating an error. (SS)
3020 3/7/96 (bug fix) Fixed bug where wish was treating empty lines in the input
3021 as end of input, if the input came from stdin. This would cause it to
3022 complain about missing closing braces etc. (JL)
3024 ----------------- Released 4.1b3, 3/8/96 -----------------------
3026 3/9/96 (bug fix) Fixed bug in text.tcl that could cause errors in text
3027 widgets of the form 'can't use non-numeric string as operand of "-"'. (JO)
3029 3/12/96 (feature improvement) Modified startup script to look in several
3030 different places for the Tcl library directory. This should allow tk
3031 to find the libraries under all but the weirdest conditions, even without
3032 the TK_LIBRARY environment variable being set. (JO)
3034 3/14/96 (bug fix) "wish bogus_file_name" didn't print an error message. (JO)
3036 3/14/96 (bug fix) Button-2 wasn't claiming the focus during paste
3039 3/14/96 (bug fix) "tkwait visibility" use to hang forever if its window
3040 was deleted. Now it detects this condition and returns an error. (JO)
3042 3/16/96 (bug fix) Changed configuration stuff to get dynamic loading and
3043 shared libraries working under AIX. (JO)
3045 3/16/96 (bug fix) Fixed core dumps that could occur when a slave interpreter
3046 was deleted in the middle of executin bindings. (JO)
3048 3/18/96 (new feature) Added support for Activate/Deactivate events.
3049 Currently, these new X events will generated only on the Macintosh. (RJ/CS)
3051 3/21/96 (bug fix) The "tag prevrange" command would fail to return the current
3052 range if it began at 1.0 and the starting point of the search was within
3055 3/21/96 (configuration improvement) Changed configure script so it
3056 doesn't use version numbers (as in -ltk4.1 and libtk4.1.so) under
3057 SunOS 4.1, where they don't work anyway. (JO)
3059 3/22/96 (bug fix) Made Tk more robust against interpreter deletion. Now it
3060 should be safe to delete an interpreter with a Tk application inside it,
3061 without first deleting the Tk application. (JL)
3063 3/26/96 (bug fix) Tk now returns results from a "send" to an interpreter
3064 in which the Tk application is destroyed, if the interpreter continues
3065 computing after the Tk application is destroyed. Previously any results
3066 computed after '.' was destroyed in the target interpreter were discarded
3069 3/26/96 (new feature) Tk now provides a static Tktest package which is
3070 present only in test versions of Tk; this allows the testing commands to
3071 be loaded into new interpreters besides the main one. (JL)
3073 3/28/96 (bug fix) Changed the tk_dialog procedure *not* to make the
3074 dialog a transient for its parent. The old behavior meant that the
3075 dialog did not get posted if the parent was iconified. (JO)
3077 4/5/96 (bug fix) Tk would occasionally crash when destroying toplevels
3080 4/5/96 (bug fix) Fonts were not being properly deallocated, causing
3081 GDI resources to be consumed and never released under Windows. (SS)
3083 4/11/96 (bug fix) Toplevel windows with no specified geometry were
3084 always appearing in the upper left corner of the screen under
3087 4/11/96 (bug fix) "wm minsize" did not properly report the minimum
3088 size imposed by the Windows window manager. (SS)
3090 4/13/96 (bug fix) Text widgets could dump core in some cases where
3091 text was inserted on the top visible line. (JO)
3093 4/16/96 (bug fix) Changed menu code to ignore errors that occur when
3094 restoring a grab: the old grab window might not be visible anymore. (JO)
3096 ----------------- Released 4.1, 4/21/96 -----------------------
3098 5/1/96 (bug fix) "option readfile" did not handle files with CRLF
3099 line termination. (SS)
3101 5/1/96 (bug fix) Changed to install tkConfig.sh under "make install-binaries",
3102 not "make install-libraries". (JO)
3104 5/7/96 (bug fix) Moved initScript in tkUnixInit.c to writable memory to
3105 avoid potential core dumps. (JO)
3107 5/7/96 (bug fix) Changed tk_dialog back so that the dialog box is a
3108 transient window again. This is needed to make sure that the dialog
3109 box doesn't get obscured. Also changed it to return -1 if the dialog
3110 window is deleted before the user presses a button. (JO)
3112 5/16/96 (bug fix) Fixed bug that caused core-dumps if a text widget
3113 with -setgrid 1 was deleted by removing its command. (JO)
3115 5/16/96 (bug fix) Fixed bug that caused Tk initialization to use improperly
3116 initialized variables left over from previous invocation of Tk_Init on
3117 another interpreter. (JL)
3119 5/16/96 (new feature) Implemented application embedding on Windows
3120 platforms (only Tk inside another application, not the other way yet). (JL)
3122 5/16/96 (new feature) Added C API Tk_SafeInit that adds Tk to a safe
3125 5/16/96 (bug fix) Fixed bug that caused Tk initialization to use improperly
3126 initialized variables left over from previous invocation of Tk_Init on
3127 another interpreter. (JL)
3129 5/16/96 (new feature) Implemented application embedding on Windows
3130 platforms (only Tk inside another application, not the other way yet). (JL)
3132 5/16/96 (new feature) Added C API Tk_SafeInit that adds Tk to a safe
3135 5/22/96 (bug fix) Listboxes weren't properly ignoring double clicks on
3138 6/12/96 (bug fix) Focus was automatically placed on new toplevels.
3139 This caused the titlebar to flash during menubar traversal. (SS)
3141 6/12/96 (bug fix) Iconification of a window with a specified geometry
3142 by using the minimize button would leave the window in an inconsistent
3143 state. When the window was deiconified using "wm deiconify", the
3144 window would continue to display as an icon with the deiconified
3147 6/12/96 (bug fix) Fixed a resource leak where the text widget was not
3148 freeing all of the TkRegions it created. This fix affects all
3149 platforms, but is particularly important for Win32s. (SS)
3151 6/21/96 (configuration change) Added --enable-gcc switch to configure
3152 script to make Tk just like Tcl. Now Tk will not use gcc unless you
3153 request it explicitly. (JO)
3155 7/18/96 (bug fix) Changed "configure" script to add an extra -R switch
3156 (or whatever is appropriate to the platform) if the X library is in a
3157 nonstandard place. This guarantees that the shared library can be
3158 found at runtime without having to set the LD_LIBRARY_PATH variable. (JO)
3160 7/19/96 (bug fix) Fixed bug in tkImgGIF.c that cause core dumps if a
3161 GIF file contained multiple images. (JO)
3163 7/20/96 (bug fix) Deadlock could occur if a recursive series of send
3164 operations involved multiple displays. (JO)
3166 7/23/96 (bug fix) Fixed a resource leak where deallocated XIDs were
3167 taking up memory on Windows and Macintosh platforms. (SS)
3169 7/30/96 (bug fix) A core dump could occur if a <Destroy> handler for
3170 a window tried to create a child in the half-dead window. Fixed by
3171 making the window's name disappear from the name table once it starts
3174 ----------------- Released patch 4.1p1, 8/2/96 -----------------------
3176 4/30/96 (new feature) Added support for named virtual events. New "event"
3177 command to define/destroy named virtual events and to programmatically
3178 send both real and virtual events to Tk. (CS)
3180 8/6/96 (bug fix) Entry widgets were invoking scrollbar update functions
3183 8/9/96 (bug fix) 7/30 change above for <Destroy> handlers broke many
3184 things by making window available during Destroy handler. Reworked
3185 fix for core dump to simply disallow creating children of half-dead
3188 8/12/96 (bug fix) Fixed bug where using the Copy menu item on the
3189 Macintosh would append a NULL character at the end of the text. (RJ)
3191 8/15/96 (bug fix) Fixed Mac code so garbage wouldn't be printed in
3192 text and entry widgets when function & other non-printing keys were
3195 8/15/96 (configuration improvement) Changed the file patchlevel.h
3196 to be tkPatch.h. This avoids conflict with the Tcl file and is now
3197 in 8.3 format on the Windows platform. (RJ)
3199 8/19/96 (bug fix) Fixed a bug under Windows where the initial window
3200 position for a toplevel window was reported as +0+0, regardless of the
3201 actual position. (SS)
3203 8/21/96 (bug fix) If the last character on a line in a text widget was
3204 a space character that didn't completely fit, the text widget would
3205 sometimes add an extra wrap line. (JO)
3207 8/22/96 (feature change) Complete rewrite of the grid geometry manager.
3208 There is a new layout algorithm that produces better (but different)
3209 layouts in many common cases. (SU)
3211 8/22/96 (new feature) There are two new options for the grid geometry
3212 manager, "grid update" which forces an immediate layout calculation,
3213 and a "-pad" option to rowconfigure and columnconfigure that allows for
3214 extra space around widgets. (SU)
3216 8/22/96 (feature change) The order in which the grid geometry manager
3217 reports slaves is now last-managed first. (SU)
3219 8/22/96 (feature change) The column and row weights in the grid
3220 geometry manager are kept internally as integers, instead of floating
3221 point values. Floating point values are still accepted on the command line,
3222 but are truncated to integers. (SU)
3224 8/22/96 (new feature) There are four new commands for opening common
3225 dialog boxes: tk_chooseColor, tk_getOpenFile, tk_getSaveFile and
3226 tk_messageBox. Native dialog boxes are used wherever available. (IL)
3228 8/22/96 (new demos) Added "fsbox", "msgbox" and "clrpick" demos. (IL)
3230 8/23/96 (feature change) Invoking the edit menu on the Macintosh now
3231 generates the following virtual events <<Cut>>, <<Copy>>, <<Paste>>,
3232 and <<Clear>> instead of faking key events. (RJ)
3233 *** POTENTIAL INCOMPATIBILITY ***
3235 8/25/96 (bug fix) Fixed a bug that would cause "grid x" to dump core. (SU)
3237 8/26/96 (new feature) Added the "unsupported1" command to the
3238 Macintosh version of Tk. This command will allow you to set the style
3239 of a new toplevel Window (much like overrideredirect). You can use
3240 this to get access to all of the Native Mac window styles. This is to
3241 hold you over until we get a more general solution added to the
3242 toplevel command. (RJ)
3244 8/26/96 (new feature) Added support to handle the zoom box on a
3245 Macintosh window. (Currently, you can only get a Tk window with a
3246 zoom box by using the "unsupported1" command. (RJ)
3248 8/27/96 (documentation change) Removed old change bars (for changes in
3249 Tk 4.1 and earlier releases) from manual entries. (JO)
3251 ----------------- Released 4.2b1, 8/30/96 -----------------------
3253 9/5/96 (bug fixes) Fixed several bugs in file dialogs: individual files
3254 could be listed twice, if a long list of files were shown, and the view
3255 scrolled to the right, and then a different file file was shown, the
3256 scrollregion on the canvas wasn't being reset, so the file dialog was
3257 broken from then on, added an update idletasks so that the watch
3258 cursor was shown when the dialog was thinking. For the motif file
3259 dialog, fixed the weights for resizing. On the clrpicker, fixed the
3260 finalColor variable which caused problems when the OK button was
3261 "clicked" before the dialog was mapped (in the test suite). Added Ioi's
3262 last changes from before he left. For message boxes, if a single button
3263 message box is shown (currently only 'ok'), it is set to be the default
3264 even if not specified. (KC)
3266 9/5/96 (bug fix) Fixed bug on Macintosh where menus would appear in a
3267 seemingly random location. (RJ)
3269 9/5/96 (bug fix) Text widgets had rounding problems with the "yview"
3270 command that caused them sometimes to round to the line before the
3273 9/5/96 (bug fix) Changed grab code to retry grabs after errors where
3274 another application already has the grab. This is needed to get
3275 around race conditions with some window managers and will hopefully
3276 solve the grab errors that people see occasionally. (JO)
3278 9/6/96 (bug fix) Fixed x-y coordinate confusion problem with scaling
3279 of window items in canvases. (JO)
3281 9/11/96 (bug fix) The open and save file dialogs would change the
3282 current working directory under Windows. (SS)
3284 9/12/96 (bug fix) The Tk event system was delivering events to dead
3285 windows, if the event handler got reentered during a Destroy event
3286 handler. This could cause core dumps and other problems. (JO)
3288 9/20/96 (bug fix) In XFillRectangles under Windows, a brush was not
3289 being deallocated. (SS)
3291 9/20/96 (bug fix) The Mac window manager used to generate a mouseUp
3292 event for a top level that was recently raised to the front/active
3293 window which often caused a tk(priv) error. The up event is no
3294 longer generated with solves several problems. (RJ)
3296 9/25/96 (bug fix) The font code under Windows was leaking memory
3297 whenever a new font was referenced using the three part font names. (SS)
3299 9/26/96 (bug fix) The tests for the common dialogs still used the 'testevent'
3300 function. I updated these calls in clrpick.test, msgbox.test, filebox.test
3301 to use the new event gereating mechanism.
3303 9/18/96 (bug fix) Long-standing bug in bind where <Button-1><Button-1> was
3304 reported as <Double-Button-1>, but <Double-Key-a> was reported as "aa". (CS)
3306 9/27/96 (bug fix) Bindings didn't work on 64-bit machines due to changes
3307 made for virtual events. (CS)
3309 9/30/96 (feature change) Binding for new virtual events included both
3310 lower and upper-case, e.g., <<Copy>> was defined as <Control-c> and
3311 <Control-C>. Previously, widgets were directly bound to only lower-case
3312 bindings. The upper-case binding caused incompatibility with some existing
3313 Tcl programs, so the upper case bindings for <<Cut>>, <<Copy>>, and <<Paste>>
3316 9/30/96 (bug fix) The postscript code in the canvas widget now uses
3317 channels to get and write .ps files which fixed a bug on the Mac where
3318 an output file would have mixed EOL characters. In addition, I added
3319 the ability for the prolog to come from the Tk shared library on the
3320 Mac which makes it possible to have a standalone application. (RJ)
3322 10/1/96 (feature change) "grid forget" was renamed "grid remove". A new
3323 command "grid forget" was added whose semantics are the same as "pack forget"
3325 *** POTENTIAL INCOMPATIBILITY ***
3327 10/1/96 (feature change) grid no longer accepts floating point values for
3328 row or column weights, integers must be used. (SAU)
3329 *** POTENTIAL INCOMPATIBILITY ***
3331 10/1/96 (feature change) "grid {column,row}configure <master> <index>"
3332 returns a list of option value pairs for all of the row or column
3333 constraints. It used to return an error. (SAU)
3335 10/1/96 (bug fix) "The way grid handles '^' short-cuts was re-written
3336 to eliminate core dumps. (SAU)
3338 10/3/96 (feature change) A virtual event binding associated with a
3339 given physical event is now considered less specific than a binding for
3340 that same physical event, all other things being equal. (CS).
3342 10/3/96 (bug fix) Under Windows text placed on the clipboard did not
3343 undergo CRLF translation when delivered to other applications. (SS)
3345 10/3/96 (bug fix) Copying an image onto itself with a zoom factor that
3346 caused the image to grow was accessing freed memory. (SS)
3348 10/3/96 (bug fix) Under Windows, the image blank subcommand did not
3351 10/10/96 (bug fix) Under Windows & Macintosh, XSetFont and XChangeGC
3352 were not implemented, and XSetLineAttributes did not correctly update
3355 10/10/96 (bug fix) Under Windows, 8-bit non-palette displays were not
3356 handled properly. (SS)
3358 10/10/96 (bug fix) Under Windows, images of depth other than 8 or 24
3359 bits were not being rendered properly. (SS)
3361 10/10/96 (bug fix) Under Windows, bitmap subimages were not correctly
3364 10/14/96 (bug fix) Under Window, wm resizable would constrain both
3365 programatic resizes as well as user resizes. (SS)
3367 ----------------- Released 4.2, 10/16/96 -----------------------
3369 10/17/96 (bug fix) XCopyPlane was broken under Windows and would cause
3370 a crash when used with a clipping bitmap. (SS)
3372 10/21/96 (bug fix) Added missing resources needed by tk_getOpenDialog
3373 on the Macintosh to the shared library for Tk. (RJ)
3375 10/22/96 (bug fix) Invoking a menu with an Alt key sequence caused an
3376 error due to a misplaced common in library/menu.tcl. (JO)
3378 10/23/96 (bug fix) Errors in files sourced by the Macintosh
3379 "Source..." menu are now correctly reported via the background
3380 error mechanism. (RJ)
3382 10/23/96 (bug fix) Fixed a bug in the Mac subwindow implementation
3383 that caused refreshes to not occur for canvases with embedded
3386 10/24/96 (bug fix) Provided workaround for Apple bug that doesn't
3387 handle zooming correctly for floating windows. (RJ)
3389 10/24/96 (bug fix) Macintosh tearoff menus are now correctly
3390 displayed as Mac floating windows. (RJ)
3392 11/1/96 (bug fix) Restored manual page for procedures like
3393 Tk_CreateWindowFromPath and Tk_DestroyWindow; was accidentally deleted
3394 when Tk_CreateMainWindow procedure was decommissioned. (JO)
3396 11/19/96 (bug fix) Fixed bugs in postscript code that would cause the
3397 prefix to not be included and the output file to have the wrong
3400 12/2/96 (bug fix) Fixed problem with canvas lines where it didn't
3401 compute bounding boxes correctly for zero-width lines: this could
3402 potentially leave garbage on the screen when items were deleted or
3405 12/5/96 (bug fix) Fixed the Macintosh implementation of pointer x/y
3406 which was returning garbage. (RJ)
3408 12/6/96 (bug fix) Fixed grid bug where the positioning of slaves was
3409 incorrect for non-zero values of ipadx and ipady (SU)
3411 12/6/96 (bug fix) Fixed grid bug where slaves got "lost" when an
3412 already managed slave is re-managed in a different master. (SAU)
3414 ----------------- Released 4.2p1, 12/8/96 (Mac only) --------------
3416 1/17/97 (bug fix) Fixed bug where the Tk clipboard was not in sync
3417 with the Macintosh clipboard on start-up. (RJ)
3419 ----------------- Released 4.2p2, 1/31/97 --------------
3421 ----------------------------------------------------------
3422 Changes for Tk 4.2 go above this line.
3423 Changes for Tk 4.3 go below this line.
3424 ----------------------------------------------------------
3426 9/19/96 (improvement) Implemented table driven mechanism for deciding
3427 whether a command is safe. If it is added by Tk_Init and it appears in the
3428 table then it is kept, otherwise it is removed in a safe interpreter. (JL)
3430 10/18/96 (new feature) Added support for application embedding:
3431 - Frame and toplevel widgets now have a -container option, which
3432 turns the widget into a container.
3433 - Toplevel widgets have a -use option for requesting that the
3434 widget be embedded in another application.
3435 - Wish also supports a -use command-line option.
3436 Embedding is fully supported under Unix, but the implementation is
3437 not complete under Windows or the Macintosh (it works just well
3438 enough to support the Tcl/Tk plugin). (JO)
3440 10/22/96 (bug fix) The commands "winfo rootx" and "winfo rooty" didn't
3441 work for non-toplevel windows in embedded applications: they returned
3442 the coordinates of the nearest toplevel. (JO)
3444 12/02/96 (new feature) Implemented Safe Tk. Tk can now be loaded into a
3445 safe interpreter that has been created with tcl_safeCreateInterp, by
3446 calling load {} Tk interpname. (JL)
3448 12/02/96 (new feature) A safe Tk interpreter can no longer generate
3449 postscript output from a canvas. (JL)
3451 12/02/96 (new feature) Added -channel option to photo command to allow
3452 image data to be read from a channel. This is useful in safe Tk
3453 interpreters where the data cannot be read directly from a file. (JL)
3455 ----------------------------------------------------------
3456 Changes for Tk 4.3 go above this line.
3457 Changes for Tk 8.0 go below this line.
3458 ----------------------------------------------------------
3460 9/1/96 (new features) The font mechanism in Tk has been completely
3462 - Font names need not be nasty X LFDs: more intuitive names like
3463 {Times 12 Bold} can also be used. See the manual entry font.n
3465 - Font requests always succeed now. If the requested font is not
3466 available, Tk finds the closest available font and uses that one.
3467 - Tk now supports named fonts whose precise attributes can be
3468 changed dynamically. If a named font is changed, any widget
3469 using that font updates itself to reflect the change.
3470 - There is a new command "font" for creating named fonts and querying
3471 various information about fonts.
3472 - There are now officially supported C APIs for measuring and
3473 displaying text. If you use these APIs now, your code will
3474 automatically handle international text when internationalization
3475 is added to Tk in a future release. See the manual entries
3476 MeasureChar.3, TextLayout.3, and FontId.3.
3477 - The old C procedures Tk_GetFontStruct, Tk_NameOfFontStruct, and
3478 Tk_FreeFontStruct have been replaced with more portable procedures
3479 Tk_GetFont, Tk_NameOfFont, and Tk_FreeFont.
3480 *** POTENTIAL INCOMPATIBILITY ***
3483 9/24/96 (bug fix) Under Windows, transient windows would be destroyed
3484 if their master was destroyed, even if the transient window was not a
3485 child of the master. (SS)
3487 10/18/96 (new features) A -menu option has been added to the toplevel
3488 widget command, which allows a menu to operate as a menubar. On the
3489 Macintosh, the menubar is displayed accross the top of the main monitor,
3490 just like with other applications. Under Windows and Unix, the menu is
3491 attached to the toplevel window. Also, changed some semantics.
3492 Tearoff menus will now reflect changes to the menu it was
3493 torn off from, and are deleted when the master menu is
3494 deleted. Tearoffs also reflect more look-and-feel of the
3495 platforms they are running on. (SRP)
3497 10/31/96 (bug fix) Under Windows, missing system cursors would
3498 generate an error instead of falling through to the Tk cursor of the
3501 11/7/96 (feature change) Under Unix, default borderwidth is now 1 to
3502 more closely approximate CDE. (SS)
3503 Note: this change was undone on 6/12/97, restoring the default border
3504 width to 2 again. (JO)
3506 11/7/96 (new feature) The button widget now supports a -default option
3507 that draws a platform specific default ring around the widget. (SS)
3509 11/7/96 (feature change) Under Windows, buttons and scrollbars now
3510 have native look and feel. This affects the default class bindings
3511 and the way the some configuration options are interpreted. Refer to
3512 the widget manual pages for more details. (SS)
3513 *** POTENTIAL INCOMPATIBILITY ***
3515 11/19/96 (bug fix) Under Windows, images were incorrectly drawn on
3516 16-bit displays. (SS)
3518 11/19/96 (bug fix) Under Windows, the class name for the main window
3519 (.) was not properly generated from argv0. (SS)
3521 11/20/96 (bug fix) Fixed a couple of bugs in the Canvas widget. The
3522 postscript file is now created with the correct permissions. Also,
3523 the prolog is now properly included in all cases. (RJ)
3525 11/22/96 (bug fix) Under Windows, the initial directory and file names
3526 were not properly translated before being passed to the system
3527 open/save file dialogs. So forward slashes were not converted to
3528 backslashes, and tilde substitution was not performed. (SS)
3530 11/25/96 (feature change) Under Windows and Macintosh, the selection
3531 highlight is now hidden whenever an entry or text widget loses focus.
3532 Also, the previous selection information is not lost when a new
3533 selection is made in a different widget. (SS)
3535 11/26/96 (new feature) Added support for images as primitive types in
3538 11/30/96 (configuration improvement) Modified configure.in to handle the
3539 case where Tcl and Tk are installed in different places by including both
3540 their library directories in the library search path for Tk. (JO)
3542 12/3/96 (bug fixes) Fixed two bugs related to canvas lines that caused
3543 the screen to be incorrectly refreshed, leaving garbage on the screen.
3544 One bug was related to lines with width zero, and the other was
3545 related to lines with very long miters. (JO)
3547 12/4/96 (bug fix) The "update" command was only syncing the display
3548 for its main window. Changed to sync all displays. (JO)
3550 12/5/96 (bug fix) Color deallocation would occasionally cause a panic
3553 12/5/96 (bug fix) Errors during startup were silently discarded under
3556 12/5/96 (bug fix) Errors during startup were silently discarded under
3559 12/11/96 (bug fix) Text widgets weren't considering the -spacing1
3560 and -spacing2 options when computing their desired geometry. (JO)
3562 12/12/96 (feature change) Option menus using tk_optionMenu were
3563 created with command entries that set the option menu's variable in a
3564 command string. This has been changed so that the option menu's
3565 entries are now radiobutton entries so that the entries that matches
3566 the variable is now checked when the menu is posted. (SRP)
3568 12/12/96 (feature change) The destroy command no longer returns an
3569 error when a window does not exist. (SRP)
3571 12/13/96 (new feature) grid row/column-configure accepts a list of
3572 indices in addition to a single index. (SU)
3574 12/17/96 (bug fix) Under Windows, command line was not being parsed
3575 correctly if it contained the literal characters \" (CS)
3577 12/17/96 (feature change) Native Windows labels do not get a focus-ring
3580 12/17/96 (bug fix) Under Windows, colors specified as "#XXYYZZ" where XX, YY,
3581 or ZZ were not valid hex digits were getting a random color value instead of
3582 being an error. (CS)
3584 ----------------- Released 8.0a1, 12/17/96 -----------------------
3586 12/23/96 (bug fix) Fixed two menu bugs:
3587 - Menus could get stacked below other windows so that they weren't
3588 visible when posted (especially under olvwm and fvwm).
3589 - Under olvwm if you pressed button 1 over an entry in a new-style
3590 menubar, the menu didn't appear until you moved the mouse slightly.
3593 1/6/97 (bug fix) Focus could accidentally get grabbed by an application
3594 away from the rightful focus owner if the focus recently changed from one
3595 application to another. (JO)
3597 1/6/97 (bug fix) Under Windows, the console was appearing even for
3598 non-interactive applications. This was a side effect of a general
3599 problem with the wm state of windows that were being mapped for the
3602 1/6/97 (bug fix) Under Windows, the initialization code was not
3603 looking in the right directory for the Tk libraries when the program
3604 being run was not in the Tcl installation heirarchy. (SS)
3606 1/8/97 (bug fix) Under Windows, the windows were not being unmapped
3607 properly, which led to strange packer behavior. (SS)
3609 1/8/97 (bug fix) The "winfo containing" command (and the Tk_CoordsToWindow
3610 procedure) didn't work properly on Unix in the presence of embedding or
3613 1/15/97 (bug fix) Invoking "destroy ." as the command from a menu would
3614 cause Tk to crash because TkMainInfo was freed before menu released its
3615 resources. This bug had already been fixed for scrollbars and buttons. (CS)
3617 1/15/97 (bug fix) Tk is now working under Win32s again, including Win32
3618 version 1.25. Fixed separate problems in fonts and dialogs. (CS)
3620 1/15/97 (feature change) Under Windows, font sizes are now specified in
3621 points, not pixels. The mapping between pointsize and pixels depends on
3622 Windows having accurate metrics for the monitor (plug&play helps). Font
3623 metrics are still reported in pixels. (CS)
3625 1/21/97 (bug fix) Grid no longer reports rows or columns "out of range"
3626 when requesting their constraints. (SAU)
3628 1/21/97 (bug fix) Fixed some window manager related bugs on the
3629 Macintosh. Now better support global grabs. (RJ)
3631 1/21/97 (bug fix) For Windows: Fixed problems with canvas items that
3632 used end caps. Fixed arc implementation to more closely approximate
3633 X. Stippling now works properly on fat lines. (SS)
3635 1/21/97 (bug fix) Small interlaced GIF images were not properly
3638 1/21/97 (bug fix) More changes to image code to try to handle 16-bit
3639 displays properly under Windows. (SS)
3641 1/21/97 (bug fix) Numerous display bugs on Unix and Macintosh are now
3642 fixed. Numerous binding problems for menubars under Unix are now
3643 fixed. Deletion of menu separators under Windows is now fixed. (SRP)
3645 ----------------- Released 8.0a2, 1/24/97 -----------------------
3647 1/29/97 (feature change) The -transient field for menus is no longer
3648 supported. There is now a -type field which is used to achieve the
3649 same purpose that the -transient field accomplished. When a menu is
3650 created, the -type field controls whether the menu is a normal
3651 pull-down menu, a floating tearoff menu or a menubar. This option is
3652 normally only used by the library code and internally by the menubar
3654 *** POTENTIAL INCOMPATIBILITY ***
3656 2/5/97 (feature change) Changed the photo image mechanism to use
3657 Tcl_Channels instead of FILE * as an argument to image matching
3658 functions. The change will make it much easier to write cross
3659 platform image types in Tk. Note: FILE * is no longer used anywhere
3661 *** POTENTIAL INCOMPATIBILITY ***
3663 2/7/97 (enhancement) Were not allowed to bind to virtual events inside of
3664 canvas or text widget (e.g., "$canvas bind all <<foo>> {script}" or
3665 "$text tag bind sel <<foo>> {script}"); it would return an error
3666 disallowing that binding. Now _can_ bind to a virtual event, but that
3667 binding inside of the canvas or text widget will only fire if the
3668 underlying virtual event definition is of type key, button, motion,
3669 enter, or leave; all other physical event types get filtered out by the
3670 widget before the virtual event mapping is done. (CS)
3672 2/22/97 (bug fix) Under Unix, "wm geometry +-20+-30" didn't work. (JO)
3674 2/24/97 (bug fix) The photo image didn't always zero out enough of its
3675 pixel and dither correction arrays. (JO)
3677 2/25/97 (bug fix) Fixed focus problem that could cause "BadMatch (invalid
3678 parameter attributes)" in X_SetInputFocus requests on Unix. (JO)
3680 2/25/97 (bug fix and new feature) Added new "gray75" bitmap, fixed
3681 "gray25" bitmap to really be 25% on (due to an ancient mistake, it
3682 had been only 12% on). (JO)
3684 2/28/97 (bug fix) Windows: made embedding work again on Win32 platform.
3685 Prevent iconification, deiconinification on embedded windows. (JL)
3687 3/4/97 (new feature) Added the ability to manipulate the Apple and
3688 Help menus on the Macintosh; the system menu on Windows; and to have a
3689 right justified Help menu on Unix. See the documentation for menu.n
3690 for more details. (SRP)
3692 3/4/97 (bug fix) Prevented core dump at exit if a <Destroy> binding on "."
3693 gets invoked from destroying a nested widget and the binding causes the
3694 interpreter to be deleted. The core dump was being caused by the
3695 interpreter not being Tcl_Preserve'd during the destroy of ".". (JL)
3697 3/4/97 (bug fix) Under Unix, when embedded Tk is running in a separate
3698 process, correctly handle a race condition: ignore cross-over messages from
3699 the X server for windows that Tk thinks it had already deleted, when the
3700 containing process deletes its container window. Some other race conditions
3701 still remain, e.g. with pixmaps, colormaps and images. (JL)
3703 3/10/97 (bug fix) Prevented core dump in generic console code due to
3704 following a NULL pointer when the console interpreter was already deleted.
3705 This may happen due to different orders of deletion possible at exit. (JL)
3707 3/10/97 (bug fix) Fixed bug on Mac and Windows that caused time to be
3708 ignored when considering if a single click was actually a double
3711 3/11/97 (feature change) A major oversight has been that although it was
3712 documented that the Tk programmer was asking for a font in points (1/72 of an
3713 inch), under Unix and Mac Tk was actually asking for a font in pixels, while
3714 only under Windows was it using points. This caused applications to appear
3715 much larger when run under Windows. Now, on all platforms the (purportedly)
3716 correct size in points is used when asking for fonts. However, for
3717 compatibility with existing tk4.2 applications that depend on fonts being of
3718 specified pixel size, XLFDs retain their incorrect behavior of getting a
3719 font in pixels. (CCS)
3720 *** POTENTIAL INCOMPATIBILITY ***
3722 3/13/97 (new feature) "tk scaling" command to setup the mapping between
3723 pixels and points. This scaling factor is used by all widgets that accept
3724 ruler distances, not just fonts. (CCS)
3726 3/24/97 (new feature) Added "-columnbreak" option to menu
3727 entries. When this value is "1", the entry will appear at the top of a
3728 new column in a non-menubar menu. Also added "-hideMargin". Together
3729 with "-columnBreak", menus with palettes are now possible. (SRP)
3731 3/26/97 (new features and bug fix) Titles for tearoff menus were
3732 broken on the Mac and Windows. Added the ability to set the title of a
3733 menu when it gets torn off and override Tk's automatic generation of
3734 the title. On the Macintosh, whenever a menu
3735 label contains three dots in a row "...", the menu will instead
3736 display the elipses character 'É'. (SRP)
3738 3/27/97 (bug fixes) When a menu had an error executing a postcommand,
3739 the error information was getting lost. On Windows, a set of
3740 menubuttons was not highligting properly when clicking between
3741 windows. On Windows, post commands were getting executed twice for
3742 popup menus. On Macintosh, fixed problem where menubars were not
3743 always current. (SRP)
3745 4/11/97 (new feature) Menubuttons now have a direction flag which
3746 controls where the menu popups up relative to the button. (SRP)
3748 4/24/97 (bug fix) Transient windows did not obey the resizable setting
3751 4/24/97 (bug fix) wm geometry did not correctly parse negative
3754 4/29/97 (bug fix) Changed the canvas polygon implementation to only
3755 report the coordinates specified by the end user not the automatically
3756 generated end point of a self closing polygon. (RJ)
3757 *** POTENTIAL INCOMPATIBILITY ***
3759 4/23/97 (feature change) Loosened the rules on parsing font names so that
3760 unix-centric fonts in scripts don't break when run on Windows or Mac.
3761 (1) Previously, an XLFD had to specify font name, weight, slant, and size;
3762 now, a minimal XLFD (such as "*-times-*") will be accepted, and all
3763 unspecified attributes will be given default values. (2) Previously, in the
3764 {name size style ...} format, only the style was optional; now both the size
3765 and the style are optional; this solves the problem of old scripts that
3766 contain specifications of the form "-font fixed" or "-font times". (CCS)
3768 5/7/97 (new feature) Menus now send a virtual event <<MenuSelect>>
3769 when an item is highlighted in a menu. Applications can use this to
3770 implement context-sensitive help. (SRP)
3772 5/14/97 (bug fix) Fixed a race condition in the focus code where focus
3773 could be taken away from a window incorrectly. Scenario is that the main
3774 window creates a toplevel and assigns focus to it. When the user moves the
3775 mouse from the main window into the toplevel there was a race between
3776 two different kinds of focus events. (BW)
3778 5/20/97 (bug fix) Fixed bug where the clipboard was not rendered before
3779 the application exited. (SS)
3781 5/22/97 (feature change) When a Tk8.0 menu is configured, all menus
3782 derived from it (menubars, tearoff) mirror the changes. This was not
3783 true for the "-tearoff" flag. In Tk4.6, tearoff menus had the
3784 "-tearoff" flag turned off. Now, the "-tearoff" flag is tracked just
3785 as the other options are. Tearoff menus and menubars with the
3786 "-tearoff" option set will not display the tearoff item. This means
3787 that a given menu entry for a menu and a tearoff of that menu will
3789 *** POTENTIAL INCOMPATIBILITY ***
3791 ----------------- Released 8.0b1, 5/27/97 -----------------------
3793 5/30/97 (bug fix) Made the options to the grid command shortcut-able.
3794 Ie. You can now use -stick, in addition to -sticky. (RJ)
3796 6/2/97 (bug fix) Fixed bug in startup code that caused a problem in
3797 finding the library files when they are installed in a directory
3798 containing a space in the name. (SS)
3800 6/2/97 (bug fix) Virtual events associated with <Enter>/<Leave> in text
3801 widget tag caused panic. (CCS)
3803 6/6/97 (bug fix) On some systems, struct timeval.tv_sec is unsigned. (SS)
3805 6/6/97 (feature change) Changed -default option on buttons to take
3806 three states: normal, active, disabled. This allows apps to have a
3807 row of buttons where the default ring moves between buttons without
3808 changing the geometry of the buttons. See the button.n manual page
3809 for more details. (SS)
3810 *** POTENTIAL INCOMPATIBILITY with Tk 8.0b1, but not with Tk 4.2 ***
3812 6/9/97 (bug fix) Canvas postscript printing now works for bitmaps
3815 6/10/97 (bug fix) Fixed bug in bindings for listboxes where state wasn't
3816 being properly initialized on Shift-1 button presses. (JO)
3818 6/11/97 (bug fix) Text widget display code did not include internal
3819 padding in the damage calculation for borders leading to unrefreshed
3820 sections on Windows and Mac. (SS)
3822 6/12/97 (feature reversal) Changed default border widths under Unix
3823 back to 2 again. This reverses the change made on 11/7/96. (JO)
3825 6/13/97 (bug fixes) In canvas text item: the insertion cursor wasn't shown
3826 if insertion point was at end of text item, it was impossible to click to
3827 position the insertion point after the last character, and @x,y indices were
3828 computed incorrectly if -scrollregion had been specified and canvas was
3831 6/13/97 (bug fix) Hitting up/down arrows in a text widget packed in a
3832 toplevel window created with the "-screen" option would cause an error dialog
3835 6/12/97 (bug fix) Fixed bug in canvas text items where multi-line
3836 selections were not highlighted properly. This bug existed only in
3837 earlier releases of Tk 8.0. (JO)
3839 6/16/97 (bug fix) In some obscure cases, canvas window items could
3840 accidentally specified a 0x0 size for the window, which caused a
3841 BadValue error under X. (JO)
3843 6/17/97 (bug fix) Tk buttons on the Macintosh will now correctly
3844 draw under MacOS 8.0. (RJ)
3846 6/18/97 (feature change) Changed the way highlights are drawn in text
3847 widgets so that the empty space to the left of a line is highlighted
3848 whenever the leftmost character of the line is highlighted (the empty
3849 space didn't used to be highlighted). This produces a neater left
3850 edge when several lines are selected. (JO)
3852 6/18/97 (bug fix) Tk was using the wrong system colors to draw various
3853 widgets under Windows. (SS)
3855 6/19/97 (bug fix) Under Windows, the "wm transient" and "wm overrideredirect"
3856 subcommands can now be applied to a toplevel to change its window
3857 style at any time during the life of the window. (SS)
3859 6/19/97 (feature change) All GIF and XBM images needed for the "TK"
3860 file dialog box are included in-line in tkfbox.tcl. (IL)
3862 6/27/97 (bug fix) Revamped focus code to eliminate most XSetInputFocus
3863 calls from the FilterEvent procedure. This moves the implementation back
3864 towards the Tk 4.2 implementation, but adds embedding support. There is
3865 still a known bug with twm's NoTitleFocus and embedded windows. However,
3866 the races in a2 and the funny focus stealing in b1 are gone. (BW)
3868 6/25/97 (bug fix) Error message was not properly reported when using
3869 button 'toggle'. (DL)
3871 6/25/97 (bug fix) Removed one source of memory corruption in tkGrid.c code
3872 (fixes what was exercised by "grid col . 0 -w 1; grid col . 0 -w 25") (DL)
3874 ----------------- Released 8.0b2, 6/30/97 -----------------------
3876 7/1/97 (bug fix) Menu shortcut and tearoff reported problem fixed. (DL)
3878 7/1/97 (new feature) TK_BUILD_SHARED flag set in tkConfig.sh
3879 when Tk has been built with --enable-shared. TK_SRC_DIR added.
3880 A new tkLibObjs make target, echoing the list of the .o's needed
3881 to build a tk library, is now provided. (DL)
3883 7/9/97 (bug fix) Fixed Tk_CreateFileHandler and Tk_DeleteFileHandler
3884 macros to directly call the Tcl equivalents. (JL)
3886 7/10/97 (bug fix) On the Mac, if the binding for <<MenuSelect>> was
3887 drawing, the drawing could bleed over into the menus. This is now
3890 7/10/97 (bug fixes) Removed duplicate code related to Tk_SafeInit,
3891 made a single init script handling both cases. (DL)
3893 7/10/97 (feature change) On Unix, to be able to load Tk into a safe
3894 interp you need to set the env(DISPLAY) var. Some API should be
3895 added to allow master crontrol over Tk instantiation. (DL)
3897 7/11/97 (new feature) On the Mac, menus that are too big for the
3898 screen will now scroll. This is part of the interface on the Mac,
3899 impossible under Windows, and is not done for Unix. (SRP)
3901 7/21/97 (bug fix) After fixing the bug that in canvas text item the insertion
3902 cursor wasn't shown if insertion point was at end of text item, introduced a
3903 different bug in where clicking in entry widget with 0 characters would
3904 crash or display garbage. (CCS)
3906 7/22/97 (bug fix) If there were a whole bunch of returns or tabs in a row in
3907 a canvas text item, then the temporary buffer used when outputting
3908 postscript could overflow and overwrite the stack. (CCS)
3910 7/23/97 (feature change) Reenabled "tkwait" in the Safe Tk base. (JL)
3912 7/24/97 (bug fix) Single init script for both Win and Unix.
3913 new library/safetk.tcl using features from new tcl safe.tcl (DL)
3915 7/30/97 (feature change) As a result of native menus, you can no
3916 longer drag through a frame of menubuttons on Macintosh and Windows
3917 and have the menus pop down. You can still click on individual
3918 menubuttons and their menus will pop down. Applications needing to
3919 present a menubar should consider using the new "-menu" configuration
3920 of the toplevel widget to set up menubar which behaves correctly on
3921 Macintosh, Windows and X Windows. (SRP)
3923 7/31/97 (bug fix) Tk widget commands can now safely be hidden commands.
3924 Previously destroying the widget would potentially leave dangling pointers
3925 and destroy an exposed command instead of a hidden one if an exposed
3926 command by that name existed. (JL)
3928 7/31/97 (bug fix) On Windows, popup menus were not tracking the right mouse
3929 button correctly if it was used to invoke the menu. On Unix, tearoff
3930 menus were stealing focus when the mouse moving over them even when
3931 focus following was turned off. (SRP)
3933 8/4/97 (bug fix) Fixed problem under USENIX where raising a toplevel
3934 window could cause an X error if the window had just been withdrawn. (JO)
3936 8/4/97 (feature change) tkerror and bgerror are not anymore hard links
3937 maintained by the Tcl core. The implementation of bgerror provided by
3938 Tk tries, for backward compatibility only, to to call "tkerror" and
3939 if that fails, falls back to the usual dialog and stack trace option
3940 posting. You can thus still use either "bgerror" or "tkerror" as your
3941 application error handling proc, but using "bgerror" is strongly
3942 recommended as support for "tkerror" will eventually vanish in upcoming
3944 *** POTENTIAL INCOMPATIBILITY with scripts that were using
3945 the actual hardlink implementation 'features' and with
3946 scripts (if any) that would be calling the default "tkerror" to
3947 simulate error messages (use "bgerror" instead) ***
3949 8/7/97 (feature change/addition) Removed the gif files used for the
3950 Open dialog box on UNIX (they were previously made inline). Added a
3951 new images directory that includes several images of the Tcl and Tcl
3954 8/7/97 (bug fix) Fixed focus to deal with embedding when there is
3955 no window manager. (BW)
3957 8/8/97 (bug fix) Fixed bug in photo image code where photo images from
3958 different interpreters could get confused if they had the same name. (JO)
3960 8/8/97 (new feature) Added new procedure Tk_GetImageMasterData for
3961 mapping image names to master data. (JO)
3963 8/8/97 (feature change) Modified Tk_FindPhoto procedure to require
3964 extra "interp" argument (needed for bug fix above). (JO)
3965 *** POTENTIAL INCOMPATIBILITY ***
3967 8/8/97 (bug fix) Fixed problems under Windows renaming toplevels with
3968 menubars. Fixed problems on all platforms renaming menu widgets and
3969 using new menus of the same name as an old one as cascades. Fixed a
3970 cosmetic problem with tearoff menus. (SRP)
3972 8/13/97 (bug fixes) Fixed "-from" option for the "image create" and
3973 "imageName read" commands for GIF images, which didn't used to work
3974 correctly. Also made transparency work correctly for GIF images
3975 without the TRANSPARENT_GIF_COLOR hack; TRANSPARENT_GIF_COLOR is
3976 now ignored. These fixes were provided by Jan Nijtmans. (JO)
3978 8/13/97 (new feature) added safe::loadTk command to load Tk in a
3979 safe slave interpreter. See the loadTk.n manual page for more
3982 ----------------- Released 8.0, 8/18/97 -----------------------
3984 8/22/97 - (bug fix) Fixed syntax error in tk_popup; option menus now
3985 popup over their selected items like they did in tk4.2. Fixed problem
3986 where cascades sometimes did not work on X. On X, menubars with
3987 checkbuttons and radiobuttons in them would infinite loop when
3990 8/27/97 (new feature) Added support for new X11R6 colors under Windows
3991 and Mac platforms. (SS)
3993 8/29/97 (bug fix) Wish crashed if stdin was closed. (SS)
3995 9/10/97 (bug fix) "font actual {helvetica 10} -displayof ." wasn't taking
3996 into account the "-displayof" option. This problem also existed for the
3997 "font metrics" and "font measure" commands. (CCS)
3999 9/16/97 (new feature) Added "resource delete" and "resource files"
4000 command to the Mac. Also fixed "resource write" when the resource
4001 was specified by id and already existed. (JI)
4003 9/16/97 (bug fix) Added null bindings to <Command-KeyPress> for the
4004 text and entry widget on the Macintosh. This prevents unbound command
4005 key sequences from having the character echoed to the widget. Also
4006 fixed Cut & Copy bindings. (JI) (RJ)
4008 9/18/97 (bug fix) Revamped Macintosh focus code. Cut, Copy & Paste
4009 virtual events now go to the correct (focus) window. (RJ)
4011 9/19/97 (bug fix) Made Macintosh tearoff menus non-resizable. (RJ)
4013 10/9/97 (bug fix) Default font for new canvas text items was hardcoded to
4014 "Helvetica 12" instead of using DEF_CANVTEXT_FONT defined in
4015 tk{platform}Default.h like all the other widget settings. (CCS)
4017 10/9/97 (bug fix) Image code could cause crashes during "exit" under
4018 some conditions (such as an image named "place"). (JO)
4020 10/9/97 (bug fix) Fixed bug that sometimes prevented listboxes from
4021 scrolling far enough horizontally to see the rightmost character. (JO)
4023 10/10/97 (bug fix) In canvas text items, if the text ended with a \n, it
4024 was not counted in the bbox height, as it did in tk4.2. This caused
4025 "hello\n" to be the same height as "hello" and you couldn't see the
4026 cursor positioned on the next line. (CCS)
4028 10/10/97 (bug fix) The grid geometry manager didn't always properly
4029 forget about windows after a "grid forget" or "grid remove" command:
4030 the windows could reappear on the screen later. (JO)
4032 10/13/97 (bug fix) Selection could not be restored to a text widget
4033 after "selection clear" on Windows. (SS)
4035 10/14/97 (bug fix) If a canvas had contained windows that were off-screen,
4036 the windows could sometimes reappear (in the wrong place) if the canvas was
4039 10/20/97 (bug fix) Omitting the arguments to the text widget "mark
4040 gravity" option caused a crash. (SS)
4042 10/21/97 (bug fix) Tk did not reset the result after native dialog
4043 modal loops on Window so background events could perturb the dialog
4046 10/23/97 (bug fix) Memory leak in unix's TkpGetFontFamilies. Thanks
4047 to James Bonfield for the fix. (DL)
4049 10/27/97 (bug fix) Fixed event reporting for the Mac during a grab
4050 when the pointer was out of the toplevel window. (RJ)
4052 10/28/97 (bug fix) Under Unix, override-redirect was getting set
4053 incorrectly for menus, so that "wm overrideredirect" returned 0. (JO)
4055 10/28/97 (bug fix) Under Unix, focus code could sometimes cause the
4056 display to deadlock (it wasn't flushing the output buffer after issuing
4057 an ungrab command). (JO)
4059 10/28/97 (bug fix) If a PPM image file wasn't complete (e.g. it
4060 consisted of nothing but space characters) Tk entered an infinite loop
4061 reading the header. (JO)
4063 10/28/97 (bug fixes) On the Mac, menubars assigned to toplevels would
4064 disappear after a menu item was invoked from them. On Windows,
4065 clicking a system menu with added items and then again with a
4066 different set of added items would crash. On all platforms, a command
4067 menu entry that caused the entry to be deleted, another one created in
4068 its place, and the replacement deleted would cause a panic. On Unix,
4069 <<MenuSelect>> event bindings were firing every time the mouse moved,
4070 instead of everytime the active menu item changed. (SRP)
4072 10/27/97 (bug fix) If a particular race condition occurred under Windows,
4073 Tk would crash complaining about trying to free a color that wasn't
4076 10/28/97 (bug fix) Under Windows, button grabs did not report motion
4077 events that occurred outside of Tk windows. (SS)
4079 10/28/97 (bug fix) Fixed incorrect display of transparent images on
4082 10/29/97 (bug fix) Reworked the handling of out-of-range indices in
4083 the widget command for listboxes: there were all sorts of quirks
4084 before (e.g., ".l delete -1" actually deleted the first element
4085 of the listbox). (JO)
4087 10/29/97 (bug fix) Fixed crash on the Macintosh that could occur if a
4088 window is moved before it is mapped where the X window was created but
4089 the Macintosh port was not. (RJ)
4091 10/29/97 (bug fix) Fixed several errors in how wm state was maintained
4092 on the Macintosh. Tk now also will iconify a toplevel window on the
4093 Mac if the new Appearance Manager is present. (RJ)
4095 10/28/97 (bug fixes) In canvas' postscript command: User name
4096 information was leaked in safe interpreters on Unix (security fix).
4097 Errors while reading prolog.ps were not propagated and the error
4098 message was mixed with partial data. Note: postscript output does
4099 not work in safe interpreters on unix and windows. (DL)
4101 10/28/97 (bug fix) Safe Tk interps on unix were leaking env(DISPLAY). (DL)
4103 10/31/97 (bug fix) Fixed problems related to the input focus when one
4104 application had windows open simultaneously on several displays. (JO)
4106 10/31/97 (bug fix) Fixed several problems with traversal of menus via
4107 the keyboard under Unix. (SRP)
4109 11/4/97 (bug fix) Fixed various word-size related problems for 64-bit
4112 11/5/97 (bug fix) Embedding on Windows was using freed data (crashing
4113 in safe.test with TCL_MEM_DEBUG). NB: Embedding is still not fully
4114 implemented on Windows ! (It works mostly when Tk is embeded into it's
4115 own Tk frame (safe::loadTk case), but not well with respect to resizing
4116 with a toplevel container or with an external process). (DL)
4118 ----------------- Released 8.0p1, 11/7/97 -----------------------
4120 11/20/97 (bug fix) Fixed bug on the Mac where the "package require"
4121 command caused menus to stop working. (JI)
4123 11/20/97 (bug fix) Fixed bug in rendering transparent gifs on Text
4126 11/20/97 (enhancement) Made the changes required to work with the new
4127 Apple Universal Headers V. 3.0 so we can compile with CW Pro 2.0 (JI)
4129 ----------------- Released 8.0p2, 11/25/97 -----------------------
4131 11/25/97 (security bug fix + added feature) Tk Safe Init now asks
4132 the master's safe::TkInit for the 'argv' to use. This is transparently
4133 dealt with by the safe::loadTk API. New optional "-display displayName"
4134 argument to safe::loadTk, and the "-use" argument accepts both window
4135 Ids and Tk window names: see loadTk(n). Made the ":0.0" default display
4136 work on the Mac as it works on Windows and Unix. (DL)
4138 12/3/97 (bug fix/optimization) Removed unneeded and potentially dangerous
4139 instances of double evaluations if "if" and "expr" statements from
4140 the library files. It is recommended that unless you need a double
4141 evaluation you always use "expr {...}" instead of "expr ..." and
4142 "if {...} ..." instead of "if ... ...". It will also be faster
4143 thanks to the byte compiler. (DL)
4145 12/3/97 (new feature) Added support for browser/plugin style embedding,
4146 and made various other fixes to get the plugin working on the Mac. (JI)
4148 12/8/97 (bug fix) on Windows, using "winfo pathname" before "." was mapped
4151 ---- Shipped as part of the plugin2.0b5 as 8.0p2Plugin1, Dec 8th 97 ----
4153 12/97 (bug fix) more Macintosh embeding fixes needed for the plugin. (JI)
4155 Jan/9/98 (improvement) Allow applications to have custom init script
4156 without having to patch the Tk core: Tk_Init will use an existing
4157 "tkInit" proc if one exists in the interp where one tries to install Tk
4158 instead of defining it's own (tkInit is the transient proc defined in
4159 generic/tkInitScript.h that searches and sources tk.tcl and defines
4160 the 'correct' tk_library). (DL)
4162 ---- Shipped as part of the plugin2.0 as 8.0p2Plugin2, Jan 15th 98 ----
4164 6/3/98 (bug fix) Fixed bugs in the tk_getOpenFile under Unix.
4165 1) If the -initialdir option was "." the result would be "././foo.tcl"
4166 instead of an absolute path, like the Windows interface.
4167 2) There is a traceVar on the data(selectPath) where the script was
4168 assumes the window exists. (BS)
4170 6/12/98 (feature change) Focus -force now sets the foreground window
4171 on Windows platforms in addition to moving the focus. (SS)
4173 6/12/98 (bug fix) Fixed bug in Windows font measurement that did not
4174 take kerning into account. (BS)
4176 6/24/98 (bug fix) On Unix, fixed -initialdir switch to tk_getOpenFile
4177 and tk_getSaveFile to convert the specified directory to an absolute
4178 path and to use the current working directory if the specified
4179 directory does not exist. (SS)
4181 6/25/98 (bug fix) On Unix, both the Tk and the Motif file dialogs
4182 would fail if the -parent flag changed between two parent windows that
4183 had been previously used as file dialog parents. (SS)
4185 6/29/98 (compatibility patch) Added reserved fields to several Tk
4186 structures to match additions made by Jan Nijtmans dash patch. This
4187 means that extensions can be compiled against the dash patch
4188 and still work with unpatched Tk, and vice versa.
4190 7/6/98 (bug fix) Added keysym definitions for the new keys on the
4191 Microsoft keyboards. You can bind to <App>, <Win_L>, and <Win_R>,
4192 but you cannot use the Win keys as modifiers. (SS, BW)
4194 7/6/98 (new feature) Added support for the Macintosh Appearance Manager. (JI)
4196 7/24/98 (feature change) Eliminated the static variable that sets
4197 tk_library and simplified search order for tk.tcl. The tk_library
4198 variable can now be set before calling Tk_Init to avoid doing any
4199 searches. If it isn't set, then Tk checks env(TK_LIBRARY), relative
4200 to tcl_library, an install directory relative to the executable, a
4201 source directory relative to the executable, and a tk directory
4202 relative to the source heirarchy containing the executable. See the
4203 comment at the top of generic/tkInitScript.h for more details. (SS)
4205 7/27/98 (bug fix) The bbox for coords in the canvas were incorrectly
4206 including the center of the coord as part of the bound area. (RJ)
4208 8/4/98 (bug fix) Fixed memory leak in Windows menu code. (SS)
4210 8/4/98 (bug fix) Fixed bug where bgerror's were not being generated
4211 from menu callbacks on Windows. (SS)
4213 8/4/98 (bug fix) Alt-key bindings were not being handled properly
4214 under Windows, resulting in annoying beeps. (SS)
4216 8/4/98 (bug fix) Fixed bug in Windows menubar handling that allowed
4217 a shared menubar to be deleted when any window using it was deleted. (SS)
4219 8/4/98 (feature change) Introduced TkReadBitmapFile to replace
4220 XReadBitmapFile so that all Tk file opens go through the Tcl channel
4221 mechanism. This lets us wrap applications that define their own
4222 bitmaps and cursors. Note that XReadBitmapFile is no longer
4223 emulated for non-unix platforms platforms (RJ, BW)
4225 8/5/98 (bug fix) <Insert> binding in entries was masking the virtual
4226 event <<Paste>> binding to Shift-Insert on Windows. (SS)
4228 8/5/98 (bug fix) wm frame would crash if the window had not been
4229 mapped yet on Windows. (SS)
4231 8/5/98 (bug fix) Local grabs did not exclude menus or the caption bar
4234 8/5/98 (bug fix) Reduced message traffic by setting
4235 WS_EX_NOPARENTNOTIFY on TkChild windows. (SS)
4237 8/6/98 (feature change) Changed tkInitScript.h to use the new
4238 tcl_findLibrary procedure to locate its script library. (BW)
4240 8/10/98 (bug fix) Added special case to font code to limit the
4241 length of displayed strings to avoid wrap-around bugs in some
4242 PC X servers when the pixel length of the string exceeds 0x7fff. (SS)
4244 8/12/98 (bug fix) Macintosh, lock down some of the resources
4245 associated with menus to try and stabilise the menu system
4246 on memory limited machines. (JI)
4248 8/12/98 (windows build change) Moved the tkConsole.obj into the tk80.dll
4249 on windows. If you build your own Tk main program, you no longer
4250 need to compile and link this yourself. (SKS)
4252 -------- Released 8.0.3 to the Tcl Consortium CD-ROM project, 8/13/98 ------
4254 10/5/98 (new feature) Added the event "MouseWheel" that will fire on
4255 Windows applications in response to mouse wheel movement. You can
4256 bind to the MouseWheel event and use the %D substitution to get the
4257 delta the wheel moved. The "event generate" command has also been
4258 enhanced with the -delta flag so you can generate these events from
4259 Tcl. See the bind and event man pages for more details. The listbox
4260 and text widgets' default bindings have been updated to understand
4261 MouseWheel events. (RJ)
4263 10/12/98 (performance improvement) Added hash table to canvas widget
4264 that holds numeric ids for items. The hash table makes item lookup
4265 almost constant time which improves certain canvas operations
4266 (exspecially for canvases with large number items). Thanks to Mark
4267 Weissman <weissman@gte.com> and Jan Nijtmans <Jan.Nijtmans@wxs.nl>
4268 for submitting this improvement. (RJ)
4270 10/15/98 (bug fix) The -fill option to text items in the canvas did
4271 not allow the empty string as an argument (meaning transparent) even
4272 though every other item type did. Thanks to Sebastian Wangnick
4273 <sebastian.wangnick@eurocontrol.be> for supplying this patch. (RJ)
4275 10/20/98 (feature change) The Makefile and configure scripts have been
4276 changed for IRIX to build n32 binaries instead of the old 32 abi
4277 format. If you have extensions built with the o32 abi's you will need
4278 to update them to n32 for them to work with Tcl. (RJ)
4279 *** POTENTIAL INCOMPATIBILITY ***
4281 11/10/98 (feature change) The Macintosh menus will use the Appearance
4282 Theme backgrounds, separators and menu shape, if Appearance version
4283 1.0.1 or greater is installed. The version of Appearance that shipped
4284 with MacOS 8.0 so it will not work with a straight 8.0, but it will
4285 with MacOS 8.1 or later. (JI)
4287 ----------------- Released 8.0.4, 11/20/98 -----------------------
4289 11/24/98 (bug fix) On some X servers, XQueryLoadFont will always
4290 return a font, even if the name is meaningless. This prevents Tk from
4291 parsing the font name, so now we perform a quick sanity check on the
4292 name before letting X have it. (stanton)
4294 12/30/98 (bug fix) Fixed bug in "grid forget" that failed to cancel
4295 pending idle handlers, resulting in a crash in a few odd cases. (stanton)
4297 1/28/99 (configure change) Now support -pipe option on gcc. (RJ)
4299 2/4/99 (bug fix) Changed so color tables in photo images are freed
4300 immediately instead of being delayed. This ensures that color tables
4301 are properly disposed at process exit. (stanton)
4303 2/4/99 (bug fix) Changed postscript template to include a European
4304 character with an umlaut when determining font height. (stanton)
4306 2/4/99 (bug fix) If an image bitmap mask changed but ended up with the
4307 same XID, the GC failed to be updated and so the new mask was
4310 2/4/99 (bug fix) Changed so focus window is always set if -force is
4311 specified. This fixes the problem on Windows where Tk does not
4312 activate the window if it already has focus. (stanton)
4314 2/4/99 (bug fix) Fixed so errors in console eval are reported
4315 properly. Eliminated duplicate result messages. (stanton)
4317 2/4/99 (bug fix) Under Windows, changed so toplevels that aren't
4318 resizable don't have resize handles and the zoom box is disabled. (stanton)
4320 2/4/99 (bug fix) Changed to cancel the mouse timer when a user
4321 initiated move/resize loop begins on Windows. (stanton)
4323 2/4/99 (configure change) TK_LD_SEARCH_FLAGS was set incorrectly if
4324 SHLIB_LD_LIBS='${LIBS}', and shared linking is performed through the C
4325 compiler. Systems affected are Linux, MP-RAS and NEXTSTEP, but also
4326 with gcc on many more systems.
4328 2/4/99 (bug fix) Changed some EXTERN declarations to extern since they
4329 are not defining exported interfaces. This avoids generating useless
4330 declspec() attributes and makes the Windows makefile simpler. (stanton)
4332 2/4/99 (bug fix) Changed so keyboard shortcuts will only be found in
4333 the current toplevel. Previously, they might be found in menus
4334 attached to other toplevels that might not even be mapped. (stanton)
4335 *** POTENTIAL INCOMPATIBILITY ***
4337 2/4/99 (bug fix) Changed to treat zero width lines in the canvas like
4338 they have width 1 for purposes of selection. (stanton)
4340 2/4/99 (bug fix) Added a workaround for a bug in GetTextExtentExPoint
4341 on Win NT 4.0/Japanese that cause a crash in some cases. (stanton)
4343 2/4/99 (bug fix) Fixed uninitialized memory access bug in Unix send
4346 ----------------------------------------------------------
4347 Changes for Tk 8.0 go above this line.
4348 Changes for Tk 8.1 go below this line.
4349 ----------------------------------------------------------
4351 1/16/98 (new feature) Tk now supports international characters sets:
4352 - Font display mechanism overhauled to display Unicode strings
4353 containing full set of international characters. You do not need
4354 Unicode fonts on your system in order to use tk or see international
4355 characters. For those familiar with the Japanese or Chinese patches,
4356 there is no "-kanjifont" option. Characters from any available fonts
4357 will automatically be used if the widget's originally selected font is
4358 not capable of displaying a given character.
4359 - Textual widgets are international aware. For instance, cursor
4360 positioning commands would now move the cursor forwards/back by 1
4361 international character, not by 1 byte.
4362 - Input Method Editors (IMEs) work on Mac and Windows. Unix is still in
4365 7/7/97 (new feature) The send command now works for Microsoft
4366 Windows. It is implemented using Dynamic Data Exchange, and a new
4367 command, dde, allows Tk to send more generic DDE commands to other
4370 11/3/97 (new feature) Major overhaul of code that manages configuration
4371 options to use Tcl_Obj structures instead of strings:
4372 - There is a new set of procedures including Tk_CreateOptionTable,
4373 Tk_InitOptions, and Tk_SetOptions, which replace Tk_ConfigureWidget
4374 and related procedures. The old procedures are still available.
4375 The new procedures use a new format for configuration tables.
4376 See SetOptions.3 for more information.
4377 - There are new procedures Tk_AllocColorFromObj, Tk_GetColorFromObj,
4378 and Tk_FreeColorFromObj to manage colors using objects to hold the
4379 name of the color and cache the corresponding XColor pointer.
4380 There are similar procedures Tk_Alloc3DBorderFromObj,
4381 Tk_AllocBitmapFromObj, Tk_AllocCursorFromObj, Tk_AllocFontFromObj,
4382 and so on to manage borders, bitmaps, cursors, and fonts.
4383 - The old-style procedures such as Tk_GetColor and Tk_GetBitmap no
4384 longer take Tk_Uids for arguments; they just take strings.
4385 - Menus, labels, buttons, checkbuttons, and radiobuttons have been
4386 converted to use the new object-based configuration library.
4389 11/7/97 (improvement) Changed code referring to "interp->result" to call
4390 accessor functions like Tcl_SetResult().
4392 12/23/97 (fix) Fixed transparency and web optimized the palette of
4393 the images/ Tcl powered logos. (DL)
4395 12/16/97 (bug fix) Canvas and text "bind" subcommands generated an
4396 error with no message if called to fetch a binding that didn't exist.
4397 They now silently return without an error like the "bind" command. (SS)
4399 1/13/98 (bug fix) Keysyms for international characters were not being
4400 reported properly under Windows. (SS)
4402 ----------------- Released 8.1a1, 1/22/98 -----------------------
4404 2/4/98 (bug fix) Calling XFreeFontNames() twice if couldn't allocate
4407 2/10/98 (bug fix) Inlined prolog.ps in tkCanvPs.c to make it accessible
4408 from safe interpreters: canvas postscript now works in safe interps
4409 (like in tk8.0plugin). (DL)
4411 2/11/98 (bug fix) Windows "send" to a remote interp wasn't propagating
4412 $errorInfo correctly from the remote interp to the local invoking interp.
4415 2/11/98 (bug fix) Windows "send" should have accepted "--" to mean "no more
4418 2/11/98 (bug fix) Windows "send" was concatenating its arguments
4419 incorrectly (not consistent with "eval", "uplevel", or Unix "send"). (CCS)
4421 2/18/98 (bug fix) Macintosh radiobuttons and checkbuttons now color
4422 their backgrounds correctly under Appearance. The controls gadgets themselves
4423 however, remain the Theme colors. (JI)
4425 2/18/98 (improvement) The corner pixels that peek through around the
4426 rounded corners of the Mac button widget are now controlled by the
4427 -highlightbackground, rather than the -background option. (JI)
4429 2/18/98 (improvement) Implemented the intra-application Send on the
4432 2/18/98 (bug fix) Under X, a problem mapping from a fontStructPtr to an
4433 XLFD (no XA_FONT attribute) would lead to dereferencing NULL. (CCS)
4435 ----------------- Released 8.1a2, Feb 20 1998 -----------------------
4437 10/21/98 (bug fix) Tk_UnderlineChars did not handle UTF strings properly
4438 so underline indices were in bytes instead of characters. (stanton)
4440 11/19/98 (bug fix) Fixed menus and titles so they properly display
4441 Unicode characters under Windows. [Bug: 819] (stanton)
4443 11/24/98 (bug fix) Fixed a bunch of memory leaks in the Windows menu
4444 code. [Bug: 620] (stanton)
4446 11/25/98 (bug fix) Various small bug fixes: (stanton)
4447 - hidemargin option was not honored properly in menus [Bug: 859]
4448 - disabled menu entries were getting reenabled whenever the
4449 mouse passed over the entry [Bug: 860]
4450 - fixed deletion order bug where a crash would result if a
4453 11/30/98 (bug fix) The error result was getting lost when restoring
4454 configuration options in buttons. [Bug: 619] (stanton)
4456 12/8/98 (bug fix) The Windows clipboard was not correctly traslating
4457 multibyte characters. [Bug: 935] (stanton)
4459 ----------------- Released 8.1b1, Dec 11 1998 -----------------------
4461 1/29/99 (bug fix) Fixed bug in "grid forget" that failed to cancel
4462 pending idle handlers, resulting in a crash in a few odd
4465 2/4/99 (bug fix): Fixed uninitialized memory access in
4466 Tk_SetAppName. [Bug: 919] (stanton)
4468 2/4/99 (bug fix): Added a workaround for a bug in GetTextExtentExPoint
4469 on Win NT 4.0/Japanese. [Bug: 1006] (stanton)
4471 2/4/99 (bug fix): Changed so keyboard shortcuts for menus will only be
4472 found in the current toplevel. Previously, they might be found in
4473 menus attached to other toplevels that might not even be mapped.
4474 [Bug: 924] (stanton)
4476 2/4/99 (bug fix): Changed to treat zero width lines in the canvas like
4477 they have width 1 for purposes of selection. [Bug: 925] (stanton)
4479 2/4/99 (bug fix): TK_LD_SEARCH_FLAGS was set incorrectly if
4480 SHLIB_LD_LIBS='${LIBS}', and shared linking is performed through the C
4481 compiler. Systems affected are Linux, MP-RAS and NEXTSTEP, but also
4482 with gcc on many more systems. [Bug: 908] (stanton)
4484 2/4/99 (feature enhancement): Changed so windows that aren't resizable
4485 don't have resize handles and the zoom box is disabled on
4488 2/4/99 (bug fix): Fixed so errors in console eval are reported
4489 properly. Eliminated duplicate result messages. [Bug: 973] (stanton)
4491 2/4/99 (bug fix): Changed so focus window is always set if -force is
4492 specified. This fixes the problem on Windows where Tk does not
4493 activate the window if it already has focus. (stanton)
4495 2/4/99 (bug fix): If an image mask changed but ended up with the same
4496 XID, the GC failed to be updated and so the new mask was not
4497 used. [Bug: 970] (stanton)
4499 2/12/99 (new feature): Tk is now thread safe. You enable this by
4500 configuring with --enable-threads. Tcl must also be compiled with
4501 --enable-threads. See Tcl for more information about the threading
4504 2/25/99 (bug fix) Under Windows, wish can now inherit pipe handles on
4505 stdio so it is possible to use the wish executable in a command
4506 pipeline to capture the output of puts or read from the pipe with
4509 3/1/99 (bug fix) Under Windows, Tk was not properly handling focus and
4510 activation changes in some cases. (redman)
4512 3/10/99 (new feature) Tk now uses the new stub library feature in Tcl.
4513 The Tk library now contains no direct references to any symbols in
4514 Tcl. In addition, there is a new Tk_MainEx() function that takes an
4515 interpreter as an argument. See the Tcl documentation for more
4516 information about the stubs mechanism. (redman)
4518 3/14/99 (feature change) Test suite now uses "test" namespace to
4519 define the test procedure and other auxiliary procedures as well as
4521 - Global array testConfige is now called ::test::testConfig.
4522 - Global variable VERBOSE is now called ::test::verbose, and
4523 ::test::verbose no longer works with numerical values. We've
4524 switched to a bitwise character string. You can set
4525 ::test::verbose by using the -verbose option on the Tk command
4527 - Global variable TESTS is now called ::test::matchingTests, and
4528 can be set on the Tk command line via the -match option.
4529 - There is now a ::test::skipTests variable (works similarly to
4530 ::test::matchTests) that can be set on the Tk command line via
4532 - The test suite can now be run in any working directory. When
4533 you run "make test", the working directory is nolonger switched
4536 *** POTENTIAL INCOMPATIBILITY ***
4538 ----------------- Released 8.1b2, March 16, 1999 ---------------------
4540 3/23/99 (feature change) Test suite now uses "tcltest" namespace to
4541 define the test procedure and other auxiliary procedures as well as
4542 global variables. The previously chosen "test" namespace was thought
4543 to be too generic and likely to create conflits.
4545 *** POTENTIAL INCOMPATIBILITY ***
4547 3/26/99 [bug fix] Fixed bug reported by Bryan Oakley in the
4548 menubutton bindings. There was a false assumption that there was
4549 always a menu attached to the button. [Bug 1116] (surles)
4551 3/26/99 (feature change) Removed --enable-tcl-stub from the configure
4552 script. Linking Tk to Tcl stubs is causing too many problems when
4553 linking executables like wish. Until the Tk is a fully loadable
4554 extension, linking against the Tcl stubs is not supported in Tk.
4557 3/26/99 (feature change) --nameble-shared is now the default and builds
4558 Tk as a shared library; specify --disable-shared to build a static Tk
4560 *** POTENTIAL INCOMPATIBILITY ***
4562 3/29/99 (api change) Standardized text layout and font interfaces
4563 so they are consistent with respect to byte versus character
4564 oriented indices. The layout functions all manipulate character
4565 oriented values while the lower level measurement functions all
4566 operate on byte oriented values. (stanton)
4568 4/1/99 (bug fix) Image handlers are finalized before the font subsystem
4569 to fix crashes during finalization of complex widgets. (stanton)
4571 4/1/99 (feature change) Removed the send command on Windows. Moved
4572 the DDE basis of that command out to its own extension. The send
4573 implementation on top of DDE was causing Tk to lock up in some cases.
4576 4/5/99 (bug fix) Fixed handling of Unicode in text searches. The
4577 -count option was returning byte counts instead of character counts.
4579 4/5/99 (feature change) Cut and paste to an entry widget returns the
4580 selection instead of the widget contents, which can be different if the
4581 -show option is used to hide the display. (stanton)
4583 --------------- Released 8.1b3, April 6, 1999 ----------------------
4585 4/20/99 (compiler fix) changed definition of Status type to use a
4586 typedef instead of a #define to avoid conflicting with the cygwin win32
4589 4/22/99 (bug fix) Set the -translation and -encoding options to binary
4590 for image files. (redman)
4592 4/27/99 (bug fix) Changed to avoid the need for forward declarations in
4593 stub initializers. Added extern "C" blocks around stub table pointer
4594 declarations so the stubs can be used from C++ code. (stanton)
4596 --------------- Released 8.1 final, April 29, 1999 ----------------------
4598 5/7/99 (bug fix) Fixed bug wheretk_popup fails when called too
4599 quickly. [Bug: 2009] (stanton)
4601 5/18/99 (bug fix) Fixed clipboard code so it handles Unicode data
4602 properly on Windows NT and 95. [Bug: 1791] (stanton)
4604 5/19/99 (bug fix) Add extern "C" block around entire header file for
4605 C++ compilers to fix linkage issues. Submitted by Don Porter and Paul
4608 --------------- Released 8.1.1, May 25, 1999 ----------------------
4610 5/21/99 (bug fix) Fixed clipboard code to handle lack of CF_LOCALE
4611 information (from command.com). (stanton)
4613 6/1/99 (bug fix) Improved I18N selection support. COMPOUND_TEXT
4614 is converted to/from iso2022, and STRING is converted to/from
4615 iso8859-1. More work is needed. (stanton)
4617 6/3/99 (bug fix) Fixed selection code to handle Unicode data in
4618 COMPOUND_TEXT and STRING selections. [Bug: 1791] (stanton)
4620 6/16/99 (new feature) Changes to makefiles and configure scripts to
4621 support TEA specification. (wart)
4623 6/30/99 (bug fix) Removed deprecated functions, patch from Jan
4624 Nijtmans. [Bug 2080] (redman)
4626 6/30/99 (bug fix) Applied patch to allow Img extension to work with
4627 8.2, patch from Jan Nijtmans. [Bug 2068] (redman)
4629 6/30/99 (bug fix) Applied patch from Don Porter to prevent the Windows
4630 shutdown code from calling Tcl functions when the stub table has not
4631 been initialized in TkWinWmCleanup. [Bug: 2269] (redman)
4633 7/8/99 (bug fix) Changed TkWinChildProc to pass WM_WINDOWSPOSCHANGED
4634 through to DefWindowProc to make OpenGL sub-windows happpy. This
4635 allows Windows to generate the WM_SIZE and WM_MOVE messages. (stanton)
4637 --------------- Released 8.2b1, July 14, 1999 ----------------------
4639 7/16/99 (bug fix) Copy prolog.ps from the generic directory for
4640 install-libraries make target. (redman)
4642 7/22/99 (bug fix) Applied patch from Jeff Hobbs to fix
4643 library/menu.tcl. [Bug: 2425] (redman)
4645 7/22/99 (bug fix) Make install-sh have executable permissions before
4646 calling from the Makefile. [Bug: 2413] (redman)
4648 7/22/99 (bug fix) Block out sys/stat.h include with #if to allow
4649 extension writers to use the MetroWerks compiler on Windows.
4650 [Bug: 2385] (redman)
4652 7/29/99 (bug fix) Allow tcl to opn CON and NUL on Windows, moved check
4653 to Tk Console code instead. [Bug: 2393 2392 2209 2458] (redman)
4655 7/30/99 (bug fix) corrected the Windows build of threaded Tk from both
4656 sets of makefiles (nmake and gmake). (redman)
4658 7/30/99 (bug fix) Added XFillRectangle to stub table, patch from Jan
4659 Njitmans. [Bug: 2446] (hobbs)
4661 8/1/99 (bug fix) Wrapped #define of panic() inside #ifndef blocks to
4662 avoid compiler errors on Macintosh. Patch from Vince Darley.
4665 --------------- Released 8.2b2, August 5, 1999 ----------------------
4667 8/13/99 (Mac) Rearranged the projects in the tkMacProjects.sea.hqx so
4668 that the build directory is separate from the sources. Fixed bug in
4669 Tk_DrawChars(). (Jim Ingham)
4671 --------------- Released 8.2.0, August 17, 1999 ----------------------
4673 9/21/99 (bug fix) fixed 'wm deiconify' quirks on Windows. (hobbs)
4675 9/21/99 (bug fix) fix fg<>bg GC swap bug for canvas. [Bug: 2676] (hobbs)
4677 9/21/99 (config fix) fixed AIX config issues for Tk. (hobbs)
4679 9/24/99 (feature change) tk_dialog now uses {Times 12} by default. (hobbs)
4681 --- Released 8.2.1, October 04, 1999 --- See ChangeLog for details ---
4683 10/30/99 (bug fix) fixed XKeysymToKeycode to handle mapping of symbolic
4684 keysyms (Left, Home, ...) with event generate (hobbs)
4686 10/30/99 (bug fix) change tkEntrySeeInsert to avoid the use of a while loop
4687 that could eat CPU tremendously. Behavior of moving the cursor at the
4688 right edge changes slightly. [Bug: 3195] (hobbs)
4690 10/30/99 (bug fix) changed tkScrollButtonUp to check for existence of
4691 tkPriv(relief) in order to avoid spurious release events (hobbs)
4693 --- Released 8.2.2, November 04, 1999 --- See ChangeLog for details ---
4695 11/19/99 (bug fix) fixed expression error that could cause
4696 'malformed bucket chain' error in tkEntry.c. (hobbs)
4698 11/19/99 (bug fix) fixed Tk_NameOfColor (hobbs)
4700 --- Released 8.2.3, December 16, 1999 --- See ChangeLog for details ---
4702 1999-09-01 (feature enhancement) rewrote runtime libraries to use new
4703 Tcl functions where appropriate
4705 1999-10-28 (feature enhancement) added Img patch from Jan Nijtmans that
4706 makes the image command Tcl_Obj-based, adds support for binary -data args,
4707 adds alpha channel to images, adds GIF write capability (RLE). Binary
4708 compatability is maintained, and source level compatibility is retained
4709 with -DUSE_OLD_IMAGE. (nijtmans)
4711 1999-11-16 (feature enhancement) made listbox Tcl_Obj based, added
4712 -listvariable option and itemconfigure command to allow coloring
4713 individual items. (melski)
4715 1999-11-23 (feature enhancement) added TK_OPTION_DONT_SET_DEFAULT as an
4716 equivalent to TK_CONFIG_DONT_SET_DEFAULT (hobbs)
4718 1999-11-24 (feature enhancement) updated dialogs to use color icons on
4719 Unix, center properly over -parent. (hipp, hobbs)
4721 1999-12-01 (feature enhancement) added hooks into main() code to support
4722 "big" shells more easily. (redman)
4724 1999-12-02 (feature enhancement) converted Tk_DestroyCmd, Tk_LowerCmd and
4725 Tk_RaiseCmd to their ObjCmd equivalent.
4727 1999-12-12 (bug fix) fixed bug in TextSearchCmd for multibyte chars
4729 1999-12-13 (feature enhancement) added support for pointer warping via the
4730 event -warp option, added some items from Dash patch: canvas widget now
4731 Tcl_Obj-based, added Tk_CreateSmoothMethod, added support for <Quadruple>
4732 clicks, entry widget validation routines, new -state hidden in text
4733 widgets, new -state -active* -disabled* -offset options to canvas items
4734 (see man page for full docs). New features include dashed line support on
4735 the canvas, -elide support for TkMan, postscript printing of images and
4736 windows from the canvas. Binary compatibility is maintained with 8.2, and
4737 source level compatibility is kept by using -DUSE_OLD_CANVAS.
4738 (hobbs, nijtmans, et al)
4740 1999-12-16 (feature enhancement) added "bitstream cyberbit" to list of
4741 font fallbacks. (hobbs)
4743 1999-12-16 (feature enhancement) added new 'tk useinputmethods ...' command
4744 to provide support for disabling/enabling the use of XIM on X. This was
4745 previously all done at compile time, and always on. Now it is turned off
4746 by default, even when available, and the user must turn it on to use XIM
4748 *** POTENTIAL INCOMPATIBILITY ***
4749 user must add 'tk useinputmethods 1' to retain old style. (hobbs)
4751 1999-12-16 (feature enhancement) added proper support for -initialfile
4752 to tk_get*File, and made Unix version better match Windows file box
4753 that it was emulating. (hobbs)
4755 1999-12-16 (bug fix) removed necessity of 'update idle' before 'wm
4756 deiconify' on Windows. (mao)
4758 1999-12-16 (feature enhancement) added support for Windows system cursors
4759 to TkGetCursorByName (use -cursor @filename)
4761 1999-12-21 (bug fix) fixed lack of refresh for thin frames (darley)
4763 1999-12-21 (bug fix) fixed panic in Tk_CoordsToWindow to print error
4764 to stderr instead (for Tix) (hobbs)
4766 1999-12-21 (bug fix) fixed segv with scale widget when using -cursor (hobbs)
4768 --- Released 8.3b1, December 22, 1999 --- See ChangeLog for details ---
4770 2000-01-05 (bug fix) Applied fixes for unprotected arg passing through eval
4771 and after in Tk runtime code [Bug: 3943] (hobbs)
4773 2000-01-05 (bug fix) Applied fix for i18n problems with Mac clipboard
4776 2000-01-05 (feature change) removed the 8.3b1 introduced -state option
4777 for text tags, and documented -elide (-state hidden == -elide true) (hobbs)
4779 2000-01-12 (bug fix) fix Windows 'wm deiconify' to zoomed state [Bug: 2077]
4780 and fixed possible flashing of unmapped toplevel in deiconify [Bug: 3338]
4781 and fixed unwanted mapping of transient window [Bug: 572] (hobbs)
4783 2000-01-12 (feature enhancement) extended 'wm state' to accept a state
4784 to set for the toplevel, and added support for zoomed (maximized) state
4787 2000-01-12 (bug fix) Applied fix for cursor to not blink when entry or
4788 text widget was disabled [Bug: 1807] (hobbs)
4790 --- Released 8.3b2, January 13, 2000 --- See ChangeLog for details ---
4792 2000-01-20 (bug fix) fixed interpretation of consecutive ^ characters in
4793 grid command (melski)
4795 2000-01-20 (bug fix) fixed -select(bg|fg) class names in listbox (hobbs)
4797 2000-01-20 (bug fix) fixed handling of too few coords for line item type in
4800 2000-01-20 (bug fix) fixed dialog's association with parent (melski)
4802 2000-01-26 (bug fix) fixed handling of binary data for -data option to
4803 image create (melski)
4805 2000-01-26 (feature enhancement) improved GIF decoding speed by ~60%
4808 2000-01-26 (feature enhancement) added tk_chooseDirectory implementation
4809 for Unix and Mac (nelson, melski)
4811 2000-02-01 (bug fix) fixed resolution rounding problem in scale (porter)
4812 and fixed potential Unix seg fault due to use of ckfree instead of
4813 Tcl_EventuallyFree (hobbs)
4815 2000-02-01 (bug fix) fixed handling of negative dash values for canvas
4818 2000-02-01 (bug fix) fixed dialog lockup on Windows where once the native
4819 dialog disappeared, the parent window could end up locked up (hobbs)
4821 2000-02-03 (bug fix) fixed text dump to use char indices instead of byte
4824 2000-02-07 (bug fix) fixed handling of default extension in unix file
4827 2000-02-08 (bug fix) corrected windows symbol font use to restrict itself
4828 to 8-bit chars (kenny)
4830 2000-02-08 (feature enhancement) improved support for moving from the old
4831 style image C API to the new obj'ified one with new Tk_InitImageArgs
4832 command and stub'ing of image code. See docs for how to make the
4833 transition. (nijtmans)
4835 2000-02-08 (bug fix) fixed incorrect handling of CapsLock on Win9* and the
4836 use of dead keys on international keyboards (spjuth)
4838 2000-02-10 (bug fix) brought Mac back to building state, added support
4839 for Appearance Manager (ingham)
4841 2000-02-10 (feature enhancement) added support for buttons 4 && 5 as
4842 mousewheel style scrolling in listbox and text widget for Unix.
4844 --- Released 8.3.0, February 10, 2000 --- See ChangeLog for details ---
4846 2000-03-02 (bug fix) fixed crash in listbox when cursor was configure and
4847 then widget was destroyed (hobbs)
4849 2000-03-02 (feature enhancement) added %V substitution to entry widget
4850 validation to clarify type of validation occuring (hobbs)
4852 2000-03-07 (feature enhancement) added -disabledforeground/-state to labels
4855 2000-03-29 (config enhancement) improved build support for gcc/mingw on
4856 Windows (nijtmans, hobbs) and added RPM target (melski)
4858 2000-03-24 (bug fixes) numerous corrections for more correct Unix dialog
4861 2000-03-27 (bug fix) fixed mem leak in wm commands (hu)
4863 2000-03-31 (bug fix) correct initialization of Windows static builds and
4864 added Unicode aware open/save file dialogs on Windows (hobbs)
4866 2000-03 (bug fix) canvas: corrected support for transparency in dashed
4867 lines on Windows (nijtmans); added support for postscript generation of
4868 images on Windows, also fixing transparency printing (biancardi); corrected
4869 handling of configure options in non-empty canvas (melski)
4871 2000-04-07 (bug fix) correct font name length restriction that prevented
4872 the use of long named (>16 char) fonts on NT/2000 (hobbs)
4874 2000-04-07 (bug fix) fixed safe Tk to work in base cases (hobbs)
4876 2000-04-10 (bug fix) corrected Alt-Key event generation and handling of
4877 Alt-sequence Windows special char generation and (Control|Shift|Alt)_L/_R
4878 determination (melski)
4880 2000-04-10 (bug fix) correctly check state of parent when popping up
4881 bgerror dialog. (melski)
4883 2000-04-11 (feature enhancement) msgcat now searches up the namespace chain
4884 for a match instead of just in the local namespace (hershey)
4886 2000-04-12 (bug fix) corrected handling of Windows clipboard to allow for
4887 use of user-defined types within the Tk app (hobbs)
4889 2000-04-13 (feature enhancement) improved handling of shadow determination
4890 for 3D borders in very light/dark cases (hipp, melski)
4892 2000-04-13 (bug fix) correctly color separator bg in menus on Windows
4895 2000-04-14 (bug fix) improved handling of scale widget, reduced number of
4898 2000-04-17 (feature enhancement) made shift-selection more Windows-like
4899 (intuitive) in text widget (melski)
4901 2000-04-22 (bug fix) mac bug fixes, nav services handling (ingham)
4903 2000-04 more docs for public APIs (melski)
4905 --- Released 8.3.1, April 26, 2000 --- See ChangeLog for details ---
4906 2000-04 (doc updates) extended, updated docs (melski)
4908 2000-05-09 (feature change) removed WS_EX_TOOLWINDOW style bit for
4909 transient windows on Windows platforms, so that transients have
4910 full-size titlebars (melski)
4912 2000-05-09 (bug fix) fixed calling of takeFocus proc (nemethi)
4914 2000-05-11 (bug fix) corrected handling of 3DBorder, Cursor and Color
4915 objects on multiple screens (hobbs)
4917 2000-05-12 (feature enhancement) improved support for chars in 0-255
4918 range for bitmap ANSI fonts (spjuth, hobbs)
4920 2000-05-12 (widget enhancement) added support for -repeatdelay,
4921 -repeatinterval for command buttons; and -compound (image and text
4922 simultaneously) for labels, check-, radio-, and command buttons (melski)
4924 2000-05-14 (widget change) added "readonly" state for entries and
4925 changed behavior of "disabled" entries; added -readonlybackground
4926 option for entries (melski)
4927 *** THIS IS A BACKWARDS INCOMPATIBLE BEHAVIOR CHANGE ***
4929 2000-05-15 (feature enhancement) added [image inuse] command (melski)
4931 2000-05-15 (feature enhancement) added -nice option to [bell] command (duncan)
4933 2000-05-17 (widget enhancement) added -overrelief option for
4934 check/radio/buttons (melski)
4936 2000-05-26 (feature change) added support for new syntax in
4937 Tk_OptionSpec tables; if the database name for an option contains an
4938 embedded "." it indicates that the name contains an overriding window
4939 class specifier in addition to the database name, which allows widgets
4940 to perform queries for certain options as if they were options for a
4941 different widget class (melski)
4943 2000-05-28 (new widget) added spinbox widget (hobbs)
4945 2000-05-31 (feature change) replaced bgerror dialog with a new and
4946 improved one (fellows, melski)
4948 --- Released 8.4a1, June 6, 2000 --- See ChangeLog for details ---
4950 2000-05-15 (bug fix) changed wm deiconify from using idle callback to
4951 calling restack and focus code immediately. (hobbs)
4953 2000-07 (build cleanup) cleanup of defines in tkConfig.sh, and cleanup
4954 in make and configure files to better handle .rc files across
4957 2000-07 (build improvements) cleanup of the makefiles and configure scripts
4958 to correct support for building under gcc for Windows. (dejong)
4960 2000-08 (feature enhancements) for Windows, corrected drawing of separator
4961 menu entries, disable menu entries and the height for separator
4964 2000-08 (bug fix) fixed calling of takeFocus proc with arg bearing
4965 functions. (nemethi)
4967 2000-08 (bug fix) For text widgets, added a test for a NULL segment pointer
4968 when doing backwards searches for "", correct searching over elided chars,
4969 and corrected search combining -regexp and -nocase. (melski)
4971 2000-08 (bug fix) Corrected code for using 'place', cursors, colors and 3D
4972 borders on multiple screens simultaneously. (hobbs, hipp)
4974 --- Released 8.3.2, August 9, 2000 --- See ChangeLog for details ---
4976 2000-06-15 (new feature) [tk_getOpenFile ... -multiple] (melski)
4978 2000-06-29 (new feature) localization support in Tk dialogs (duperval,
4981 200-07-28 (new feature) -state option for listbox, better native color
4984 2000-08 (feature rewrites) Tcl_Obj'ified clipboard, message, tkwait,
4985 bindtags, grab. place, selection commands (melski)
4987 2000-08-24 (new feature) More correct GNU configure support (no more
4988 --enable-gcc) (dejong)
4989 *** POTENTIAL INCOMPATIBILITY ***
4991 2000-08-29 (bug fix) Corrected Windows menu indicator drawing (oberhumer)
4993 2000-09-01 (bug fix) Added tkPlatDecls.h to default install (melski)
4995 2000-09-17 (new feature) Added TK_OPTION_CUSTOM type, similar to
4996 TK_CONFIG_CUSTOM (melski)
4998 2000-09-29 (bug fix) Several fixes for multi-display uses of Tk (hipp, hobbs)
5000 2000-10-05 (new feature) Tk_CreateAnonymousWindow API to create anonymous
5001 Tk windows controllable from C (melski)
5003 2000-10-27 (new default behavior) [tk useinputmethods 1] is the default
5004 in tk.tcl, for users of XIM and "dead" keys (hobbs)
5006 2000-10-30 Improved support for static builds on Windows (gravereaux)
5008 * Added support for mingw (gcc on Windows), AIX-5 and Win64 builds
5011 * Improved error checking in Windows native dialogs (melski, hobbs)
5013 --- Released 8.4a2, November 3, 2000 --- See ChangeLog for details ---
5015 2001-04-04 (build improvements) redid Mac build structure (steffen)
5016 Corrected IRIX-5* configure (english). Added support for AIX-5 (hobbs).
5017 Added support for Win64 (hobbs).
5019 2001-04-04 (doc fixes) numerous doc corrections and clarifications.
5022 2001-04-04 (bug fix) corrected reseting of service mode to only occur when
5023 it was set (hedin, hobbs)
5025 2001-04-02 (bug fix) Improved tests on Windows for correctness.
5026 Checked for menu deletion before calling associated menu entry command.
5027 Fixed listbox, canvas and entry destruction to be more aware of current
5028 widget activity. (hobbs)
5030 2001-03-30 (feature enhancement) added support for changing IME on the fly
5031 in Windows (2000) (lam)
5032 (bug fix) handled the error case where a valid-looking but invalid
5033 identifier could be passed in certain event generate options causing a
5036 2001-03-29 (bug fix) corrected handling of drag-selection (dejong)
5038 2001-01-02 (feature enhancement) added Windows icon support in wm
5041 2000-10-27 (feature enhancement) made [tk useinputmethods 1] the default
5044 2000-10-18 (bug fix) Corrected rendering of 1-pixel wide stippled lines on
5045 Windows. Correct use of active- and disabledwidth values for displaying
5046 lines. Enhanced error handling in Windows native dialogs (melski)
5048 2000-09-29 (bug fix) corrected BadMatch errors when using Tk on multiple
5051 2000-08-18 (feature enhancement) Removed redundant call to DitherInstance
5054 --- Released 8.3.3, April 6, 2001 --- See ChangeLog for details ---
5056 2000-11-21 (new feature)[TIP 5] Tk_ClassProcs, Tk_SetClassProcs API (melski)
5058 2000-12-13 (performance enhancement)[403327] Tcl_Objs of type "double"
5059 are recognized in SetMMFromAny to speed up canvas coord calculations (hobbs)
5061 2001-01-02 (new feature)[TIP 8] [wn iconbitmap -default] on Windows (darley)
5063 2001-02-12 (new feature)[TIP #21] asymmetric padding in the pack and grid
5064 geometry managers (hipp)
5066 2001-05-21 (new feature)[TIP #11], -compound for [menubutton] widget (helfter)
5068 2001-06-03 (bug fix) corrected support for is10646 fonts on Unix, added a
5069 ucs-2be encoding (welch)
5071 2001-07-02 (bug fix) allowed tkwin to be Tcl_EventuallyFree'd in
5072 Tk_DestroyWindow so other widgets could register their use of it. Updated
5073 entry and listbox widgets to use this, correcting potential crashes. (hobbs)
5075 2001-08-01 (interface rewrite)[TIP 44] moved all private tk[A-Z]* commands and
5076 variables into the ::tk:: namespace (porter)
5077 *** POTENTIAL INCOMPATIBILITY ***
5079 * overhaul of configure scripts for cleaner standard support and support
5080 of mingw gcc on Windows. (mdejong)
5082 * improved tests to better handle results on variant systems (hobbs)
5084 * correct several minor Purify complaints (hobbs)
5086 --- Released 8.4a3, August 6, 2000 --- See ChangeLog for details ---
5088 2001-08-06 (new feature) added GNU (HURD) build support. (brinkman)
5090 2001-08-23 (new feature) added QNX-6 build support. (loverso)
5092 2001-08-24 (bug fix) correct several possible free memory reads and array
5093 bounds read errors reported by purify. (hobbs)
5095 2001-08-27 (new feature) added call to Tcl_SetMainLoop which enables Tk to
5096 be loaded interactively into tclsh and have the event loop kick in
5099 2001-08-28 (bug fix) fixed tk_chooseDirectory crash on Win95. (baker)
5101 2001-08-28 (bug fix) removed 2 second 'raise' delay seen by some Unix
5102 window managers. (hobbs, baker)
5104 2001-09-14 (bug fix) fixed memory leaks that occured if errors were
5105 thrown while initializing the channel for an image. (darley)
5107 2001-09-20 (new feature) --enable-64bit support was added for HP 11 when
5108 using the native compiler.
5110 2001-10-03 (new feature) finalized Win64 support with latest RC1 release
5111 and SDK. (hobbs, stacy)
5113 2001-10-04 (new feature) added enhanced bgerror dialog from Hipp. (hobbs)
5115 2001-10-09 (new feature) added brace/quote matching and file/path/var
5116 expansion to the Win/Mac console. (hobbs)
5118 2001-10-17 (bug fix) fixed file filtering in the motif file dialog (nelson)
5120 2001-10-17 (bug fix) updated Mac build support. (steffen)
5122 --- Released 8.3.4, October 19, 2001 --- See ChangeLog for details ---
5124 2001-08-14 (bug fix)[450545] Tk's Tcl_ObjTypes now registered (fellows)
5126 2001-08-20 (performance enhancement) internal use of a "window" Tcl_ObjType
5129 2001-08-20 (performance enhancement) Obj-ified [grid] and [pack] (spjuth)
5131 2001-09-26 (new feature)[TIP 18] add labels to frames, update geometry
5134 2001-09-30 (new feature)[TIP 37] [grid {row|column}configure -uniform] (spjuth)
5136 2001-10-12 (new feature)[TIP 63] [$menu add ... -compound] (helfter)
5138 2001-10-18 (build improvement) no more warnings about building with
5139 thread-enabled Tcl (hobbs)
5141 2001-11-10 (build improvement) new make target 'make gdb' (dejong)
5143 2001-11-12 (new feature)[TIP 26] simple undo/redo in text widget (callewaert)
5145 2001-11-12 (build improvement) revitalized makefile.vc (gravereaux)
5147 2001-11-17 (visual change) default button size on Windows changed to
5148 conform to Windows style (hobbs)
5149 **** POTENTIAL VISUAL INCOMPATABILITY ****
5151 2001-12-03 (new feature)[TIP 74] [wm stackorder] (dejong, steffen)
5153 2001-12 (new feature) more use of Unicode in native widgets on Windows (hobbs)
5155 2001-12-18 (bug fix)[413735] event-click-drag-1.2 test failure (porter)
5157 2001-12-28 (new feature) On Windows, buttons accept negative widths, meaning
5158 minimum size, enabling native L&F (hobbs)
5160 2002-01 (bug fix) updates for CONST-ification in Tcl API, notably
5161 Tcl_ParseArgv. Use -DUSE_NON_CONST to suppress source incompatibility
5162 **** POTENTIAL INCOMPATABILITY ****
5164 2002-01-31 (bug fix)[508988] logic error in menu cloning (helfter)
5166 2002-02-01 (new feature)[TIP 14] [$photo transparency] (fellows)
5168 2002-02-01 (bug fix)[511956] C99 spec: avoid 'bool' as a variable name (hobbs)
5170 2002-02-19 (bug fix) updates to image code calls of Tcl_Seek/Tcl_Tell to
5171 address TIP 72 changes (64-bit) in Tcl (fellows)
5173 2002-02-21 (new widget)[TIP 41] added [panedwindow] (hobbs)
5175 2002-02-22 (new feature) 64-bit support for xlc compiler on AIX-4 (hobbs)
5177 2002-02-25 (bug fix)[503772] blinking cursor fix in [text] (hobbs)
5179 2002-02-25 (bug fix)[503613] [listbox] handling of invalid listvar (hobbs)
5181 2002-02-25 (feature change)[493145] mirror B2 bindings to B3 on Windows (hobbs)
5183 * (updated demos) many updates to show new features (fellows)
5185 --- Released 8.4a4, March 5, 2002 --- See ChangeLog for details ---
5187 2002-03-20 (feature change)[TIP 27][532644] Constness changes (porter)
5189 2002-03-21 (bug fix)[528441] Change in optimization flags for windows
5192 2002-04-08 (bug fix) MSL stdin/out fixes prevent crash on exit (steffen)
5194 2002-04-12 (bug fix) Centralized closing of display, mem-leak fixes (hobbs)
5196 2002-04-22 (bug fix)[223739] More robust FP comparisons for odd
5197 architectures (fellows)
5199 2002-04-22 (bug fix)[541999] Fixed posible overun of 16-bit size limit
5200 of X windows in drawchars (hobbs,bonfield)
5202 2002-04-22 (bug fix)[541849] ButtonLeave implementation corrected (hobbs)
5204 2002-04-24 (new feature) TCLTK_NO_LIBRARY_TEXT_RESOURCES check added,
5205 allowing disable of inclusion of tk lib into resources (steffen)
5207 2002-05-07 (bug fix)[553208] Makefile/Win fix (TCLDIR, INSTALLDIR
5208 forward slash trouble resolved) (gravereaux)
5210 2002-05-20 (bug fix) msgcat added to resources, fixed setup of bindings
5211 on startup (steffen, porter)
5213 2002-05-21 (bug fix) Build system fix, SC_ENABLE_SHARED before
5214 SC_CONFIG_CFLAGS for usage for SHARED_BUILD (dejong)
5216 2002-05-26 (bug fix)[548765] Fixed -value "" redraw error for variable
5217 created by radiobutton (spjuth)
5219 2002-05-27 (feature change) [wm transient .t .t] now raises an error (dejong)
5220 *** POTENTIAL INCOMPATIBILITY ***
5222 2002-06-10 (new feature)[566605] Utilities for -underline, ampersand magic
5225 2002-06-12 (feature change) A transient toplevel now mirrors state changes
5226 in the master. (dejong)
5227 *** POTENTIAL INCOMPATIBILITY ***
5229 2002-06-13 (bug fix) Fixed handling of cursor specs across platforms to
5230 be consistent. (fellows)
5232 2002-06-14 (new feature) [TIP 98] Enhanced photo compositing (fellows)
5233 *** POTENTIAL INCOMPATIBILITY ***
5235 2002-06-14 (bug fix) Removed references to matherr (kupries)
5237 2002-06-14 (new feature) [TIP 47] Reorganized Tk to allow usage in writing
5240 2002-06-14 (new feature) [TIP 84] Full motion events upon request (hobbs)
5242 2002-06-17 (new feature) [TIP 82] -offrelief option for check/radiobutton
5245 2002-06-17 (enhancement) Added msg catalog for UK English. (porter)
5247 2002-06-17 (new feature) [TIP 96] Added caret handling (hobbs)
5249 2002-06-19 (new feature) [TIP 48] Added style engine (bonnet)
5251 2002-06-19 (bug fix)[570902] Reorganized Tk shutdown to work around bugs in
5254 2002-06-20 (new feature) [TIP 94] Added -activestyle for [listbox] (hobbs)
5256 2002-06-21 (new feature) [TIP 104] generalized text undo/redo (callewart,
5259 2002-06-22 (new feature) [TIP 95] Added [wm attributes] command (hobbs)
5261 2002-06-22 (new feature) [TIP 93] enhanced get/delete to accept accept
5262 multiple range pairs (hobbs)
5264 --- Released 8.4b1, July 5, 2002 --- See ChangeLog for details ---
5266 2002-07-11 (bug fix) some memory allocation failures now result in
5267 error messages rather than panic (fellows)
5269 2002-07-15 (platform support) Borland makefile on Windows (gravereaux,giese)
5271 2002-07-16 (bug fix)[220800,581627] icon reading (darley)
5273 2002-07-19 (bug fix) Postscript generation on Win2K (hipp)
5275 2002-07-22 (bug fix)[570764,568278] transient windows (dejong)
5277 2002-07-24 (bug fix)[581560] canvas memory management (hobbs)
5279 2002-07-24 (bug fix)[584691] focus ring on compound button (hobbs)
5281 2002-07-25 (feature enhancement)[564521] Obj-ified [wm] (spjuth)
5283 2002-08-04 (new feature)[589853][TIP 27] Tk interfaces are now fully
5284 CONST-ified. Use the symbols USE_NON_CONST or USE_COMPAT_CONST
5285 to select interfaces with fewer changes.
5286 *** POTENTIAL INCOMPATIBILITY ***
5288 2002-08-07 (bug fix)[578654] bezier curves on canvas (hobbs)
5290 2002-08-07 (platform support)[468139] native directory browser on Win (hobbs)
5292 2002-08-07 (bug fix)[467524] fixed -from handling for gifs (obermeier)
5294 2002-08-08 (bug fix)[592201] wm transient panic (english,dejong)
5296 Rewrote Tk test suite to use tcltest package.
5298 --- Released 8.4b2, August 9, 2002 --- See ChangeLog for details ---
5300 2002-08-20 (bug fix) tk.h checks for matching tcl.h version (porter)
5302 2002-08-27 (bug fix)[582457] toolbar button bindings (hipp)
5304 2002-08-31 (platform support)[602770] Mac OS X / Aqua port (steffen)
5306 2002-09-02 (bug fix)[565485] button height on windows (hobbs)
5308 2002-09-02 (new feature)[TIP 108] new comand [tk windowingsystem] (steffen)
5310 2002-09-02 (new feature)[TIP 107][601518] [raise] is non-blocking (english)
5312 2002-09-02 (platfrom support) 64-bit compile on HP-11 (martin)
5314 --- Released 8.4.0, September 10, 2002 --- See ChangeLog for details ---
5316 2002-09-15 (bug fix)[570902] Use PEEK_XCLOSEIM to examine the input context
5317 queue before invoking XCloseIM. Generate an assert if there is an input
5318 context that has not been freed. (dejong)
5320 2002-09-18 (platform support) Updated support for compiling with Cygwin and
5321 either mingw or gcc. (khan, howell, dejong)
5323 2002-09-30 (bug fix)[614650] Correct incremental transfers of UTF8_STRING
5324 selections (fellows)
5326 2002-10-02 (bug fix)[616791, 614474] don't blink the cursor unless it is
5329 2002-10-02 (bug fix)[607390, 617446] check if the entry is being deleted
5330 before handling an associated textvariable. (hobbs)
5332 2002-10-08 (bug fix)[616589] leave the DestroyPanedWindow proc to free the
5335 2002-10-08 (bug fix)[588831] Ignore event if we are focusing into a dead
5338 2002-10-09 (bug fix)[619544] Only error-out creating an image if we fail to
5339 allocate a non-empty buffer (fellows)
5341 2002-10-09 (build support) all --enable-symbols to take the enhanced
5342 options yes|no|mem|all. (hobbs)
5344 2002-10-10 (feature enhancement) added support for generating ps for
5345 embedded widgets on canvases on Windows (hobbs)
5347 2002-10-10 (bug fix)[621241] The grid size was not updated properly when
5348 removing a widget from a grid (forssen)
5350 2002-10-16 (bug fix)[616988] macosx fix to accelerators shown in menus
5351 with non-alphanumeric keys. (darley)
5353 2002-10-15 (platform support) Correct AIX-5 ppc and 4/5 64-bit build flags.
5354 Correct HP 11 64-bit gcc building. (martin, hobbs)
5356 2002-10-17 (bug fix)[624974] fix arg handling for missing image create
5357 photo -format or -data options (hobbs)
5359 2002-10-17 (bug fix)[624732] In ControlUtfProc, properly return the number
5360 of bytes consumed (hobbs)
5362 2002-10-22 (platform support)[624509] On macosx, add embedded framework
5363 dirs to tcl_pkgPath: @executable_path/../Frameworks and
5364 @executable_path/../PrivateFrameworks (if they exist), as well as the dirs
5365 in DYLD_FRAMEWORK_PATH (if set). Added 'rapp' apple event handler. Added
5366 TEXT document type to plist so that files can be dragged onto Wish Shell.
5367 Added private proc TkMacOSXUseAntialiasedText() to enable/disable quickdraw
5368 text antialiasing where available, default is enabled. Added a linked
5369 boolean ::tk::mac::antialiasedtext with write trace to allow control of
5370 antialiasing from tcl. (steffen)
5372 --- Released 8.4.1, October 22, 2002 --- See ChangeLog for details ---