home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / languages / tcl / tk3.3b1 / changes next >
Encoding:
Text File  |  1993-07-09  |  47.2 KB  |  1,084 lines

  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
  3. are marked specially.
  4.  
  5. 3/16/91 (bug fix) Modified tkWindow.c to remove Tk's Tcl commands from
  6. the interpreter when the main window is deleted (otherwise there will
  7. be dangling pointers to the non-existent window).
  8.  
  9. 3/16/91 (bug fix) Modified tkColor.c not to free black or white colors:
  10. some X servers get upset at this.
  11.  
  12. 3/18/91 (bug fix) Modified tkShare.c to fix bug causing "DeleteGroup
  13. couldn't find group on shareList" panic.
  14.  
  15. 3/18/91 (bug fix) Several changes to tkListbox.c and tkScrollbar.c to
  16. handle listboxes (and scrollbars) with zero total entries in them.
  17.  
  18. 3/22/91 (bug fix) Fixed a few ='s in tkListbox.c that should be ==.
  19.  
  20. 3/22/91 (bug fix) Fixed error in main.c that caused BadWindow errors
  21. in some cases where wish scripts invoke "destroy ."
  22.  
  23. 3/23/91 (new feature) Added Tk_CancelIdleCall to remove Tk_DoWhenIdle
  24. handler.
  25.  
  26. 3/23/91 (bug fix and new feature) Added -name option to main.c, made
  27. it more clever about choosing name (was always using the name "wish"
  28. on most Unix systems).
  29.  
  30. 3/23/91 (new feature) Added TK_CONFIG_STRING option to Tk_ConfigureWidget,
  31. used it to malloc strings for various widget options that used to be
  32. Tk_Uid's (e.g. button text, message strings, etc.).  Eliminates core
  33. leaks when values change in continuous non-repeating fashion.
  34.  
  35. 3/29/91 (new feature) Added Tk_Preserve, Tk_Release, and
  36. Tk_EventuallyFree procedures to help manage widget records and avoid
  37. premature memory free-ing.
  38.  
  39. 4/4/91 (bug fix) Fixed problem in tkWm.c where top-level window geometry
  40. wasn't tracking correctly when wm-induced size change also changed window
  41. position (e.g. menus wouldn't be displayed at the right places).
  42.  
  43. 4/5/91 (new feature) Added "invoke" option to widget command for buttons,
  44. check buttons, and radio buttons.
  45.  
  46. 4/5/91 (new feature) Added "unpack" option to "pack" command.
  47.  
  48. 4/5/91 (bug fix) Changed tkPack.c to use new Tk_Preserve code and be
  49. more careful about window deletions that occur while repacking is in
  50. progress.
  51.  
  52. 4/6/91 (bug fix) Major overhaul of deletion code in all widgets to use
  53. Tk_Preserve and Tk_Release.  Should fix many problems.
  54.  
  55. 4/6/91 (bug fix) Changed "winfo children" to generate correct lists
  56. when child names have embedded spaces.
  57.  
  58. 4/6/91 (new feature) Added "screenheight" and "screenwidth" options to
  59. "winfo".
  60.  
  61. 4/18/91 (bug fix) Binding mechanism didn't correctly handle very long
  62. %-substitutions in commands (e.g. long path names) and caused memory
  63. to be overwritten.  Modified tkBind.c to fix.
  64.  
  65. ---------------------- Release 1.1, 4/18/91 -------------------------
  66.  
  67. 4/19/91 (bug fix) Inconsistent ICCCM handling of coordinates of reparented
  68. windows causes windows to gradually walk south when moved or resized.
  69. Fixed tkWm.c to patch around the problem.
  70.  
  71. ---------------------- Release 1.2, 4/24/91 -------------------------
  72.  
  73. 4/26/91 (new feature) Added -geometry and -display switches to wish.
  74. Also wrote wish manual entry.
  75.  
  76. 5/3/91 (bug fix) Fixed bug in tkListbox.c that caused garbage to appear
  77. at right edge of window when strings were to large to fit in window.
  78.  
  79. 5/3/91 (bug fix) Fixed bug in tkListbox.c where topIndex wasn't getting
  80. updated when elements were deleted:  tended to cause errors in
  81. communication with scrollbars.
  82.  
  83. 5/16/91 (bug fix) Fixed bug in tk3d.c, which caused core dumps when
  84. consecutive points in a polygon were the same (happened with some
  85. configurations of radio buttons, for example).
  86.  
  87. 5/16/91 (bug fix) Fixed main.c to allow stdin to be redirected.
  88.  
  89. 6/1/91 (bug fix) Make sure that pointers are never used after being
  90. freed.
  91.  
  92. 6/15/91 (bug fix) Fixed bug in tkBind.c that caused current binding
  93. values to not always be printed correctly.
  94.  
  95. 6/15/91 (bug fix) Make sure that interpreters are always unregistered
  96. when their main windows are deleted, and make wish delete the main
  97. window before exiting.
  98.  
  99. 8/21/91 (misfeature correction)  Automatically set source of window
  100. position to "user" in "wm geometry" command, unless it has been
  101. explicitly set to "program".
  102.  
  103. 9/5/91 (bug fix) Modified option code to accept '#' as a comment
  104. character in .Xdefaults files, in addition to '!'.
  105.  
  106. 9/10/91 (misfeature correction) Changed binding mechanism so that
  107. numeric %-sequences are output in decimal instead of hex.
  108.  
  109. 9/19/91 (bug fix) Fixed bug in Tk_DoOneEvent(1) where it wasn't
  110. checking files and X connections properly so it missed events.
  111.  
  112. 10/6/91 (new feature) Reorganized tkBind.c to provide generic "binding
  113. table" structure, which can be used to create bindings on items in
  114. canvases as well as windows.
  115.  
  116. 10/6/91 (new feature) Upgraded buttons and menus to use new tracing
  117. code in Tcl 6.0.  Allows radio buttons and check buttons to both set
  118. and clear themselves when associated variable changes.
  119.  
  120. 10/17/91 (bug fix) Fixed 2 bugs in listboxes: accidentally advanced the
  121. selection when new entries were inserted in the listbox after the location
  122. of the selected item(s), and goofed up on redisplay if selected item
  123. was deleted and then selection was immediately lost.
  124.  
  125. 10/27/91 (bug fix) "pack unpack" wasn't telling Tk that it no longer
  126. manages window;  this led to core dumps in some situations.
  127.  
  128. 10/31/91 (reorganization) Renamed manual entries so that they are no
  129. more than 14 characters in length.
  130.  
  131. 10/31/91 (reorganization) Changed tk.h and tkInt.h so that tkInt.h
  132. doesn't needed to be included by tk.h.
  133.  
  134. 11/3/91 (portability improvement) Eliminated use of "class" as a variable
  135. name, since it's a reserved word in C++.
  136.  
  137. 11/7/91 (reorganization) Many changes to upgrade for Tcl 6.1 including
  138. use of Tcl hash tables instead of separate "Hash_" module.  The "lib"
  139. subdirectory is no longer needed in Tk.
  140.  
  141. ---------------------- Release 1.3, 11/7/91 -------------------------
  142.  
  143. 11/24/91 (bug fix) Fixed bug causing occasional errors if existing bindings
  144. are modified (FindSequence in tkBind.c forget to set *maskPtr).
  145.  
  146. 11/24/91 (bug fix) Used wrong hash table in Tk_GetColorByValue.  Could
  147. cause new entries to get created unnecessarily.
  148.  
  149. 12/2/91 (bug fix) Changed "bind" code to put backslashes in front of
  150. special characters (e.g. [ or \) that appear in %-replacements, so that
  151. they can be parsed cleanly.
  152.  
  153. 12/10/91 (bug fix) Manual entries had first lines that caused "man" program
  154. to try weird preprocessor.  Added blank comment lines to fix problem.
  155.  
  156. 1/2/92 (documentation cleanup) Changed manual entries for Tk_GetBitmap
  157. and the like to make it more clear that the argument must be a Tk_Uid
  158. and not a string.
  159.  
  160. 1/2/92 (bug fix) Fixed problem where scrollbars that were very short or
  161. very narrow (too small to hold both arrows) could cause negative values
  162. in calls to XClearArea, which crashed some servers.
  163.  
  164. 1/2/92 (bug fix) Fixed bug in TkMeasureChars occurring when maxChars
  165. is 0.  Occasionally affected things like message window geometry.
  166.  
  167. 1/3/92 (new feature) Added procedures Tk_GetJustify, Tk_GetAnchor,
  168. Tk_GetCapStyle, and Tk_GetJoinStyle, plus support for these things
  169. in Tk_ConfigureWidget.
  170.  
  171. ---------------------- Release 1.4, 1/10/92 -------------------------
  172.  
  173. 1/12/92 (bug fix) TkMenubutton.c wasn't cleaning up mbPtr->varName
  174. properly during menubutton cleanup if an error occurred during
  175. menubutton creation.
  176.  
  177. 1/19/92 (bug fix) Fixed off-by-one bug in tkListbox.c that caused
  178. scrollbars to display a slider that was too large.
  179.  
  180. 2/10/92 (bug fix) Tk_CreateFileHandler didn't correctly handle case
  181. where new mask was specified for existing handler.
  182.  
  183. 2/13/92 (bug fix) Tk_DeleteAllBindings wasn't correctly removing
  184. bindings from the pattern table:  only did the removal for the
  185. first pattern in a pattern list.
  186.  
  187. 2/15/92 (new feature) Added procedures Tk_DefineBitmap and
  188. Tk_SizeOfBitmap.  Tk_GetBitmapFromData is now considered obsolete
  189. and probably shouldn't be used anymore.  Tk_GetBitmapFromData
  190. is now implemented by calling Tk_DefineBitmap and Tk_GetBitmap.
  191.  
  192. 2/15/92 (new feature) Added "curselection" and "select clear" options
  193. to widget command for listboxes.
  194.  
  195. 2/15/92 (new feature) Added Tk_3DBorderColor procedure.
  196.  
  197. 2/17/92 (relaxed limitations) Changed scrollbars so they no longer limit
  198. the slider position to lie within the object's range:  can scroll off the
  199. end of an object, if the object permits it.  Changed listboxes and
  200. entries to explicitly prevent viewing off the ends.  Also relaxed
  201. listbox index checks so that out-of-range indices are automatically
  202. adjust to fit within the listbox range.
  203.  
  204. 2/19/92 (bug fix) tkWindow.c tended to leave half-created windows around
  205. if a new window's name was found to be in use already.  Fixed to clean
  206. them up.
  207.  
  208. 2/22/92 (new feature) Added -anchor, -bitmap, -height, -textvariable,
  209. -width options to labels, buttons, check buttons, menu buttons, and radio
  210. buttons.  This means that (a) size can be controlled better, (b) bitmaps
  211. can be displayed in any buttons, (c) the position of the text within the
  212. button can be controlled, and (d) a button can be made to display the value
  213. of a variable, continuously updating itself.  Also changed -selector option
  214. so that if it's specified as an empty string then no selector is drawn
  215. for the button.
  216.  
  217. 2/22/92 (new feature) Changed menus to support bitmaps in menu entries:
  218. added new -bitmap option for entries.
  219.  
  220. 2/26/92 (bug fix) "after" command, when invoked with just one argument,
  221. called Tk_Sleep rather than registering a timer handler and looping on
  222. Tk_DoOneEvent.  As a result, it caused the application to become non-
  223. responsive to X events during the sleep.  Changed to use a Tk_DoOneEvent
  224. loop so that it is responsive.
  225.  
  226. 2/26/92 (bug fix) Tk's main program didn't map the main window until
  227. after the startup script returned.  Changed to map the window as a
  228. do-when-idle handler, so that scripts can cause the window to be
  229. mapped immediately with a call to "update" or "after".
  230.  
  231. 2/28/92 (bug fix) "wm withdraw" wasn't working if invoked before window
  232. was originally mapped:  window got mapped anyway.  Fixed so that the
  233. window doesn't get mapped as long as it's withdrawn.
  234.  
  235. 2/29/92 (new feature) Can use "focus none" to clear input focus.
  236.  
  237. 2/29/92 (bug fix) Fixed tkEvent.c to generate SubstructureNotify events
  238. properly.  These weren't being generated previously.
  239.  
  240. 2/29/92 (bug fix) Fixed entries so that newline characters can be properly
  241. displayed (as `\x0a').  Had to change interface to TkDisplayChars in order
  242. to do this (added flags argument).
  243.  
  244. 2/29/92 (bug fix) Change Tk not to update size and position of top-level
  245. windows directly during calls like Tk_ResizeWindow.  Instead, wait until
  246. actual event is received.  This makes updates happen at same time as
  247. callbacks.
  248.  
  249. 3/6/92 (bug fix) TkMenubutton.c was dumping core when a menubutton was
  250. pressed at a time when there was no associated menu for the button.
  251.  
  252. 3/6/92 (new feature) Added Tk script library directory with official
  253. Tk initialization file "tk.tcl".  Other procedures used by Tk are in
  254. other files.  Tk procedures and variables all have names starting
  255. with "tk_".  Also added Wish startup script "wish.tcl", which sources
  256. both the Tk and Tcl startup scripts.  This means that things like
  257. auto-loading and abbreviation expansion are now available in wish.
  258. Added new variables tk_library, tk_priv, and tk_version.
  259.  
  260. 3/6/92 (new feature) It's now possible to set bindings for whole
  261. classes by using the class name in the bind command.  For example,
  262. "bind Button <Enter> {puts stdout Hi!}" will cause a mesage to be
  263. printed whenever any mouse button is entered.  Can also use "all"
  264. to set bindings for all widgets.  Widget-specific bindings override
  265. class bindings which override "all" bindings.
  266.  
  267. 3/6/92 (reorganization) Changed buttons (all flavors) and listboxes to
  268. eliminate all hard-wired behavior.  Instead, default behavior is set
  269. by class bindings in tk.tcl.  Also set up class bindings for menus,
  270. menubuttons, and entries, which previously had no default behavior at
  271. all.  Scrollbars and scales still have hard-wired behavior that can't
  272. be overridden.
  273.  
  274. 3/7/92 (look-and-feel change) Changed listboxes and entries and menus
  275. to use button 2 for scanning instead of button 3.  This is more consistent
  276. with the official Motif use of button 2 for dragging.
  277.  
  278. 3/10/92 (new features) Added more options to "winfo" command:  screencells,
  279. screendepth, screenmmheight, screenmmwidth, and screenvisual.
  280.  
  281. 3/13/92 (bug fix) Event sharing mechanism (tkShare.c) wasn't checking
  282. to see whether window was mapped before sharing events with it.
  283.  
  284. 3/16/92 (bug fix) Tk_SetInternalBorderWidth was passing wrong window to
  285. geometry-management procedures, causing core-dumps when menu buttons
  286. had their border widths changed.
  287.  
  288. 3/16/92 (bug fix) Menus were setting their geometry directory rather
  289. than using Tk_GeometryRequest mechanism.
  290.  
  291. 3/17/92 (new feature) Added -cursor option to all widgets to set the
  292. active cursor for the widget.  Also added TK_CONFIG_ACTIVE_CURSOR
  293. configure type. 
  294.  
  295. 3/18/92 (new feature) Implemented generalized screen coordinates to
  296. allow resolution-independent specification in many cases (but pixel-
  297. based coordinates are still OK).  Added Tk_GetScreenMM(),
  298. Tk_GetPixels(), new configure types TK_CONFIG_SCREEN_MM and
  299. TK_CONFIG_PIXELS.  Changed widgets to use this new configure types
  300. wherever possible (a few of the more complex cases still haven't
  301. been taken care of yet).  Added "pixels" and "fpixels" options to
  302. "winfo" command.
  303.  
  304. 3/18/92 (new feature) First cut at canvas widgets is done and part of
  305. the official Tk now.  Canvases display text and structured graphics,
  306. and allow you to bind commands to events related to the text and
  307. graphics.
  308.  
  309. 3/21/92 (new feature) Added new "place" command.  It implements a
  310. new geometry manager that provides fixed placement, rubber-sheet
  311. placement, and combinations of the two.  Eliminated the commands
  312. "move", "resize", and "map" that were provided by main.c but never
  313. officially supported;  the placer provides all of this functionality.
  314.  
  315. 3/23/92 (bug fix) Fixed bug in tkWm.c where top-level windows were
  316. occasionally not being given the right size.  The problem occurred
  317. when a string of resizes happened all in a row (such as deleting all
  318. the windows in an application and then recreating them).
  319.  
  320. 3/23/92 (new feature) Added Tk_CoordsToWindow procedure and
  321. "winfo containing" command.  These may be used to locate the window
  322. containing a given point.
  323.  
  324. 3/28/92 (new feature) Added "-exportselection" option to listboxes,
  325. so that listbox selection need not necessarily be the X selection.
  326.  
  327. 4/12/92 (bug fix) Changed menu buttons to store name of menubutton
  328. in the associated variable, rather than the name of the menu.  This
  329. is necessary in order to allow several menu buttons to share the
  330. same menu.
  331. *** POTENTIAL INCOMPATIBILITY ***
  332.  
  333. 4/12/92 (bug fix) Fixed core dump that occurred in tkError.c when
  334. removing the first error record from the error list.
  335.  
  336. 4/15/92 (bug fix) Fixed bug in tkBind.c that prevented <KeyPress-1>
  337. event specifications from being processed correctly:  the "1" was
  338. treated as a button name rather than a keysym.
  339.  
  340. 4/18/92 (new feature) Added Tk_DefineCursor and Tk_UndefineCursor
  341. procedures.
  342.  
  343. 4/18/92 (new feature) Major revision to listboxes.  Can now scroll and
  344. scan in both x and y, plus -exporselection option allows selection not
  345. to be exported.  The "view" widget command has been replaced by "xview"
  346. and "yview", and the "scan" widget command has a new syntax.
  347. *** POTENTIAL INCOMPATIBILITY ***
  348.  
  349. 4/18/92 (new feature) Added -exportselection option to entries, so you
  350. can select whether you want the entry selection to be the X selection
  351. or not.
  352.  
  353. 4/24/92 (new features) Added TK_CONFIG_CUSTOM type to Tk_ConfigureWidget,
  354. plus added new flags TK_CONFIG_NULL_OK, TK_CONFIG_DONT_SET_DEFAULT,
  355. and TK_CONFIG_OPTION_SPECIFIED.  Several other new types, such as
  356. TK_CONFIG_CAP_STYLE, were also added as part of implementing canvases.
  357.  
  358. 4/29/92 (bug fix) Changed "-selector" default for menus to have separate
  359. values for mono and color.
  360.  
  361. 4/30/92 (bug fix) Fixed bug in tkListbox.c where it occasionally generated
  362. bogus scroll commands (last index less than first).
  363.  
  364. 4/30/92 (reorganization) Moved demos directory to "library/demos".
  365.  
  366. ---------------------- Release 2.0, 5/1/92 -------------------------
  367.  
  368. 5/2/92 (bug fix) Fixed problem in tkListbox.c where it was doing too many
  369. redisplays after repeated insertions.  Also reduced number of invocations
  370. of scrollbar commands.
  371.  
  372. 5/7/92 (portability improvement) Changed main.c not to use TK_EXCEPTION
  373. flag;  it isn't needed and it causes problems on some systems.
  374.  
  375. 5/9/92 (bug fix) Plugged core leaks in tkListbox.c and tkBind.c
  376.  
  377. 5/9/92 (bug fix) TkBind.c was accidentally deleting bindings during
  378. attempts to print non-existent bindings.
  379.  
  380. 5/11/92 (bug fix) Maximum name length for applications (name used in
  381. "send" commands) was too short (only 20);  increased to 1000.  Also
  382. fixed bug related to over-long names that caused core dumps.
  383.  
  384. 5/13/92 (bug fix) tkShare.c was using a dangling pointer if a share
  385. group was deleted as a side-effect of a shared event.
  386.  
  387. 5/13/92 (bug fix) Various initialization and core leak problems in
  388. tkGC.c, tkSend.c, tkMenu.c, tkEvent.c, tkCanvas.c, tkCanvPoly.c,
  389. tkCanvLine.c, tkListbox.c, tkEntry.c.
  390.  
  391. 5/13/92 (bug fix) Empty entries could be scanned off the left edge,
  392. displaying a garbage character.
  393.  
  394. 5/13/92 (bug fix) Fixed a few problems with window manager interactions,
  395. such as tendency for windows to spontaneously shrink in size.  By no
  396. means are all of the problems fixed, though.
  397.  
  398. 5/13/92 (performance optimization) Changed Tk_GeometryRequest not to
  399. invoke geometry manager unless requested size has changed.
  400.  
  401. ---------------------- Release 2.1, 5/14/92 -------------------------
  402.  
  403. 5/1/92 (new features) Added flags like TK_IDLE_EVENTS to Tk_DoWhenIdle,
  404. plus added "idletasks" option to "update" command.  Tk_DoWhenIdle arguments
  405. look different now, but the change should be upward-compatible.
  406.  
  407. 5/17/92 (new feature/bug fix) Added support for VisibilityNotify events
  408. to the "bind" command.  For some reason they weren't supported previuosly.
  409.  
  410. 5/17/92 (new feature) Added "tkwait" command.
  411.  
  412. 5/17/92 (new feature) Added "grab" command.
  413.  
  414. 5/17/92 (new feature) Added "-width" option to messages.  Also changed 
  415. messages to use the computed (i.e. desired) line length when displaying,
  416. not the actual width of the window.
  417.  
  418. 5/17/92 (bug fixes) Did some more fiddling with tkWm.c in the hopes
  419. of improving window manager interactions.  Now there won't be more than
  420. one configure request outstanding to the wm at a time.
  421.  
  422. 5/17/92 (bug fix) Arrowheads on canvas lines weren't being translated
  423. or scaled correctly.
  424.  
  425. 5/20/92 (bug fix) Page-mode scrolling didn't work correctly for canvases
  426. (wrong windowUnits was passed to scrollbars).
  427.  
  428. 5/20/92 (bug fix) Changed scrollbars not to lose highlight when pointer
  429. leaves window with button down.  Also changed redisplay to double-buffer
  430. for smoother redraws.
  431.  
  432. 5/21/92 (new feature) Added "gray50" and "gray25" as predefined bitmaps.
  433.  
  434. 5/22/92 (new feature) Buttons can now be disabled using the "-state" and
  435. "-disabledforeground configuration options.  The "activate" and "deactivate"
  436. widget commands for buttons are now obsolete and will go away soon.
  437. Please change Tcl scripts not to use them.
  438.  
  439. 5/23/92 (new feature) Entries can now be disabled using the "-state"
  440. config option.  Also improved class bindings for entries to keep the
  441. cursor visible in the window when operations occur.  Also made slight
  442. improvements in the way redisplay is done.
  443.  
  444. 5/23/92 (new feature) Added "-textvariable" option to entries so that
  445. the text in an entry can be tied to the value of a global variable in
  446. a fashion similar to buttons.
  447.  
  448. 5/27/92 (new feature) Added "-textvariable" and "-anchor" options to
  449. messages.
  450.  
  451. 5/28/92 (new feature) Added "-padx" and "-pady" and "-underline" options
  452. to menubuttons.
  453.  
  454. 5/28/92 (feature change) Changed "-width" and "-height" options on
  455. all flavors of buttons and menubuttons so that they are orthogonal
  456. to "-padx" and "-pady".  It used to be that -width overrode -padx
  457. (no padding).  Now they accumulate.
  458.  
  459. 5/29/92 (new feature) Added "-disabledforeground" option to menus and
  460. all flavors of buttons (can specify color for disabled things rather
  461. than just using stipple to gray out).
  462.  
  463. 5/29/92 (new features) Added many new options to menu entries:
  464. -activebackground, -background, -font, -state, -underline.  The
  465. "disable" and "enable" widget commands for menus are now obsolete
  466. and will go away soon.  Please change Tcl scripts not to use them.
  467.  
  468. 5/29/92 (new features) Added "atom" and "atomname" options to "winfo"
  469. command.
  470.  
  471. 5/29/92 (new feature) Wrote tk_listboxSingleSelect procedure, which
  472. can be used to change listbox behavior so that only a single item is
  473. selected at once.
  474.  
  475. 6/1/92 (new feature) Added new modifier names "Meta" and "Alt" for
  476. "bind" command.
  477.  
  478. 6/3/92 (new feature) Added "winfo toplevel" command.
  479.  
  480. 6/3/92 (new feature) Made several changes for greater Motif compliance,
  481. including:
  482.     - menu retention if you click and release in the menu button,
  483.     - keyboard traversal of menus (see traversal.man)
  484.     - no widget flashing if you set $tk_strictMotif to 1
  485.  
  486. 6/15/92 (bug fix) Fixed problem in tkBind.c where command string for a
  487. binding could get reallocated while the command was being executed (e.g.
  488. bindings that delete or change themselves).
  489.  
  490. 6/15/92 (bug fix) Don't allow "tabWidth" field to become zero in tkFont.c:
  491. can cause core dumps for fonts that don't enough information to compute
  492. tab widths.
  493.  
  494. 6/19/92 (bug fix) Fixed bug in binding mechanism that caused structure-
  495. related events to be reported both to the correct window and its parent.
  496.  
  497. 7/14/92 (bug fix) Changed tkColor.c not to free colors for visual types
  498. StaticGray or StaticColor.
  499.  
  500. 7/15/92 (new feature) Text widgets now exist.  They display any number of
  501. lines of text with a variety of display formats, and include hypertext
  502. facilities.  See the manual page for details.
  503.  
  504. 7/20/92 (bug fix) If a top-level window was put in the iconic state to
  505. begin with, it could be deiconified with "wm deiconify .foo" until it had
  506. first been deiconified by hand from the window manager.  Tk was getting
  507. confused and thought the window was mapped when it wasn't.
  508.  
  509. 7/29/92 (bug fix) Don't permit rectangles or ovals to have zero-sized
  510. dimensions.  Round up to at least one pixel.
  511.  
  512. 7/29/92 (new features) Major upgrade to canvases:
  513.     - new item types: arc, window, bitmap
  514.     - added Bezier spline support for lines and polygons
  515.     - rectangles and ovals now center their outlines on the shape,
  516.       rather than drawing them entirely inside the shape
  517.     - new "coords" and "bbox" widget commands
  518.     - new "-tags" option for all item types.
  519.     - new "-confine" option to prevent scrolling off edge of canvas.
  520.  
  521. 8/6/92 (new feature) Added "-width" and "-height" options to frames.
  522. The "-geometry" option is now obsolete and should be removed from Tcl
  523. scripts:  it may go away in the future.
  524.  
  525. 8/7/92 (bug fix) Error messages in Tk_ParseArgv were sometimes including
  526. the option name where they should have included its value.
  527.  
  528. ---------------------- Release 2.2, 8/7/92 -------------------------
  529.  
  530. 8/7/92 (bug fix) Changed tkCanvas.c to be more conservative in the area
  531. it passes to XCopyArea.
  532.  
  533. 8/8/92 (bug fix) Fixed bug in tkTextDisp.c that sometimes caused core
  534. dumps when text views changed (e.g. typing return on last line of screen).
  535.  
  536. 8/8/92 (bug fix) Fixed bug in menu.tcl that caused errors when using
  537. keyboard to traverse over separator menu entries.
  538.  
  539. 8/10/92 (bug fix) Changed to use OPEN_MAX instead of MAX_FD to compute
  540. maximum # of open files.
  541.  
  542. 8/10/92 (bug fix) Canvases weren't updating scrollbars on window size
  543. changes.  They also weren't recentering canvases on window size changes.
  544.  
  545. 8/10/92 (bug fix) There were still a few places where commands were being
  546. invoked at local level instead of global level (e.g. commands associated
  547. with buttons and menu entries).
  548.  
  549. 8/10/92 (bug fix) TkBind.c used to ignore explicit shift modifiers for
  550. all keys (i.e. <Shift-Tab> was treated the same as <Tab>).  Modified to
  551. allow explicit request for shift modifier, like <Shift-Tab>.
  552.  
  553. 8/13/92 (feature change) Changed default fonts to request "Adobe" fonts
  554. explicitly.
  555.  
  556. 8/16/92 (bug fixes) Modified tkCanvArc.c and tkTrig.c to increase slightly
  557. the bounding boxes for arcs, in order to make sure that proper redisplay
  558. occurs when arcs are moved (little turds were getting left behind).
  559.  
  560. 8/16/92 (bug fix) Modified tkCanvas.c not to redraw at all if the redisplay
  561. area is off the screen.  Also, only do a background clear for the portion
  562. of the redraw area that is on-screen.  Also, reduced size of off-screen
  563. pixmaps used for redisplaying, which speeds up redisplay in some cases.
  564.  
  565. 8/19/92 (bug fix) Canvases that were taller than wide were not being
  566. redisplayed properly.
  567.  
  568. 8/20/92 (new feature) Added Tk_CreateGenericHandler procedure for trapping
  569. all X events (useful for tracing, watching non-Tk windows, etc.).
  570.  
  571. 8/21/92 (bug fix) Widgets weren't always being notified when they got
  572. the focus back again (the problem had to do with grabs and menus in
  573. particular).
  574.  
  575. 8/21/92 (new feature) Added "-state" option to scale widgets.
  576.  
  577. 8/22/92 (new feature) Changed tkBitmap.c to allow tilde-substitution
  578. to occur in bitmap file names.
  579.  
  580. ---------------------- Release 2.3, 8/24/92 -------------------------
  581.  
  582. 8/27/92 (bug fix) Changes to -activebackground and -activeforeground options
  583. for menubuttons were being lost.
  584.  
  585. 8/27/92 (bug fix) Entries were selecting last character when a B1-drag
  586. occurred past the right edge of the text.
  587.  
  588. 8/28/92 (bug fix) Fixed bug in canvases where a grab during a button
  589. press caused the canvas state to lock up so that it didn't select a
  590. new current item.
  591.  
  592. 9/7/92 (bug fix) Changed tkMenu.c to accept numerical menu indices that
  593. are out of range;  now it just rounds them off to the nearest existing
  594. entry.
  595.  
  596. 9/7/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps when
  597. invoking "yview -pickplace" widget command on texts that are too small
  598. to hold any lines at all.
  599.  
  600. 9/11/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps
  601. when adding tags to non-existent lines.
  602.  
  603. 9/11/92 (bug fix) Line items in canvases didn't permit an empty fill
  604. color (i.e. couldn't make them transparent).
  605.  
  606. 9/14/92 (reorganization) Changed manual entries to use .1, .3, and .n
  607. extensions.  Added "install" target to Makefile to suggest how Tk should
  608. be installed.
  609.  
  610. 9/16/92 (bug fix) Changed tkSend.c to always specify the root window of
  611. screen 0 rather than using DefaultRootWindow.  DefaultRootWindow doesn't
  612. always go to screen 0 on displays with multiple screens, which can result
  613. in send's not being possible between the screens.
  614.  
  615. 9/18/92 (new feature) Added three new options to "wm" command: "protocol",
  616. "client", and "command".  These provide support for window manager protocols
  617. such as WM_DELETE_WINDOW and WM_TAKE_FOCUS, plus support for the
  618. WM_CLIENT_MACHINE and WM_COMMAND properties.
  619.  
  620. 9/30/92 (new feature) Implemented color model support, including
  621. "tk colormodel" command and Tk_GetColorModel and Tk_SetColorModel
  622. procedures.  These allow you to force mono operation even on a color
  623. display.  Also changed color allocation not to give errors when colors
  624. run out, but just to switch to a mono color model.
  625.  
  626. 10/1/92 (bug fixes) Fixed two bugs in tkTextBTree.c that caused core dumps
  627. during text deletion.
  628.  
  629. 10/5/92 (bug work-around) Changed tkColor.c to ignore errors when freeing
  630. colors.  This is needed to work around improper reference count management
  631. for colormap entries under X11/NeWS.
  632.  
  633. 10/7/92 (new feature) Added support for different visual types, including
  634. procedures Tk_SetWindowVisual and Tk_SetWindowColormap, plus macros
  635. Tk_Visual, Tk_Depth, and Tk_Colormap.  The code for this was contributed
  636. by Paul Mackerras.
  637.  
  638. 10/7/92 (new feature) Added Tk_IsTopLevel macro.
  639.  
  640. 10/12/92 (bug fix) Fixed bug in tk.tcl that caused torn-off menus with
  641. cascaded children not to track mouse motion correctly (the cascade
  642. switched in response to mouse motions within the cascaded child).
  643.  
  644. 10/12/92 (new feature) Major changes to focus handling:
  645. (a) Tk watches FocusIn and FocusOut events for focus changes, not Enter
  646.     and Leave, so it will work better with explicit-focus-model window
  647.     managers (e.g. mwm in default mode).
  648. (b) Tk generates FocusIn and FocusOut events for the focus window now.
  649.     The old procedural interface (via Tk_CreateFocusHandler) is obsolete
  650.     and is no longer used inside Tk.  It is still supported for
  651.     compatibility, but won't be for long.  You should change your code
  652.     to use FocusIn and FocusOut events instead.
  653. (c) The model for FocusIn and FocusOut events is different than the
  654.     one described in Xlib documentation.  See the "focus" manual entry
  655.     for details.
  656. (d) If there is no input focus then keyboard events are discarded.  They
  657.     used to be directed to the mouse pointer window, although this wasn't
  658.     documented.  The focus now defaults to the root window.
  659. *** POTENTIAL INCOMPATIBILITY ***
  660.  
  661. 10/15/92 (bug fix) Fixed text items in canvases where they didn't
  662. display the insertion cursor if the item had no characters in it. 
  663.  
  664. 10/26/92 (bug fix) Fixed bug in tkSelect.c that occasionally caused
  665. BadWindow X protocol errors when retrieving the selection.  Tk wasn't
  666. making sure that a window existed before using it to retrieve the
  667. selection.
  668.  
  669. 10/30/92 (feature change) Changed canvases so that if the scroll region
  670. is smaller than the window and -confine is on, the scroll region isn't
  671. forced to be centered in the window;  it can be anywhere that meets the
  672. confinement restrictions.
  673.  
  674. 11/2/92 (new feature) Added "winfo exists" command.
  675.  
  676. 11/5/92 (new feature) Changed DoWhenIdle handlers so that if a new
  677. when-idle handler is created as a side-effect of another when-idle
  678. handler, the new handler isn't invoked until Tk has first checked
  679. for other events to process.
  680.  
  681. 11/6/92 (bug fixes, new features) Major overhaul of window manager
  682. interface:
  683. (a) Tk should now work with virtual-root window managers;
  684. (b) windows will now place more accurately on the screen and stay where
  685.     they're supposed to;
  686. (c) size changes handled more reliably;
  687. (d) code now works robustly in the face of withdrawals followed
  688.     immediately by deiconifications.
  689. (e) Added new procedure Tk_GetVRootInfo and new options to "winfo" command:
  690.     vrootx, vrooty, vrootwidth, vrootheight.
  691. (f) Added "overrideredirect" option to "wm".
  692. (g) Fixed bug where change in width-only via "wm geom" didn't always work
  693.    (min and max window sizes weren't being set properly for the wm).
  694.  
  695. 11/6/92 (bug fixes) Modified menus so that they work correctly with
  696. virtual root window managers.  Also fixed bug where menus didn't move
  697. along with their associated windows, so that the menu popped up at
  698. the old location of the window rather than its new location.
  699.  
  700. 11/9/92 (new constraint) Made it illegal to give windows names that
  701. start with upper-case letters, since such names will goof up the
  702. option database by appearing to be classes rather than names.
  703. *** POTENTIAL INCOMPATIBILITY ***
  704.  
  705. 11/10/92 (new feature) Added Postscript output to canvases.
  706.  
  707. 11/13/92 (bug fix) Changed default for maximum size passed to window
  708. manager from 1000000 (which causes some wm's to make windows too large
  709. when "maximized") to the size of the display.
  710.  
  711. 11/14/92 (feature change) Major overhaul of menubuttons and pull-down
  712. menus.  Removed event-sharing code, including Tk_ShareEvents and
  713. Tk_UnshareEvents.  The -variable option for menubuttons has been
  714. removed,and the "post" and "unpost" widget commands for menubuttons
  715. no longer exist.  The "post" widget command for menus no longer
  716. allows a group option.  The procedure tk_menus has been replaced
  717. with a new procedure, tk_menuBar, which has a slightly different
  718. interface.
  719. *** POTENTIAL INCOMPATIBILITY ***
  720.  
  721. 11/20/92 (new features, feature changes) Major overhaul of grab
  722. mechanism to produce more correct event streams.  Also changed Tcl
  723. commands to require explicit window for grab releases (makes it
  724. possible for grabs to work on multiple displays simultaneously).
  725. The old "grab none" command no longer exists, but new options
  726. have been added: "current", "release", "set", and "status".
  727. *** POTENTIAL INCOMPATIBILITY ***
  728.  
  729. 11/20/92 (new feature) Use TK_LIBRARY environment variable to set library
  730. directory location, if it is defined.  Otherwise fall back on usual
  731. compiled-in value.
  732.  
  733. 11/25/92 (bug fix) "wm grid" command was using wrong window.
  734.  
  735. 11/29/92 (bug fix) Fixed core dump that occurred when trying to use
  736. placer on top-level windows: return error instead.
  737.  
  738. 11/29/92 (bug fix) Selection retrieval wasn't making sure that the window
  739. on whose behalf selection is being retrieved actually exists.
  740.  
  741. 12/3/92 (new feature) Added support for Mode_switch key to support the
  742. full ISO character set.  Also added event handlers for MappingNotify
  743. events so that Tk updates itself in response to keycode and modifier
  744. changes.
  745.  
  746. 12/6/92 (bug fix) Ignore recursive attempts to destroy window.
  747.  
  748. 12/9/92 (new demos) Added "tcolor" and "rmt" demos.
  749.  
  750. 12/10/92 (new features) Added "yposition" widget command for menus,
  751. changed "delete" widget command to take an optional second index,
  752. and changed -command option for cascade entries so that it is
  753. invoked when the entry is activated rather than when it is invoked.
  754. *** POTENTIAL INCOMPATIBILITY ***
  755.  
  756. 12/12/92 (implementation change)  Changed the procedures Tk_FreeBitmap,
  757. Tk_NameOfBitmap, Tk_SizeOfBitmap, Tk_FreeCursor, Tk_NameOfCursor, and
  758. Tk_FreeGC to require an addition Display argument.  This is needed for
  759. Tk to function correctly when an application has windows on multiple
  760. displays.
  761. *** POTENTIAL INCOMPATIBILITY ***
  762.  
  763. 12/12/92 (new feature) Started creating a test suite.  Right now it
  764. only has a few tests.
  765.  
  766. 12/12/92 (new feature) Modified the packer so that a window can be
  767. packed in descendants of its parent (used to be restricted to the
  768. parent alone).  This makes it possible to hide extra windows used
  769. for geometry management.  Also, can use generalized screen distances
  770. in the "pack" command.
  771.  
  772. 12/16/92 (feature change) Boolean options such as -exportselection now
  773. print as 0/1 rather than true/false (both the default and current values
  774. print this way).  This makes it easier to use these values in expressions.
  775. *** POTENTIAL INCOMPATIBILITY ***
  776.  
  777. 12/16/92 (name change) The classes "RadioButton" and "CheckButton" have
  778. been renamed "Radiobutton" and "Checkbutton" for consistency.  From now
  779. on widget class names will have exactly one capital letter.
  780. *** POTENTIAL INCOMPATIBILITY ***
  781.  
  782. 12/16/92 (new feature) Added -setgrid option to listboxes.
  783.  
  784. 12/16/92 (new feature) The "destroy" command, and the "delete" widget
  785. command for canvases, now accept any number of arguments, including
  786. zero.
  787.  
  788. 12/16/92 (new feature) Changed internal TkBindError procedure to
  789. Tk_BackgroundError and exported it to Tk clients.
  790.  
  791. 12/16/92 (option name change) Changed the place command's "dependents"
  792. option to "slaves" for better consistency with documentation.
  793. *** POTENTIAL INCOMPATIBILITY ***
  794.  
  795. 12/16/92 (name changes) Renamed the "cursor*" options in entries and
  796. canvases to "insert*".  Also renamed the "cursor" index to "insert" and
  797. the "cursor" widget command to "icursor".  This was done to avoid
  798. confusion between the mouse cursor and the insertion cursor.
  799. *** POTENTIAL INCOMPATIBILITY ***
  800.  
  801. ---------------------- Release 3.0, 12/17/92 -------------------------
  802.  
  803. 12/17/92 (bug fix) Fixed dangling-pointer bug in canvases that occurred
  804. if a <LeaveNotify> binding deleted the current item.
  805.  
  806. 12/18/92 (bug fix) Core dump occurred if "wm" invoked with no arguments.
  807. Also, tkWm.c wasn't properly setting WM_CLASS property on application
  808. startup.
  809.  
  810. 12/18/92 (incorrect documentation) Updated manual entries for Tk_FreeGC,
  811. Tk_FreeCursor, and Tk_FreeBitmap to reflect new interface that requires
  812. "display" argument.
  813.  
  814. 12/18/92 (missing documentation) Added documentation for the canvas
  815. "postscript" command, which was missing in the 3.0 release.
  816.  
  817. 12/21/92 (bug fixes) There were lots of problems with the new installation
  818. targets in the Makefiles, such as using "cp -f" and not installing
  819. prolog.ps.  Made several other miscellaneous improvements to Makefile.
  820.  
  821. 12/21/92 (bug fix) Arrowheads on canvas line items weren't moving properly
  822. after coordinate changes made with the "coords" widget command.
  823.  
  824. 12/21/92 (bug fix) If top-level window was initially withdrawn, couldn't
  825. ever deiconify it again.
  826.  
  827. 12/21/92 (bug fix) Double-button event sequences didn't always trigger
  828. properly when grabs were in effect.
  829.  
  830. 12/22/92 (bug fix) The packer didn't display any top or bottom windows
  831. after a left or right expanded window, and vice versa.  Also made the
  832. distribution of space among expanded windows more even.
  833.  
  834. 12/28/92 (new features) Several improvements to selection:
  835. (a) Added procedures Tk_ClearSelection and Tk_DeleteSelHandler.
  836. (b) Added "clear" and "own" options to "selection" command, extended
  837.     "handle" option to delete handlers.
  838. (c) Error returns from "selection handle" scripts are now turned into
  839.     selection retrieval errors ("no such selection") rather than an
  840.     empty selection.
  841. (d) Tk responds automatically for targets APPLICATION (name of application,
  842.     so you can "send" to it) and WINDOW_NAME (name of window within
  843.     application.
  844. (e) Added test file "select.test" to test suite.
  845.  
  846. 12/28/92 (bug fix) Fixed problem with flashing menus that occurred
  847. because menu.tcl was willing to unpost and then immediately repost
  848. the same menu.
  849.  
  850. 1/6/93 (bug fix) Test for UnmapNotify events in tkPack.c used = instead
  851. of ==.
  852.  
  853. 1/21/93 (bug fix) Changed many widgets to eliminate use of
  854. DefaultVisualofScreen, DefaultColormap, etc. and use the visuals
  855. and colormaps for the actual windows instead.  Also changed to
  856. inherit colormaps and windows from parent by default.
  857.  
  858. 1/21/93 (new features) Added new winfo options "cells", "depth", and
  859. "visual".
  860.  
  861. 1/23/93 (bug fix) Fixed problem with text display that could result
  862. in negative XCopyArea heights being sent to X server.  This causes some
  863. servers (e.g. some versions of OpenWindows) to crash.
  864.  
  865. 1/25/93 (new feature) Added -postcommand option to menus, so that menus
  866. can be reconfigured before each posting.
  867.  
  868. 1/29/93 (feature change) Changed %X and %Y in bindings so that they
  869. refer to the virtual root rather than the true root.  Although
  870. potentially incompatible, this change should almost always "do the
  871. right thing".
  872. *** POTENTIAL INCOMPATIBILITY ***
  873.  
  874. 1/31/93 (bug fix) Changed "send" code to grab server while updating
  875. the registry property (before this fix, two programs could allocate
  876. the same interpreter name if they started up simultaneously).  In
  877. order to make this fix I had to change the code for reclaiming
  878. names of dead interpreters in a way that sometimes allows dead
  879. interpreters to persist in the registry.
  880.  
  881. 2/1/93 (feature change) Changed entries to allow leftmost "visible"
  882. character to be the end of the text (i.e. no characters actually visible).
  883. This is needed so that the cursor can be displayed even if the last
  884. actual character is too wide to fit in the window.
  885.  
  886. 2/3/93 (bug fix) Fixed two bugs in tkFocus.c:  (a) FocusIn events
  887. were getting lost in some cases because the focus window hadn't been
  888. created yet (e.g. new top-level window pops up underneath the mouse);
  889. (b) Tk was accidentally triggering FocusOut events when the mouse
  890. moved from a top-level window to one of its children.
  891.  
  892. 2/4/93 (new feature) Added "visibility" option to "tkwait" command to make
  893. it easier to wait for a new window to appear on the screen.
  894.  
  895. ---------------------- Release 3.1, 2/5/93 -------------------------
  896.  
  897. 2/10/93 (installation improvements) Makefile improvements:  added RANLIB
  898. variable for easier Sys-V installation, changed to use INCLUDE_DIR
  899. properly, and added SHELL variable for SGI systems.
  900.  
  901. ---------------------- Release 3.2, 2/11/93 -------------------------
  902.  
  903. 2/11/93 (new feature) Added "wm state" command, and improved wm so that
  904. the right thing will happen if you invoke "wm iconify" when a window is
  905. withdrawn.
  906.  
  907. 2/14/93 (bug fix) When -colormap option was used in generating Postscript
  908. for canvases, Tk didn't add an extra space after the color command.
  909.  
  910. 2/14/93 (new feature) Changed "extern" declarations in tk.h to "EXTERN",
  911. which will use the definition of EXTERN from tcl.h and work correctly
  912. in C++ programs.
  913.  
  914. 2/18/93 (bug fix) Item-specific bindings weren't getting deleted from
  915. canvas items when the items were deleted.  As a result, they could
  916. suddenly re-appear for new items if the new items were allocated a
  917. record at the same addresses as the old ones.
  918.  
  919. 2/18/93 (feature reversal) Changed "after" back again, so that it sleeps
  920. *without* responding to events when it is invoked with just one argument;
  921. can always use tkwait plus after with additional arguments to achieve
  922. the effect of responding to events.
  923. *** POTENTIAL INCOMPATIBILITY ***
  924.  
  925. 2/20/93 (bug fix) Fixed bug in tkWindow.c where colormaps weren't being
  926. set correctly for new top-level windows on different screens than their
  927. parents (the bug results in X protocol errors: "invalid Colormap
  928. parameter").
  929.  
  930. 2/22/93 (bug fix) Changed "#!/usr/local/wish" in demo scripts to
  931. "#!/usr/local/bin/wish" to reflect new location of binary.
  932.  
  933. 2/22/93 (new feature) Added new reliefs "groove" and "ridge".
  934.  
  935. 2/25/93 (new feature) Added new built-in bitmaps:  "errror", "hourglass",
  936. "info", "question", "questhead", and "warning".  Also added new demo in
  937. "widget" to display all of these (under the Miscellaneous menu).
  938.  
  939. 2/25/93 (improved implementation) Changed DrawText procedure in
  940. prolog for outputting Postscript from canvases to use stringwidth
  941. instead of charpath+pathbbox:  avoids limitcheck problems with long
  942. strings, and also properly includes space characters in calculation.
  943.  
  944. 2/25/93 (bug fix) Fixed several bugs in library/menu.tcl that caused
  945. menu traversal to mis-behave when menu had no entries.
  946.  
  947. 2/26/93 (new feature) Added "wm frame" command.
  948.  
  949. 3/6/93 (bug fix) Mwm in click-to-focus mode was goofing up grabs so that
  950. pull-down menus were sometimes unresponsive.  Modified tk.tcl to ignore
  951. the spurious B1-Enter events generated by mwm, plus modified tkGrab.c to
  952. release simulated button grabs correctly.
  953.  
  954. 3/8/93 (bug fix) Tk had wrong interpretation of "lbearing" font metric,
  955. which caused text to be displayed at the wrong horizontal position in
  956. several places (labels/buttons, listboxes, canvas text, scales).  This
  957. change will cause slight changes in the way certain widgets are
  958. displayed.
  959.  
  960. 3/12/93 (bug fix) Fixed core dumps that occurred in tkEntry.c because of
  961. zero values in entryPtr->avgWidth.
  962.  
  963. 3/12/93 (bug fix) Tk_CoordsToWindow was using root coordinates always.
  964. Changed to use virtual-root coordinates when a virtual-root window
  965. manager is being used.  Before this fix, "winfo containing" didn't
  966. return the correct window under virtual-root window managers.
  967.  
  968. 3/18/93 (bug fix) Modified tkWm.c so that Tk doesn't fight with window
  969. manager over position of window;  it just takes what the window manager
  970. gives it.
  971.  
  972. 3/21/93 (new feature) Changed menus to display cascade entries with
  973. standard Motif arrows at right side.a
  974.  
  975. 3/22/93 (bug fix) Fixed bug in tkPack.c that was causing memory to
  976. get trashed with the integer value 1.
  977.  
  978. 3/22/93 (bug fix) Canvas text didn't print correctly if it contained
  979. an open paren (or other special character) immediately followed by
  980. an octal digit.
  981.  
  982. 3/22/93 (bug fix) Text widgets didn't redisplay properly in cases
  983. where two or more groups of lines both got taller at the same time
  984. (e.g. from tag changes), causing two separate bit copies where the
  985. first bit copy's target area overlapped the source area for
  986. the second bit copy.
  987.  
  988. 4/1/93 (bug fix) Changed canvases to use ISO Latin-1 font encoding
  989. if that's supported by the Postscript interpreter.  Also added workaround
  990. for bug in NeWSprint related to stipple fills.
  991.  
  992. 4/1/93 (bug fixes) Made various changes to focussing and grabs to
  993. eliminate extraneous focus events and generally improve behavior.
  994.  
  995. 4/2/93 (bug fix) Modified tkWm.c not to wait indefinitely for the window
  996. manager to map or reconfigure a window:  this led to deadlock in some
  997. situations, such as creating a new top-level window with a grab held.
  998.  
  999. 4/19/93 (bug fix) Fixed another bug in tkWm.c that caused windows to walk
  1000. across the screen in some situations.  Also fixed problem where rapid
  1001. posting and unposting of cascaded submenus (or menus?) could cause Tk
  1002. to become confused about whether or not a window is mapped (added
  1003. TkWmUnmapWindow procedure to make top-level unmaps synchronous).
  1004.  
  1005. 4/24/93 (feature change) Changed the "after" command to allow times
  1006. less than or equal to 0, and to use 0 whenever they occur.
  1007.  
  1008. 4/26/93 (new feature) Implemented security check for "send" as proposed
  1009. by Bennett Todd: incoming sends are now rejected unless (a) xhost-style
  1010. access control is enabled and (b) the list of authorized hosts is
  1011. empty.  In other words, you have to use xauth to use send.  This feature
  1012. can be disabled by setting the TK_NO_SECURITY flag at compile-time.
  1013.  
  1014. 5/15/93 (improvement) Switched to use Tcl_PrintDouble whenever returning
  1015. real values as Tcl results.  This potentially allows higher precision.
  1016. Switched to use %.15g whenever printing reals in Postscript files.
  1017. However, the change Tcl_PrintDouble causes incompatibilities.  For
  1018. now, it's disabled with a macro in tclInt.h that redefines Tcl_PrintDouble.
  1019. Tk 4.0 will delete the macro, and you can also delete it now if you
  1020. want the better (but incompatible) behavior.
  1021.  
  1022. 5/19/93 (bug fix) Fixed divide-by-zero problem that could occur in
  1023. closeness calculations for canvas oval items.
  1024.  
  1025. 5/30/93 (bug fix) PROP and CONFIG were accidentally #defined to the same
  1026. value in tkBind.c, which could cause incorrect %-substitutions in event
  1027. bindings in a few exotic cases.
  1028.  
  1029. 6/4/93 (improvement) Changed to use GNU autoconfig for configuration.
  1030. Makefile format changed, and Tcl is no longer automatically included
  1031. in Tk releases.
  1032.  
  1033. 6/7/93 (bug fix) Fixed off-by-one error in rounding negative coordinates
  1034. during redisplay of canvases.
  1035.  
  1036. 6/9/93 (feature improvement) Modified default bindings for entries to
  1037. keep one character visible to the left of the cursor during backspaces.
  1038.  
  1039. 6/18/93 (feature improvement) Added patchlevel.h, for use in coordinating
  1040. future patch releases, and also added tk_patchLevel variable to make the
  1041. patch level available in scripts.
  1042.  
  1043. 6/26/93 (bug fix) Fixed numeric problems in scales that occurred with
  1044. very large scale values.
  1045.  
  1046. 6/26/93 (bug fix) Polygon items in canvases could cause core dumps if
  1047. the "coords" widget command was used to add one new coordinate.
  1048.  
  1049. 6/26/93 (bug fix) Changed canvases to handle large stipple patterns
  1050. gracefully (stipples used to jump around during redisplay and lose
  1051. coherency).
  1052.  
  1053. 7/1/93 (syntax change, new feature) Implemented the new packer syntax
  1054. as described in the book.  For now the old syntax will continue to be
  1055. supported too.  Converting over is straightforward except (a) use
  1056. "-anchor" instead of "frame", and (b) padding is different (separate
  1057. internal and external padding, plus pad amounts are *on each side*
  1058. instead of total).  Also added "pack propagate" command for keeping
  1059. the packer from setting the master's requested size.
  1060.  
  1061. 7/1/93 Changed copyright notices.  The effect is the same as with the
  1062. old notices, but the new notices more clearly disclaim liability.
  1063.  
  1064. 7/7/93 (new feature) Added support for window stacking order.  Windows
  1065. will now stack in the order created (most recent on top), plus "raise"
  1066. and "lower" commands may be used to restack (Tk_RestackWindow procedure
  1067. is available from C level).
  1068.  
  1069. 7/7/93 (reorganization) Moved main.c to tkMain.c, reorganized it to
  1070. call Tcl_AppInit just like tclsh does, and added argv0 variable to contain
  1071. application name, and added default Tcl_AppInit procedure for wish.
  1072. Also added tkTest.c to hold C code for testing.
  1073.  
  1074. 7/7/93 (new feature) Added new Tk-specific "exit" command, which cleans
  1075. up properly before exiting.  It replaces the Tcl "exit" command, and
  1076. can be used in place of "destroy .".
  1077.  
  1078. 7/9/93 (new features) Added tk_dialog library procedure that creates
  1079. dialogs with a bitmap, message, and any number of buttons.  Also changed
  1080. default tkerror procedure to use tk_dialog plus offer the user a chance
  1081. to see a Tcl stack trace.
  1082.  
  1083. -------------------- Release 3.3 Beta 1, 7/9/93 -------------------------
  1084.