# ticket

tkt_uuid: 1258604fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 57. [option]
priority: 9 Immediate
foundin: obsolete: 8.5a4
resolution: Fixed
title: Tk widget option configuration failed to handle defaults
comment:
  One example of scrollbar

  % scrollbar .sh -orient horizontal
  .sh
  % scrollbar .sv 
  .sv
  % .sv config -orient
  -orient orient Orient vertical horizontal
  % 

  This bug is in recently changed 
  Tk_ConfigureWidget/TkOldConfig.c and has been fixed.


tkt_uuid: 1267484fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 8
foundin: obsolete: 8.5a4
resolution: Fixed
title: text-8.18 fails
comment:
  ==== text-8.18 TextWidgetCmd procedure, "replace"
  option FAILED
  ==== Contents of test case:

      list [catch {.t replace 3.1 2.3 foo} err] $err

  ---- Result was:
  1 {Index "2.3" before "3.1" in the text}
  ---- Result should have been (exact matching):
  1 {Index "2.3" before "3.1" in the text.}
  ==== text-8.18 FAILED


tkt_uuid: 1277227fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 4
foundin: None
resolution: Fixed
title: Notebook missing update event
comment:
  There seems to be a missing update event for nonmapped 
  pages when a notebook is resized, at least on Aqua. Win XP 
  seems ok. The script below reproduces the problem on my 
  MacOSX 10.2.8 box. Do: Click Tab2, increase the windows 
  size, click Tab1 => canvas not redrawn.

  This is just moved here from tile [ 1276374 ] Notebook 
  missing update event
  http://sourceforge.net/tracker/
  index.php?func=detail&aid=1276374&group_id=11464&atid=1
  11464
  since it only appears on Macs

  Mats

  package require tile
  ttk::notebook .nb
  .nb add [canvas .nb.c1 -width 100 -height 100] -text Tab1 -
  sticky news
  .nb add [canvas .nb.c2 -width 100 -height 100] -text Tab2 -
  sticky news
  .nb.c1 create oval 10 10 200 200 -fill blue
  pack .nb -fill both -expand 1
  bind .nb.c1 <Configure> {puts "Configure Tab1: [winfo width 
  %W]"}
  bind .nb.c1 <Map> {puts "Map Tab1: [winfo width %W]"}

  # Click Tab2, increase the windows size, click Tab1 => 
  canvas not redrawn


tkt_uuid: 1281183fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 7 High
foundin: obsolete: 8.5a3
resolution: Out of Date
title: Crash with aMSN skinned tabs
comment:
  When you use aMSN CVS version compiled against tcl/tk
  8.5a3 it crashes when using tabbed chatwindows.  These
  are not done with a notebook widget but with
  canvas-skinnable tab-images.  
  How to reproduce ?

  Get 
  http://jaist.dl.sourceforge.net/sourceforge/tcl/tcl8.5a3-src.tar.gz
  http://kent.dl.sourceforge.net/sourceforge/tcl/tk8.5a3-src.tar.gz

  Compile it on Ubuntu Breezy:
  Linux kryptonix.homelinux.org 2.6.8.1-3-386 #1 Tue Oct
  12 12:41:57 BST 2004 i686 GNU/Linux
  scapor@kryptonix:~/Desktop$ gcc -v
  Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.5/specs
  Configured with: ../src/configure -v
  --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang
  --prefix=/usr --mandir=/usr/share/man
  --infodir=/usr/share/info
  --with-gxx-include-dir=/usr/include/c++/3.3
  --enable-shared --with-system-zlib --enable-nls
  --without-included-gettext --enable-__cxa_atexit
  --enable-clocale=gnu --enable-debug
  --enable-java-gc=boehm --enable-java-awt=xlib
  --enable-objc-gc i486-linux
  Thread model: posix
  gcc versie 3.3.5 (Debian 1:3.3.5-8ubuntu2)

  get aMSN's current cvs version (works fine with 8.4/8.3
  ...)
  compile it's extensions against tcl/tk 8.5(a3)

  start aMSN and use tabs (preferences > Session)

  When you open a chat and then open a second chat that
  opens an extra tab, it "crashes".  The panedwindow
  (widget) seems to "bibber" as in the lower frame
  becomes smaller/bigger some pixels the whole time. 
  Wish doesn't react anymore at this stage.

  If you disable aMSN's tabs everything just looks fine,
  with great AA'ed fonts :).


tkt_uuid: 1283635fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 9 Immediate
foundin: obsolete: 8.4.11
resolution: Fixed
title: Crash manipulating transient windows on MSWin
comment:
  The attached file causes a crash when the three
  transient (dwarf) windows are closed,  using ActiveTcl
   8.4.11.1 on Windows XP, but not  8.4.7 on Linux, and
  not 8.3 on either.

  The file is work in progress from a year ago, managing
  multiple transient dialogs.  It isn't a final product,
  and performs much worse with 8.4 than 8,3, but that is
  beside the point for the crash.


tkt_uuid: 1285304fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 65. Generic Window Operations
priority: 9 Immediate
foundin: obsolete: 8.5a4
resolution: Duplicate
title: wrong exit handler used to clean up windows
comment:
  In function Initialize() (generic/tkwindow.c) an exit 
  handler is  created to deal with windows when exiting 
  the thread. Unfortunately it used  TkCreateExitHandler() 
  to create a process global exit handler, with a passed 
  argument of the thread specific data area the has the 
  lists of  active windows. I changed this to 
  Tcl_CreateThreadExitHandler() and  all is OK.


tkt_uuid: 1285983fffffffffffffffffffffffffffffffff
type: Patch
status: Open
subsystem: 44. Generic Fonts
priority: 6
foundin: None
resolution: None
title: Fix incorrect text height calculation
comment:
  Currently Tk_MeasureChars () calculate only the width of
  characters, and callers of that function
  (Tk_DrawTextLayout in tkFont.c and MeasureChars in
  tkTextDisp.c) assumes that the ascent and descent and the
  same as those of Tk_Font.  But, implementations of
  Tk_MeasureChars (e.g. in tkUnixRFont.c) may use different
  fonts (subfonts of Tk_Font).

  This leads to in incorrect text line height.

  My patch fixes this problem by introducing a new structure
  Tk_TextMetrics (members are ascent, descent, and width)
  and using a pointer to that structure instead of a pointer
  to (int).  Could you please consider this change?

  Once the patch is accepted, I'll post another patch (yet
  another implementation of tkUnixRfont) that utilizes the
  m17n-lib <http:/www.m17n.org/m17n-lib> to provide
  multilingual rendering facility to tk.  The attached image
  is an example of using that for rendering multilingual
  text by Tcl/Tk.

  The attached tar.gz file contains these files:

  tk.diff -- patch to the current CVS code of tk
  sample.png --  the sample image file mentioned above


tkt_uuid: 1288128fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 9 Immediate
foundin: obsolete: 8.4.11
resolution: Fixed
title: crash bug in '$text tag configure'
comment:
  In Tk 8.4.11, running the 'tag configure' subcommand on 
  a text widget for a tag which has not previously 
  been 'declared', with no arguments, crashes the 
  program. For example,

    text .t
    .t tag configure foobar

  will crash, but

    text .t
    .t tag configure foobar -underline 0
    .t tag configure foobar

  will not. 


tkt_uuid: 1288433fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 09. [listbox]
priority: 5 Medium
foundin: obsolete: 8.4.11
resolution: None
title: LisboxSelect event triggers when listbox state is disabled
comment:
  This code

     pack [listbox .l] 
     .l insert end 1 2 3 
     bind .l <<ListboxSelect>> {puts click!} 
     .l configure -state disabled

  shows that the ListBoxSelect event will be triggered regardless of the state 
  of the listbox. Although the listbox is "disabled" so no selection can be 
  made, the event fires, indicating a selection has been made.

  Jeff Hobbs writes on this subject:

  (http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/
  b63e43a981b6a698/93341e895ba0c054)

  "Hmm, I would cal that a low priority bug.  It appears that the 
  ListboxSelect is merely triggering unnecessarily.  The items 
  are not actually being selected, so functionally it is all OK, 
  but we could avoid the ListboxSelect, so we should."

  A workaround on script level is to check for the listbox state in the code for 
  the binding:

  bind .l <<ListboxSelect>> {
     # abort, if disabled: 
     if {[%W cget -state]=="disabled"} {break} 
     # else do the normal action:
     # ...
  }


tkt_uuid: 1288677fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 8
foundin: obsolete: 8.5a4
resolution: Fixed
title: elide removes more than just text
comment:
  Fix:-
  Revert line 1352 in tkTextDisp.c 1.52 from
  if (!elide && chunkPtr->numBytes > 0) {
  to
  if (chunkPtr->numBytes > 0) {

  This causes no new test failures on WinXP


  From the man pages:-

  Elide specifies whether the data should be elided. 
  Elided data is not displayed and takes no space on 
  screen, but further on behaves just as normal data. 

  However after the changes in tkTextDisp.c from 1.16 
  to 1.17, elide no longer allows the formatting 
  information from the tag to be used.

  example text dump:-
  tagon NICK-ivany 7.1 tagon STAMP 7.1 text 
  {[18:39]    } 7.1 tagoff STAMP 7.9 tagon NICK 7.9 
  text {ivany    } 7.9 tagoff NICK 7.15 tagon MSG 7.15 
  text /see 7.15 tagoff MSG 7.19 tagon NICK 7.19 text {
  } 7.19 tagoff NICK 8.0 tagoff NICK-ivany 8.0

  If the STAMP tag has a -lmargin value of 20 then the 
  output should be (approx.)
    [18:39]    ivany    /see

  If STAMP is then elided we get this in 8.4.11
    ivany    /see

  in 8.5 we get (without the initial indent)
  ivany    /see


tkt_uuid: 1289565fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 70. Event Loop
priority: 8
foundin: obsolete: 8.4.11
resolution: Fixed
title: 8.4 ClientMessage handler breaks GenericHandlers
comment:
  8.4 has a bug that was fixed in 8.5 some time ago,
  involving the list management for ClientMessage
  handlers.  The client message handlers can corrupt the
  generic handler list.

  In the ClientMessage handler that invokes the callbacks
  8.4 is using:
  tsdPtr->lastGenericPtr = genPrevPtr;
  it should be:
  tsdPtr->lastCmPtr = getPrevPtr;

  I brought this up some time ago, in the thread about
  the patch I wrote to cleanup the tkEvent.c mess.  It
  seems that Jeff Hobbs lost track of it (perhaps it
  shouldn't have been assigned to him?).

  This effects anything using GenericHandlers, such as
  window managers.


tkt_uuid: 1290763fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 41. Photo Images
priority: 9 Immediate
foundin: obsolete: 8.4.11
resolution: None
title: Crash in image code
comment:
  Wish crashes when creating a png image using either Img or 
  tkpng. It seems to be independent of the image package 
  used which points to Tk's internal image code. It only 
  happens when a large application is running. I have only 
  tested my Coccinella: http://prdownloads.sourceforge.net/
  coccinella/Coccinella-0.95.9Src.tar.gz?download

  It happens on both linux and windows XP. To reproduce:
  wish
  source Coccinella.tcl
  image create photo -file pick-png-file.png
  *# crash

  Coccinella 0.95.9 uses Img on linux to load pngs, but you 
  can also try to use tkpng from : http://www.muonics.com/
  FreeStuff/TkPNG/
  Since it is indepemdent of the package used I tend to believe 
  it is internal to Tk.

  Mats


tkt_uuid: 1292219fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 21. [panedwindow]
priority: 7 High
foundin: None
resolution: None
title: panedwindow don't propagate Map/Unmap state to children
comment:
  Unlike the other geometry manager (e.g. pack, see
  tkPack.c, 1400), panedwindow do not handle MapNotify
  and UnmapNotify events to propagate to its children.

  So, we can have:

  panedwindow .pw
  .pw add [button .pw.b]
  pack .pw
  update
  puts [winfo ismapped .pw.b] ;# => 1
  pack forget .pw
  update
  puts [winfo ismapped .pw.b] ;# => 1
  puts [winfo ismapped .pw] ;# => 0

  This is the same for ttk::notebook.


tkt_uuid: 1297800fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 13. Win Menus
priority: 5 Medium
foundin: None
resolution: Invalid
title: menus dont work right when called from systray
comment:
  The problem is described here:

  http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/60d29d5a874c6805/6114f936e7370bb0

  and here:

  http://support.microsoft.com/kb/q135788/

  To sum it up:

  I'm using the winico extension to create an app that
  normally is
  "withdraw"n, and just sits in the windows systray. 
  Like other normal systray applications, if you right
  click on it, a little menu comes up. So far, so good. 
  The problem is when you click somewhere outside the
  menu.  That should normally make it go away, but it
  doesn't. 

  Here is a workaround, called from the winico callback:

  WM_RBUTTONDOWN {
      # Pop up the menu when we get right-clicked.

      # This is all very ugly, and we have Microsoft to
  thank:
      # http://support.microsoft.com/kb/q135788/
      wm overrideredirect .info 1
      wm geometry .info 0x0-1000-1000 
      focus -force .info
      raise .info
      update
      .info post $x $y
  }


tkt_uuid: 1303103fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 01. Bindings
priority: 5 Medium
foundin: None
resolution: None
title: -namespace option for "bind" and widgets
comment:
  pass namespace name for script execution.
  Sample : 
  button .b -namespace [ namespace current ] -command {
   set flag "clicked"
  }
  bind .b <FocusIn> -namespace ::other {
   set focusOwner %W
  }

  This solution maid tk script simple and more readable,
  prevent global`ization.  Also gain help for tk extensions.


tkt_uuid: 1305128fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 16. [scrollbar]
priority: 5 Medium
foundin: None
resolution: Invalid
title: Scrollbar don't receive <Expose> event
comment:
  Under Windows 2000 / XP, try the following script:

  pack [scrollbar .s -orient horizontal] -fill x
  bind .s <Expose> {puts "Expose"}
  .s set 0 1; update
  pack forget .s
  .s set 0 .5; update
  pack  .s -fill x  ;# Always displayed as 0 1

  Then do:

  event generate .s <Expose> ;# Displayed correctly


tkt_uuid: 1305708fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 79. L10N
priority: 5 Medium
foundin: None
resolution: Duplicate
title: Spelling mistake in el.msg
comment:
  There is a spelling mistake in the greek translation of
  "Skip messages" in tktoolkit/tk/library/msgs/el.msg

  The entry should read:

      ::msgcat::mcset el "Skip Messages"     
  "\u0391\u03c0\u03bf\u03c6\u03c5\u03b3\u03ae
  \u03bc\u03b7\u03bd\u03c5\u03bc\u03ac\u03c4\u03c9\u03bd"

  A corrected el.msg is attached.


tkt_uuid: 1306222fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 37. [tk_get*File]
priority: 5 Medium
foundin: obsolete: 8.4.11
resolution: Out of Date
title: tk_getOpen(Save)
comment:
  [23:49:28] [ya1] look at filetkfbox.tcl
  [23:50:17] [ya1] proc ::tk::dialog::file::Create {w class} {
  [23:50:23] [ya1] creating of dialog...
  [23:50:43] [ya1] set set data(typeMenuLab) 
  [::tk::AmpWidget label $f2.lab2
  [23:51:06] [ya1] when we close this dialog...it's not 
  destroiy..it's just hide..
  [23:51:30] [ya1] and when we call it second time: we 
  trying to restore array data[]
  [23:51:34] [ya1] how?
  [23:51:55] [ya1] in function proc ::tk::dialog::file:: {type 
  args}
  [23:52:09] [ya1] set data(typeMenuLab) $w.f2.lab
  [23:52:14] [ya1] error!
  [23:52:15] [@azbridge] <suchenwi> Hm.
  [23:52:21] [ya1] wrong restoring!


tkt_uuid: 1308786fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 41. Photo Images
priority: 6
foundin: None
resolution: None
title: Photo visibility in widgets
comment:
  Hi,
  we wrote an extension in C to Tk for aMSN which let us
  to load animated gifs and we display each frame after a
  delay with Tk_PhotoPutBlock. But when we have many
  animated GIFs loaded it take many CPU power and we
  would like to reduce it. To do that we would need a
  function to know the visibility of the image. Not if it
  is bind to a widget but if it is displayed in any
  widget. Or maybe you have another idea to know that...
  Thanks


tkt_uuid: 1309587fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 41. Photo Images
priority: 5 Medium
foundin: obsolete: 8.4.11
resolution: Invalid
title: Transparent images on disabled buttons display incorrectly
comment:
  If a transparent image is assigned to a button, and
  later the button's -bg is changed, the transparent
  portions of the image become visible when the button is
  in a disabled state.  It seems that the stippling done
  for the disabled image is somehow based on the original
  -bg color, and is not updated when the -bg is changed.

  The problem can be seen in the following code snippet.

  image create photo play -file trans.gif
  button .b1 -image play
  pack .b1
  .b1 configure -state disabled
  .b1 configure -bg red

  Jeff Godfrey


tkt_uuid: 1311734fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 74. Application Embedding
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: Fixed
title: Embedded windows fail to response to Windows display changes
comment:
  The following scripts show the problem:

  pack [frame .f -container 1]
  set id [winfo id .f]
  toplevel .t -use $id
  button .t.b -text Button -comm "puts ..."
  pack .t.b

  # 
  # change the display to a different depth and find 
  # the button become black.
  # The same problem also occures in all previous 
  # Tk versions (Windows)
  #


tkt_uuid: 1319720fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 23. Option Parsing
priority: 5 Medium
foundin: obsolete: 8.5a3
resolution: Fixed
title: Tk_DeleteOptionTable leaks & Tk_CreateOptionTable short allo
comment:
  Tk_CreateOptionTable allocates the option table one 
  entry too short, since it mis-calculates number of 
  options

  Tk_DeleteOptionTable does not delete the last option's 
  default value causing a memory leak.

  patch included


tkt_uuid: 1322294fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 75. wish
priority: 9 Immediate
foundin: obsolete: 8.5a4
resolution: Duplicate
title: Tcl_Panic on exit
comment:
  Latest cvs head of tcl, tk, when running on Windows,
  crash on exit here:

  /*
   * There have been several bugs in the past that cause
  exit handlers
   * to be established during Tcl_Finalize processing.
  Such exit
   * handlers leave malloc'ed memory, and
  Tcl_FinalizeThreadAlloc or
   * Tcl_FinalizeMemorySubsystem will result in a
  corrupted heap. The
   * result can be a mysterious crash on process exit.
  Check here that
   * nobody's done this.
   */

  if (firstExitPtr != NULL) {
      Tcl_Panic("exit handlers were created during
  Tcl_Finalize");
  }

  in tclEvent.c. 

  I've filed this against Tk, since Wish crashes for me,
  but Tclsh does not.

  Vince.


tkt_uuid: 1323972fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 65. Generic Window Operations
priority: 9 Immediate
foundin: obsolete: 8.4.11
resolution: Fixed
title: wm-grid-1.11,12 failures
comment:
  tests fail on tip of core-8-4-branch:

  ==== wm-grid-1.11 usage FAILED
  ==== Contents of test case:

      list [catch {wm grid . 13 14 -1 16} msg] $msg

  ---- Result was:
  1 {widthInc can't be <= 0}
  ---- Result should have been (exact matching):
  1 {widthInc can't be < 0}
  ==== wm-grid-1.11 FAILED


  ==== wm-grid-1.12 usage FAILED
  ==== Contents of test case:

      list [catch {wm grid . 13 14 15 -1} msg] $msg

  ---- Result was:
  1 {heightInc can't be <= 0}
  ---- Result should have been (exact matching):
  1 {heightInc can't be < 0}
  ==== wm-grid-1.12 FAILED


tkt_uuid: 1325988fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 83. Mac OS X Build
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: None
title: tk dyn build fails
comment:
  This line in tk/unix/configure(.in)
  TK_SHLIB_LD_EXTRAS="${TK_SHLIB_LD_EXTRAS}"'
  -install_name ${DYLIB_INSTALL_DIR}/${TK_LIB_FILE}
  -seg1addr 0xb000000 -unexported_symbols_list
  $$(f=$(TCL_STUB_LIB_FILE).E && nm -gjp
  $(TCL_BIN_DIR)/$(TCL_STUB_LIB_FILE) | tail +3

  makes tk dyn fail because of the output of nm -qjp wich
  includes blank lines and multiple modules paths.

  Rewriting it this way works better but there is still
  warning messages:
  TK_SHLIB_LD_EXTRAS="${TK_SHLIB_LD_EXTRAS}"'
  -install_name ${DYLIB_INSTALL_DIR}/${TK_LIB_FILE}
  -seg1addr 0xb000000 -unexported_symbols_list
  $$(f=$(TCL_STUB_LIB_FILE).E && nm -gjp
  $(TCL_BIN_DIR)/$(TCL_STUB_LIB_FILE) | tail +3 | awk
  "/^$$/ {exit} {print \$$0}" > $$f && echo $$f)'


  Errors with original line:
  ld: symbols names listed in -unexported_symbols_list:
  libtclstub8.5.a.E not in linked objects
  /Users/zazou/tclkit-builds/build/ZMac.local/tcl/libtclstub8.5.a(strtoll.o):
  /Users/zazou/tclkit-builds/build/ZMac.local/tcl/libtclstub8.5.a(strtoull.o):
  __CurrentRuneLocale
  ____runetype
  ___error
  _strtoll
  _strtoull
  /usr/bin/libtool: internal link edit command failed
  make: *** [libtk8.5.dylib] Error 1

  Warnings with the patched line:
  ld: warning multiple definitions of symbol _strtoll
  /Users/zazou/tclkit-builds/build/ZMac.local/tcl/libtcl8.5.a(strtoll.o)
  definition of _strtoll in section (__TEXT,__text)
  /usr/lib//libSystem.dylib(strtoll.So) definition of
  _strtoll


tkt_uuid: 1325998fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 9 Immediate
foundin: obsolete: 8.5a4
resolution: Fixed
title: textWind-10.6.1 freezes
comment:
  textWind-10.6.1 from tk/tests/textWind.test freezes for me.

  Running context:

  tclkit-8.5a4 (build against HEAD)
  OS: Ubuntu linux 2.6.10-5-686
  wm: gnome+metacity 2.10.0


tkt_uuid: 1327471fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 12. Unix Menus
priority: 9 Immediate
foundin: obsolete: 8.4.19
resolution: Wont Fix
title: Stickyness of Unix menus is feature change
comment:
  In 8.4.10, a change was introduced in menu.tcl, which
  made Unix popup menus stay open when the mouse button
  was released over a non-active item or the menu border.

  This is a feature change that breaks the previous Unix
  popup menu behaviour. Refer to menu.n which states:
  "When a button is released over a menu, the active
  entry (if any) is invoked.
  The menu also unposts unless it is a torn-off menu."

  Rather, the previous behaviour should be retained.


tkt_uuid: 1327482fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 04. Canvas Basics
priority: 9 Immediate
foundin: obsolete: 8.4.19
resolution: Accepted
title: Missing <Enter> events for items
comment:
  When a <ButtonPress> (setting LEFT_GRABBED_ITEM), e.g.,
  is bound to tk_popup a menu (triggering <Leave> item
  and <Leave> canvas), leaving the menu with the pointer
  positioned in the original item triggers <Enter>
  canvas, but erroneously not <Enter> item.

  Reproducable on Unix by:
  pack [canvas .c]
  .c create text 50 50 -text X
  .c bind 1 <Enter> {puts "Enter 1"}
  .c bind 1 <Leave> {puts "Leave 1"}
  bind .c <Enter> {puts "Enter .c"}
  bind .c <Leave> {puts "Leave .c"}
  menu .m; .m add command -label Foo
  .c bind 1 <1> {tk_popup .m %X %Y}

  Left press on the X, leave the menu back onto the X,
  and release the left button.

  On Windows the issue can be provoked by replacing the
  last two lines of the script above by:
  toplevel .m -bg grey; wm overrideredirect .m 1; wm
  withdraw .m
  .c bind 1 <1> {wm geometry .m +%X+%Y; wm deiconify .m;
  raise .m; grab .m}


tkt_uuid: 1328926fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 74. Application Embedding
priority: 7 High
foundin: obsolete: 8.4.11
resolution: Fixed
title: some args turned into garbages on cp932
comment:
  ActiveTcl8.4.11.2/Windows2000 SP4
  Japanese(system encoding is cp932)

  this test needs cp932 system like as Windows for Japanese.

  exec echo "puts \$argv; exit" > argv.tcl
  set edo \u6C5F\u6238;# 8D 5D 8C CB in cp932
  if {$edo ne [exec wish argv.tcl $edo]} {puts "error"}


  If multi-byte arg string had 0x5B, 0x5D, 0x7B, 0x7D,
  these chars were escaped before convertto utf-8.
  it makes garbages.

  We should convert multi-byte args to utf-8 args one by
  one, 
  and then create a list and set to argv in
  Tk_MainEx(generic/tkMain.c).
  We shouldn't use Tcl_Merge to multi-byte string.

  This problem is same as Tcl Bug #1306162.
  tclsh.exe was fixed recently, but wish.exe isn't yet.

  thanks


tkt_uuid: 1329198fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 13. Win Menus
priority: 8
foundin: obsolete: 8.5.4
resolution: Fixed
title: Menu and Image Problems
comment:
  Summary:
  Images are only partially displayed in menus.

  Details:
  Check the following screenshot:
  http://barre.nom.fr/temp/popupmenupb.png
  The first picture on the left shows a popup-menu 
  as it is posted. The second picture was captured 
  after I actually moved the mouse over the first 
  entry. Noticed how the icon has been refreshed 
  and is now displayed correctly. In the last image, I 
  have actually moved the mouse over the first 4 
  items. The last two icons are still displayed 
  incorrectly. It seems the part of the icons that is 
  displayed matches the vertical size of a text 
  character in the menu. Each time the menu is 
  posted, only parts of the icons are displayed.

  Reproducibility:
  This bug can be reproduced with transparent and 
  non-transparent images (as opposed to bitmaps), 
  with or without the "-compound" option and with 
  any type of menu entries. It was tested on 8.4.11 
  and 8.5a3.

  Donal K. Fellows suggested me that this bug 
  might have been submitted and fixed in the past 
  already, but never backported to 8.4 or 8.5. I 
  browsed the bug database and found the 
  following suspect (607649):
  http://sourceforge.net/tracker/?
  group_id=12997&atid=112997&func=detail&aid=6
  07649
  Jeffrey Hobbs took a stab at it, but apparently the 
  bug was never really closed. Here is the commit:
  http://cvs.sourceforge.net/viewcvs.py/tktoolkit/tk/
  generic/tkMenu.c?r1=1.20.2.2&r2=1.20.2.3

  Anyhow, this simple script will do the trick:
  set floppy [image create photo -file floppy.gif]
  set folder [image create photo -file folder.gif]
  menu .foo
  .foo add radiobutton -label "foo" -image 
  $floppy -compound left
  .foo add radiobutton -label "bar" -image 
  $folder -compound left
  bind . <Button-1> {tk_popup .foo %X %Y}
  I've attached this script and the two GIF images 
  (any GIF images would do anyway), but they can 
  also be downloaded from here:
  http://barre.nom.fr/temp/test.zip

  If you guys could have a look at it, that would be 
  great (and if it could make its way to 8.4.12, that 
  would make my day too :)

  Thanks


tkt_uuid: 1333951fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: Fixed
title: .text count -displaylines gives wrong result (regression)
comment:
  The attached file appears to show a bug in the command
  .text count -displaylines
  As a consequence, the Text bindings misbehave.
  The bug occurs under Linux in ActiveState beta 4
  (8.5a4), but not in ActiveState beta 3.


tkt_uuid: 1334613fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 6
foundin: obsolete: 8.5a4
resolution: Fixed
title: -lX11 link order is wrong
comment:
  NetBSD builds of libtk fail to work properly in tclsh
  with [package require Tk].  This also makes it more
  difficult to build a tclkit.  -lX11 is used only when
  building wish.  The proper way to build is to link
  *libtk* with -lX11, so that the runtime linker will be
  able to load all dependencies in the tclkit or tclsh
  cases of [package require Tk]


tkt_uuid: 1335485fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 37. [tk_get*File]
priority: 6
foundin: obsolete: 8.4.9
resolution: Fixed
title: Error if parent widget has space in name
comment:
  (ActiveTcl 8.4.9 on a Fedora Core 4 box)

  % frame {.big gap}
  .big gap
  % tk_getSaveFile -parent {.big gap}

  ...gives the following error box when you hit Save:

  can't set "data(selectPath)": wrong # args: should be
  "::tk::dialog::file::SetPath w name1 name2 op"
  can't set "data(selectPath)": wrong # args: should be
  "::tk::dialog::file::SetPath w name1 name2 op"
      while executing
  "set data(selectPath) $path"
      (procedure "::tk::dialog::file::SetPathSilently"
  line 5)
      invoked from within
  "::tk::dialog::file::SetPathSilently $w $path"
      ("OK" arm line 7)
      invoked from within
  "switch -- $flag {
  OK {
      if {[string equal $file ""]} {
  # user has entered an existing (sub)directory
  set data(selectPath) $path
  $data(ent) ..."
      (procedure "::tk::dialog::file::VerifyFileName" line 9)
      invoked from within
  "::tk::dialog::file::VerifyFileName $w $text"
      (procedure "::tk::dialog::file::ActivateEnt" line 22)
      invoked from within
  "::tk::dialog::file::ActivateEnt $w"
      (procedure "::tk::dialog::file::OkCmd" line 18)
      invoked from within
  "::tk::dialog::file::OkCmd {.big gap.__tk_filedialog}"
      invoked from within
  "{.big gap.__tk_filedialog.f2.ok} invoke"
      ("uplevel" body line 1)
      invoked from within
  "uplevel #0 [list $w invoke]"
      (procedure "tk::ButtonUp" line 22)
      invoked from within
  "tk::ButtonUp .big\ gap.__tk_filedialog.f2.ok"
      (command bound to event)


tkt_uuid: 1336228fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 62. Geometry Functions
priority: 5 Medium
foundin: None
resolution: None
title: place / winfo problem
comment:
  Hi guys,

  I'm playing with some frames inside frames to obtain a
  functionality similar to MDI windows.

  Doing that I've detected that the commands place and
  winfo gives the result with a diference of 2 pixels.

  If

  array set placeInfo [place info $_Tk]
  set _NormY $placeInfo(-y)
  set _NormY2 [winfo y $_Tk]

  Then

  _NormY = _NormY2 + 2

  If you need more info don't hesitate to contact me.


tkt_uuid: 1336531fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 83. Mac OS X Build
priority: 5 Medium
foundin: None
resolution: Accepted
title: Drop use of Tcl internals
comment:
  Several files matching tk/macosx/tkMacOSX*.c
  include the private header file tclInt.h.  Most
  of them, I see no reason why this is so --
  perhaps a vestige of some copy/paste?

  tkMacOSXNotify.c uses TCL_TSD_INIT
  which ought to just be replaced by its
  expansion, which is fully public.

  tkMacOSXScrlbr.c calls TclServiceIdle()
  which is the only obvious need for access
  to Tcl privates.  If this cannot be done
  away with, perhaps a TIP to expose
  TclServiceIdle in Tcl's public interface
  is in order?


tkt_uuid: 1348333fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 69. Events
priority: 8
foundin: obsolete: 8.5a3
resolution: None
title: 8.5 text widget creates to many timers
comment:
  # Tk 8.5 cannot cope with a large number of 'idletasks'
  delayed actions, and
  # it hangs, consuming most of the system's CPU - even
  though it is able to
  # process the same actions if they are split by update
  commands.
  #
  # ActiveTcl 8.5 beta 3 (tcl_patchLevel 8.5a2) and
  ActiveTcl 8.5 beta 4 (8.5a4,
  # threaded) both have this problem.
  #
  # Tk 8.4 does not have this problem: ActiveTcl 8.4.11.2
  (8.4.11, threaded) and
  # ActiveTcl 8.4.9.0 (8.4.9) tested.
  #
  # The attached script creates and maps a large number
  of text widgets, with
  # the option of using update after each widget is
  created, and (separately)
  # after it is mapped.

  # Mapping a large number of widgets gives Tk 8.5 a problem.
  # Creation of a large number of unmapped widgets also
  gives Tk 8.5 a problem.

  # The numbers of widgets, though large, are not
  perversely large - I have apps
  # with more than 150 widgets - and Tk 8.4 has no
  problem with much larger
  # numbers.

  # 100 widgets: OK always.
  # 144 to 900 widgets: OK in 8.4 always; fails in Tk 8.5
  if updates are not
  # switched on.


tkt_uuid: 1353022fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 37. [tk_get*File]
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: Fixed
title: Un-free'd Tcl_DString in win/tkWinDialog.c
comment:
  1 In both FILE_INITFILE cases of both GetFileNameA 
  and GetFileNameW, the ds Tcl_DString is not free'd.

  (Since both functions are so similar, might be worth 
  separating the common parts out into a single function.)


  2. Also spotted:

  line ~1964
   Tcl_TranslateFileName(..., &initDirString)
  where the initDirString is then used without checking that
  the function didn't return NULL ie. the DString is 
  uninitialised. Not sure if this is a triggerable bug, but 
  worth checking.


tkt_uuid: 1353414fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 53. [selection]
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: Fixed
title: [selection get -type TARGETS] returns a non-list
comment:
  If a graphic in OpenOffice.org is on the clipboard, and
  a Tcl script does [selection get -type TARGETS], the
  result does not have one list element per target type
  and in some cases is not even a well-formed list.

  % selection get -type TARGETS
  application/x-openoffice-svxb;windows_formatname="SVXB
  (StarView Bitmap/Animation)"
  application/x-openoffice-gdimetafile;windows_formatname="GDIMetaFile"
  application/x-openoffice-emf;windows_formatname="Image
  EMF"
  application/x-openoffice-wmf;windows_formatname="Image
  WMF"
  application/x-openoffice-bitmap;windows_formatname="Bitmap"
  PIXMAP image/bmp MULTIPLE

  Admittedly, OOo is taking liberties with XA_TARGETS,
  but Tk should tolerate their screwiness.


tkt_uuid: 1358663fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 4
foundin: None
resolution: Fixed
title: wm geometry -x-y
comment:
  Specifying:

  wm geometry . -0-0

  is documented as placing the bottom right corner of the window at the 
  bottom right corner of the screen.

  Testing on Mac OSX 10.3.9, the beta 8.5 release from the ActiveState 
  site (info patchlevel shows 8.5a4) running under Wish, puts the window 
  off screen (-30-30 shows just the upper left corner of the window at 
  the bottom right portion of the screen).

  I noticed this in 8.4.9, probably always been this way.  I don't know if it 
  is Mac specific or more generic.

  Incidentally, the change to (I guess to make more consistent with other 
  platforms) make +0+0 put the content at the upper left corner of the 
  screen is a step backwards - it is almost NEVER what is intended, you 
  want the WINDOW to be there, including decorations.  This should be 
  changed on other platforms, not make it work incorrectly on the Mac.  
  If it is really intended to put the content there, then offsetting it by the 
  size of the window decoration (there is a way to find that out, right?) 
  makes more sense than to make everyone else do it backwards.


tkt_uuid: 1370296fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 9 Immediate
foundin: obsolete: 8.5a4
resolution: Fixed
title: test failures: error messages
comment:
  ==== textDisp-14.15 TkTextXviewCmd procedure FAILED
  ==== Contents of test case:

      list [catch {.t xview scroll 14 globs} msg] $msg

  ---- Result was:
  1 {bad argument "globs": must be units, pages, or pixels}
  ---- Result should have been (exact matching):
  1 {bad argument "globs": must be units, pages or pixels}
  ==== textDisp-14.15 FAILED


  ==== textDisp-14.16 TkTextXviewCmd procedure FAILED
  ==== Contents of test case:

      list [catch {.t xview flounder} msg] $msg

  ---- Result was:
  1 {bad option "flounder": must be moveto or scroll}
  ---- Result should have been (exact matching):
  1 {unknown option "flounder": must be moveto or scroll}
  ==== textDisp-14.16 FAILED


  ==== textDisp-16.2 TkTextYviewCmd procedure FAILED
  ==== Contents of test case:

      list [catch {.t yview 2 3} msg] $msg

  ---- Result was:
  1 {bad option "2": must be moveto or scroll}
  ---- Result should have been (exact matching):
  1 {unknown option "2": must be moveto or scroll}
  ==== textDisp-16.2 FAILED

  ==== textDisp-16.5 TkTextYviewCmd procedure FAILED
  ==== Contents of test case:

      list [catch {.t yview -bogus 2} msg] $msg

  ---- Result was:
  1 {bad option "-bogus": must be moveto or scroll}
  ---- Result should have been (exact matching):
  1 {unknown option "-bogus": must be moveto or scroll}
  ==== textDisp-16.5 FAILED


  ==== textDisp-16.21 TkTextYviewCmd procedure, "scroll"
  option FAILED
  ==== Contents of test case:

      list [catch {.t yview scroll badInt bogus} msg] $msg

  ---- Result was:
  1 {bad argument "bogus": must be units, pages, or pixels}
  ---- Result should have been (exact matching):
  1 {bad argument "bogus": must be units, pages or pixels}
  ==== textDisp-16.21 FAILED


  ==== textDisp-16.22.1 TkTextYviewCmd procedure,
  "scroll" option, back pages FAILED
  ==== Contents of test case:

      list [catch {.t yview scroll -3 p} res] $res

  ---- Result was:
  1 {ambiguous argument "p": must be units, pages, or pixels}
  ---- Result should have been (exact matching):
  1 {ambiguous argument "p": must be units, pages or pixels}
  ==== textDisp-16.22.1 FAILED


  ==== textDisp-16.32 TkTextYviewCmd procedure FAILED
  ==== Contents of test case:

      list [catch {.t yview scroll 12 bogoids} msg] $msg

  ---- Result was:
  1 {bad argument "bogoids": must be units, pages, or pixels}
  ---- Result should have been (exact matching):
  1 {bad argument "bogoids": must be units, pages or pixels}
  ==== textDisp-16.32 FAILED

  ==== textDisp-16.33 TkTextYviewCmd procedure FAILED
  ==== Contents of test case:

      list [catch {.t yview bad_arg 1 2} msg] $msg

  ---- Result was:
  1 {bad option "bad_arg": must be moveto or scroll}
  ---- Result should have been (exact matching):
  1 {unknown option "bad_arg": must be moveto or scroll}
  ==== textDisp-16.33 FAILED


tkt_uuid: 1372483fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 12. Unix Menus
priority: 5 Medium
foundin: None
resolution: None
title: Change mouse cursor appearance in menus
comment:
  In top level menus and menubuttons, the cursor changes
  from a left pointing arrow to a right pointing arrow as
  soon as a selection is made, and remains this way while
  the menu is open. This is inconsistent with other Linux
  applications and desktops which do not change the
  cursor direction. Request the cursor direction remains
  unchanged in menus.


tkt_uuid: 1373712fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 32. Key Symbols
priority: 8
foundin: obsolete: 8.5a4
resolution: Fixed
title: XIM does not work when %A is in binding
comment:
  Consider the following examples:

  entry .x
  pack .x
  bind .x <Key> { puts "Key %A"; }

  #and

  text .y
  pack .y
  bind .y <Key> { puts "Key %A"; }

  They both result in corresponding widget being
  displayed; when I confirm a character in XIM's dialog
  and it should get inserted, nothing is displayed. If I
  access widgets contents, it is empty. But on the
  terminal all corresponding "Key ..." strings are printed.

  However, cutting-and-pasting works for the same characters.

  In opposite, if I use the following scripts, widgets
  behave completely as expected and XIM works fine:

  entry .x
  pack .x
  bind .x <Key> { puts "Key"; }

  #and

  text .y
  pack .y
  bind .y <Key> { puts "Key"; }

  I only have a Debian "etch" Linux system to test this
  behaviour. It is stably reproducible.

  Danya.


tkt_uuid: 1373887fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 41. Photo Images
priority: 9 Immediate
foundin: obsolete: 8.5a4
resolution: Invalid
title: PHOTO_PUT path has a potential memory fault
comment:
    for (x = 0; x < dataWidth; ++x) {
      char *colorString = Tcl_GetString(listObjv[x]);
      XColor color;
      int tmpr, tmpg, tmpb;
      /*long comment removed*/
      if (colorString[0] == '#') {
       if (isxdigit(UCHAR(colorString[1])) &&
        isxdigit(UCHAR(colorString[2])) &&
        isxdigit(UCHAR(colorString[3]))) {

  From what I see the length of the colorString is never
  checked, so isxdigit may be checking garbage, or beyond
  an allocated region.

  Later on the sscanf usage appears to be another case of
  this potential invalid length.

  It appears that 8.4 does not use this code.


tkt_uuid: 1374119fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 68. Win Window Operations
priority: 8
foundin: None
resolution: Fixed
title: keyboard-input charset not initialized correctly on Win32
comment:
  Problem from users' perspective: Windows users of my 
  Tk-based app who    
  have Czech keyboard (CS) set as *default* couldn't  
  input   
  Czech characters into input entries until they switch   
  from CS->EN->CS using the Alt+Shift    
  Windows shortcut (until they do, messy characters   
  appear on the screen instead). After the switching to   
  EN and back everything worked fine (it also  works   
  fine if EN keyboard layout is the default and the   
  user switches to CZ after the app starts).    
      
  Going through the win32 sources, I identified the   
  problem win/tkWinX.c. The best patch I could manage   
  is attached.    
      
  Here's what happens: tkWinX tracks keyboard layout    
  switches by listening to the  Win32   
  WM_INPUTLANGCHANGE event in order to keep its info   
  about the current  input encoding up-to-date. The   
  problem is, that it doesn't initialize its  internal   
  variables according to the initial layout at 
  aplication startup (probably   
  assuming its always EN).   
     
  The patch adds a short code to TkWinXInit that uses   
  GetKeyboardLayout winapi call to determine current   
  keyboard layout, then translates this information   
  into charset code which it uses to update the Tk's   
  variables in the exact same way as WM_INPUTLANGCHANGE   
  event does.   
     
  Please have a look at the patch and consider applying    
  it. The diff is taken against CVS head.   


tkt_uuid: 1374556fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: None
priority: 5 Medium
foundin: obsolete: 8.4.12
resolution: None
title: sparc solaris 8 test results in lots of errors
comment:
  SPARC Solaris 8, accessed via Exceed 8.0.0.0 on a
  Windows XP SP2 system.

  Tcl 8.4.12 RC 3 and Tk 8.4.12 RC 2

  Configured via 
  ./configure  --prefix=/tmp --enable-threads
  --enable-shared --enable-symbols --enable-langinfo

  I am attaching the results of the "make test" - 44
  tests failed. 

  Caveat - this is the first time I've run the test
  through Exceed. Normally I run the test straight on
  Solaris.
  So I don't have any experience for comparison.


tkt_uuid: 1374935fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 8
foundin: obsolete: 8.5a4
resolution: Fixed
title: tcl/tk 8.5 peer crash: text tag names
comment:
  #! /bin/sh
  # -*- tcl -*- \
  exec wish $0 $@

  package require Tcl 8.5
  package require Tk 8.5

  text .text
  .text insert 1.0 "This is just a normal text widget"
  puts [.text tag names]
  .text peer create .peer
  puts [.text tag names]
  grid .text
  grid .peer


  The 1st puts works fine.
  The 2nd one seg faults.

  tcl/tk 8.5a4 run on sparc solaris 2.8


tkt_uuid: 1375069fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 18. [text]
priority: 9 Immediate
foundin: None
resolution: Fixed
title: Fix for Bug 1374935
comment:
  Index: tkTextTag.c
  =============================================
  ======================
  RCS file: /cvsroot/tktoolkit/tk/generic/tkTextTag.c,v
  retrieving revision 1.22
  diff -p -r1.22 tkTextTag.c
  *** tkTextTag.c 17 Nov 2005 10:57:35 -0000      1.22
  --- tkTextTag.c 7 Dec 2005 06:58:20 -0000
  *************** TkTextTagCmd(
  *** 623,630 ****
               * The 'sel' tag is not in the hash table.
               */
    
  !           arrayPtr[i] = textPtr->selTagPtr;
  !           arraySize = textPtr->sharedTextPtr->numTags;
          } else {
              if (TkTextGetObjIndex(interp, textPtr, objv[3],
                      &index1) != TCL_OK) {
  --- 623,630 ----
               * The 'sel' tag is not in the hash table.
               */
    
  !           arrayPtr[i++] = textPtr->selTagPtr;
  !           arraySize = i; /*textPtr->sharedTextPtr->numTags;*/
          } else {
              if (TkTextGetObjIndex(interp, textPtr, objv[3],
                      &index1) != TCL_OK) {


tkt_uuid: 1375436fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 69. Events
priority: 5 Medium
foundin: obsolete: 8.5a3
resolution: Fixed
title: compilation error in dec 5 cvs head snapshot
comment:
  I downloaded the tk-20051205.tar.gz file from the
  activestate snapshot tar file repository. I
  configured it on a SPARC Solaris 8 system (Sun's C
  compiler) with the flags:

  --prefix=/volws/lwv27/ldatae --enable-threads
  --enable-shared --enable-symbols -enable-langinfo

  The compilation step failed at this point:

  cc -c -g   -KPIC -I/vol/tclsrcsol/tcl85/tk/unix/../unix
  -I/vol/tclsrcsol/tcl85/t
  k/unix/../generic
  -I/vol/tclsrcsol/tcl85/tk/unix/../bitmaps
  -I/vol/tclsrcsol/tcl
  85/tcl/generic -I/vol/tclsrcsol/tcl85/tcl/unix
  -I/usr/openwin/include -DPACKAGE_
  NAME=\"tk\" -DPACKAGE_TARNAME=\"tk\"
  -DPACKAGE_VERSION=\"8.5\" -DPACKAGE_STRING=
  \"tk\ 8.5\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1
  -DHAVE_SYS_TYPES_H=1 -DHAV
  E_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
  -DHAVE_MEMORY_H=1 -DHAVE_STRI
  NGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_UNISTD_H=1
  -DHAVE_LIMITS_H=1 -DTCL_THREADS=1 
  -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1
  -D_POSIX_PTHREAD_SEMANTICS=1 -D_THREAD_SAFE=
  1 -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -D_REENTRANT=1
  -D_POSIX_PTHREAD_SEMANTICS=1
   -DTCL_SHLIB_EXT=\".so\" -DTCL_CFG_DEBUG=1
  -DTCL_WIDE_INT_TYPE=long\ long -DHAVE
  _STRUCT_DIRENT64=1 -DHAVE_STRUCT_STAT64=1
  -DHAVE_OPEN64=1 -DHAVE_LSEEK64=1 -DHAV
  E_TYPE_OFF64_T=1 -DWORDS_BIGENDIAN=1
  -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 
  -Dstrtod=fixstrtod -DHAVE_PW_GECOS=1 -DHAVE_XSS=1     
  -DTCL_NO_DEPRECATED  -DUS
  E_TCL_STUBS 
  /vol/tclsrcsol/tcl85/tk/unix/../unix/tkUnixEvent.c
  "/vol/tclsrcsol/tcl85/tk/unix/../unix/tkUnixEvent.c",
  line 653: invalid type combination
  cc: acomp failed for
  /vol/tclsrcsol/tcl85/tk/unix/../unix/tkUnixEvent.c
  gmake: *** [tkUnixEvent.o] Error 2

  This line reads:

  const char const *scim = "@im=SCIM";

  If I place this line into a file by itself, with no
  include files, etc. and attempt to compile it, I get:
  $ cc /tmp/a.c -o /tmp/a.out
  "/tmp/a.c", line 4: invalid type combination
  cc: acomp failed for /tmp/a.c
  srv06 (534) $ cat /tmp/a.c

  int main(int argv, char **argc)
  {
          const char const *scim = "@im=SCIM";
  }


  Perhaps this is a GNU C construct?


tkt_uuid: 1376154fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 36. [tk_chooseDirectory]
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: Out of Date
title: tk::IconList_Curselection instead of tk::IconLisCurSelection
comment:
  IconList_Curselection seems to be renamed to
  tk::IconList_CurSelection (capital S in Selection)

  but in choosedir.tcl, tclIndex and unsupported the old
  syntax already exists. tk_chooseDir is broken. 


tkt_uuid: 1377209fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 9 Immediate
foundin: obsolete: 8.4.12
resolution: Fixed
title: tk.spec Requires: line
comment:
  [11:07]dgpIn the tk.spec file distributed with the Tk
  source...
  [11:07]dgp... we have:
  [11:08]dgpRequires: XFree86-libs >= 3.3.3,
  XFree86-devel >= 3.3.3, tcl = 8.4.12

  [11:08]rmaxdgp: please remove the XFree86-libs
  requirement. It's bogus.
  [11:09]rmaxsuch library dependencies are handled
  automatically by RPM.
  [11:10]rmax... and the name of the package providing
  the needed libraries might differ across distributions,
  especially after the XFree86 vs. X.org fork.


tkt_uuid: 1377481fffffffffffffffffffffffffffffffff
type: Patch
status: Open
subsystem: 25. Built-in Bitmaps
priority: 5 Medium
foundin: None
resolution: None
title: Patch to panic if Tk button resources not found
comment:
  I recently built a static executable that linked
  to a static Tk library (not a dll). Things seemed
  to work except for checkbuttons and related widgets.
  The problem was that my executable needed to also
  link in resources that were part of Tk build are
  not included in the static library. The Tk code
  was not a lot of help since it just silently did
  the wrong thing. I think this patch will fix it
  by calliung panic() if someone runs into this case
  in the future. This should not change anything
  about wish.exe or tk.dll, it should only matter
  when someone links to a static version of Tk.

  Mo DeJong


tkt_uuid: 1380427fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 9 Immediate
foundin: obsolete: 8.4.11
resolution: Fixed
title: text widget "undo" crash
comment:
  [Duplicated from mis-submitted Tcl Bug #1380338]

  The following source code create a simple text widget
  with 2 keys binding :

  alt-u (text undo)
  alt-r (text redo)

  When you type some chars in the text and then you make
  repeatedly alt-u and alt-r the tcl/tk 8.4.11
  crash under win32 and linux i386 too (invalid memory
  reference).

  Is it a bug ?

  Thank you


  ------------------------------------------------------
  ----------------------------------------------
  #code start here

  frame .f
  pack .f -fill both -expand 1

  text .f.testo -width 40 -height 10 -borderwidth 2 \
  -setgrid 1 -undo 1 -maxundo 20 -autoseparators 0
  pack .f.testo -fill both -expand 1


  bind Text <Alt-r> {}
  bind .f.testo <Alt-r> {

  catch { .f.testo edit redo }
  }

  bind Text <Alt-u> {}
  bind .f.testo <Alt-u> {

  catch { .f.testo edit undo }
  }

  bind .f.testo <KeyPress> {

  catch { .f.testo edit separator }
  }


  focus -force .f.testo
  #code end here
  ------------------------------------------------------
  -----------------------------------------------


tkt_uuid: 1380452fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 02. Appearance
priority: 5 Medium
foundin: obsolete: 8.4.11
resolution: Invalid
title: wm iconbitmap show a black icon on win32
comment:
  On Windows 2000, using a command like the following

  wm iconbitmap . "@$ICON_NAME"

  causes the tcl/tk 8.4.11 shows a black window's icon
  instead of the correct window's icon.

  The same command works well on Windows XP SP2 and
  shows the correct $ICON_NAME

  Is it a bug ?

  Thank you


tkt_uuid: 1386955fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 54. [console]
priority: 9 Immediate
foundin: None
resolution: Fixed
title: Tiny enhancement to the documentation
comment:
  Hi there,
  while the 'console' command is documented along all
  other  Tk commands, it is special in that it is not
  available via a 'package require Tk'. Maybe this should
  be mentioned?
  I suggest the following: To the first paragraph of the
  section 'Description' add:
     >>>
  Note: This command is only available from within
  "wish", not via a [package require Tk] from tclsh.
     <<<

  Thanks and best regards
  Helmut Giese


tkt_uuid: 1389270fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 69. Events
priority: 4
foundin: None
resolution: Fixed
title: [event generate <FocusIn>] should work
comment:
  FocusIn and FocusOut events generated by [event
  generate] are now filtered out in TkFocusFilterEvent
  unless their send_event field is assigned some magic
  value. 

  Fortunately numeric send_event is allowed, but it would
  be great if the appropriate magic value were inserted
  as a default for send_event field by
  TkBind.c:HandleEventGenerate(). 

  I recognise that TkFocusFilterEvent does the important
  work of not letting the weird Xwindow notion of focus
  influence Tk's behavior. However, if an application
  writer wants to generate FocusIn or FocusOut (perhaps
  to make some widget think it has focus), he _should_ be
  allowed to do so without exploring TkFocus.c to find
  some GENERATED_EVENT_MAGIC there. It would save me a
  few hours today if it just worked.


tkt_uuid: 1391053fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 68. Win Window Operations
priority: 5 Medium
foundin: None
resolution: None
title: Win32 nonclient double-click causes spurious Button-1 in app
comment:
  The bug is a long-standing one, so there may be
  duplicate reports (though I've not found them). The
  patch solving the problem is attached.

  When I maximize a Tk window by double-clicking its
  title bar, and the mouse cursor is then located within
  a Tk window (this one or another), the window under the
  cursor receives <Button-1>. The same thing may be
  observed when closing a dialog window with
  double-clicking its system menu button (there are 
  traditional workarounds for it).

  The problem is caused by the following thing: when a
  non-client area of a decorative frame receives a mouse
  click, this event comes to WmProc() as WM_NCLBUTTONDOWN
  (or other WM_NC* message of this kind). Normal mouse
  clicks cause Tk to query the current mouse state
  immediately (Tk_PointerEvent()), but non-client clicks
  don't. So the next call to Tk_PointerEvent() will
  notice that the button is down, and a new event will be
  generated... but the windows may be already moved,
  maximized, closed since the real click has happened.
  This is exactly the case when the non-client click is
  to maximize or close a window.

  The solution (see attachment) is to call
  Tk_PointerEvent immediately when WM_NCLBUTTONDOWN or
  its counterparts are received in WmProc(). 

  If someone decide to refactor the patch by putting the
  WM_NC*-related code in TranslateWinEvent(), I want him
  to remember that the defWindowProc _must_ be always
  called for these events. It's sooo easy to forget it,
  and forgetting it will cause a Very Bad Thing.


tkt_uuid: 1391852fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 18. [text]
priority: 5 Medium
foundin: None
resolution: Fixed
title: Patch for Bug 1275237
comment:
  This patch fixes bug 1275237. Please read my comment 
  attached to that bug, as there may be a better patch 
  (by doing nothing when inserting an empty string).


tkt_uuid: 1394260fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 01. Bindings
priority: 5 Medium
foundin: None
resolution: Invalid
title: Mouse wheel doesn't modify for ScrolledWindow
comment:
  The mouse wheel works for moving a ScrolledWindow
  widget up and down, but so do ctrl-mousewheel and
  shift-mousewheel. One of these (probably
  shift-mousewheel) should scroll horizontally while the
  other should be left for the developer to do something
  application-specific, e.g., zoom.


tkt_uuid: 1395558fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 5 Medium
foundin: obsolete: 8.4.12
resolution: Out of Date
title: configure error with tk 8.4.12
comment:
  Using bash 3.1  I get the below error.

  line 6067: syntax error near unexpected token `('
  ./configure: line 6067: `  case `(ac_space=' '; set |
  grep ac_space) 2>&1` in'

  If I remove the ( ) I then get the below error.

  ./configure: line 6112: syntax error near unexpected
  token `{}\\'
  ./configure: line 6112: `s%[   
  `~#$^&*(){}\\|;'"<>?]%\\&%g'


tkt_uuid: 1397753fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 01. Bindings
priority: 5 Medium
foundin: obsolete: 8.4.12
resolution: None
title: XF86_Switch_VT_1 and shifted function keys
comment:
  On Debian Linux 3.1 with Gnome I have problems with
  shifted function keys not generating the correct bindings.

  % puts $tcl_patchLevel
  8.4.12
  % puts $tk_patchLevel
  8.4.12
  % bind . <Any-Key> {puts %K}

  I then hit shift F1 and it prints up:

  Shift_L
  XF86_Switch_VT_1

  Gnome uses xkb and it has definitions as follows:

  $ less /etc/X11/xkb/symbols/pc/pc
  ...
      // Begin "Function" section
      key <FK01> {
          type="CTRL+ALT",
          symbols[Group1]= [ F1,  XF86_Switch_VT_1 ]
      };
  ...

  This *should* mean control+alt+F1. Indeed pressing that
  switches to the first text console.

  I can override this using xmodmap, which on my keyboard
  layout means:

  keycode 67 = F1
  ...

  If I use xmodmap on that then Tcl correctly reports
  Shift_L and F1 for shift+F1 and bindings work as
  expected. However I then cannot do control+alt+f1 to
  switch to text console 1.

  This implies two things.

  1) xkb is working and Control + Alt really are the
  modifiers for F1 to switch consoles. (Shift F1 wasn't
  switching consoles)

  2) Tk is confusing the Control+Alt as a Shift modifier.

  I think this has been a stealth change in XFree86. Xkb
  is hopelessly poorly documented. Using "xmodmap -pke |
  grep F1" also shows XF86_Switch_VT_1, but the confusion
  lies in the assumption that the second keysym value
  means Shift. My understanding is that previously the
  second level was always shift and functions like
  XLookupKeysym assume this, but once xkb was added the
  second level could be mapped to another modifier
  (Ctrl+Alt in this case). Supposedly XLookupString is
  xkb aware but XLookupKeysym is not. IMO this is an X
  bug (or at least an undocumented X incompatibility),
  but not according to the xkb developers so it would seem.

  Searching around I did find suitable hints elsewhere -
  XEmacs had the same bug  but they've now fixed it. The
  following 2 URLs may help:

  http://bugs.xfree86.org/show_bug.cgi?id=643
  http://list-archive.xemacs.org/xemacs-beta/200309/msg00044.html

  It sounds like XEmacs solved the issue by using
  XLookupString instead, but that appears to be what Tk
  uses anyway.

  James


tkt_uuid: 1408279fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 10. Generic Menus
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: None
title: (sub)menus do not automatically open when mouse over
comment:
  With TK 8.5a4, (sub)menus do not autmatically open 
  when the mouse is over them.  
  This was the the behaviour of TK 8.4, and it's really   
  better than having to click each (sub)menu entry to 
  open it.   
    
  Is this a feature or a bug?  
    


tkt_uuid: 1409140fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 41. Photo Images
priority: 8
foundin: obsolete: 8.4.11
resolution: Fixed
title: Tk_PhotoPutBlock 4 times slower than 8.4.4
comment:
  I have a C function which draws a freehand trace into 
  a photo using a series of calls to Tk_PhotoPutBlock().

  Each block contains a single 1 X 1 pixel 32-bit 
  (RGBA) value. A is always 255, and I'm using 
  TK_PHOTO_COMPOSITE_OVERLAY as the type.

  Tk use to be able to keep up with a users interactive 
  tracing, even on fairly slow machines. Since we've 
  upgraded to 8.4.11, the tracings are way behind, even 
  on FAST machines.

  I have not tested our other ports, only Windows, but 
  I suspect similiar results.

  Is the slowness a bug, or the results of adding too 
  many features? Is there a better way of writing 
  single pixels into a photo. I've tried manipulating 
  the photo memory directly, but have had trouble using 
  Tk_ImageChanged() to indicate what should be redrawn. 
  It core dump, probably because I'm not sure what to 
  pass as the imageMaster argument.


tkt_uuid: 1409264fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 79. L10N
priority: 9 Immediate
foundin: None
resolution: Fixed
title: bgerror not complete locale aware
comment:
  in bgerror.tcl (rev. 1.29) the following line isn't
  complete I18N:

  set text "Error: $displayedErr"

  Use this instead:

  set text [mc {Error: %1$s} $displayedErr]


tkt_uuid: 1410279fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 85. Win Build
priority: 9 Immediate
foundin: None
resolution: Fixed
title: in Tk8.4.12, wish84 fails to start up
comment:
  When Tk 8.4.12 is configured with CC="gcc -mno-cygwin"
  the MACHINE variable is not set, so the
  wish.exe.manifest file is generated with an empty
  processorArchitecture
  field.  Windows then refuses to start wish84 (cygwin's
  bash says "permission denied", Command Prompt says "The
  system cannot execute the specified program.") and
  generates a several SideBySide events in the System
  event log.  The attached patch is one possible workaround.


tkt_uuid: 1414025fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 07. [entry]
priority: 5 Medium
foundin: None
resolution: None
title: thin entry insertion cursor not visible
comment:
  In an entry widget with -insertwidth 1 -justify right,
  the insertion cursor is not visible after the last
  character.  The same problem occurs if the entry is not
  right-justified, but full:

      entry .e -insertwidth 1 -width 2
      .e insert end "00"

  In both cases, it is the -insertwidth 1 setting that
  makes the cursor disappear after the last character. 
  With the setting -insertwidth 2, the widget behaves as
  expected.  The bug is present on all platforms.

  Actually, this bug report partly duplicates the one
  with the number #643823, concerning right-justified
  entry widgets on the Macintosh.  It looks like
  (contrary to what was suspected in connection with that
  bug) the reason of the reported behavior on the Mac was
  not the platform, but the -insertwidth 1 setting, which
  is the default on Mac OS X Aqua.


tkt_uuid: 1414171fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 9 Immediate
foundin: obsolete: 8.4.9
resolution: Fixed
title: Text widget dumps core with -command option
comment:
  The text widget can be made to dump core with
  the following simple script (on 8.4.9 on Linux), when
  the dump -command is used where the command adds a tag.

  With more complex scripts 8.3 and 8.5 also dump core.
  Below is the coredump traceback which seems to
  show that segPtr->typePtr->name has been invalidated.

  ###########################################
  pack [text .t]
  .t insert end "abc\n" a "---" {} "def" b "   \n" {}
  "ghi\n" c
  .t tag configure b -background red

  proc Dumpy {key value index} {
    puts "KK: $key, $value"
    if {$value == "b" && $key == "tagon"} {
  puts TAGGING
      .t tag add $value [list $index linestart] [list
  $index lineend]
    }
  }
  .t dump -all -command Dumpy 1.0 end
  ##############################################

  #0  0x080c18af in DumpLine (interp=0x8132660,
  textPtr=0x81c9e90, what=31, 
      linePtr=0x8178430, startByte=0, endByte=32000000,
  lineno=1, 
      command=0x81c1218 "Dumpy")
      at
  /home/pcmacdon/Tcl/tk8.4.9/unix/../generic/tkText.c:2654
  2654                if ((what & TK_DUMP_MARK) &&
  (segPtr->typePtr->name[0] == 'm')) {
  (gdb) p segPtr
  $1 = (TkTextSegment *) 0x81760f8
  (gdb) p segPtr->typePtr
  $2 = (struct Tk_SegType *) 0x6c2f7273
  (gdb) p segPtr->typePtr->name
  Cannot access memory at address 0x6c2f7273
  (gdb) p what
  $3 = 31

  (gdb) bt
  #0  0x080c18af in DumpLine (interp=0x8132660,
  textPtr=0x81c9e90, what=31, 
      linePtr=0x8178430, startByte=0, endByte=32000000,
  lineno=1, 
      command=0x81c1218 "Dumpy")
      at
  /home/pcmacdon/Tcl/tk8.4.9/unix/../generic/tkText.c:2654
  #1  0x080c16f1 in TextDumpCmd (textPtr=0x81c9e90,
  interp=0x8132660, argc=7, 
      argv=0xbfffeeb8)
      at
  /home/pcmacdon/Tcl/tk8.4.9/unix/../generic/tkText.c:2582
  #2  0x080be1d4 in TextWidgetCmd (clientData=0x81c9e90,
  interp=0x8132660, 
      argc=7, argv=0xbfffeeb8)
      at
  /home/pcmacdon/Tcl/tk8.4.9/unix/../generic/tkText.c:849
  #3  0x40034417 in TclInvokeStringCommand ()
     from /home/pcmacdon/usr/lib/libtcl8.4.so
  #4  0x400354c7 in TclEvalObjvInternal ()
     from /home/pcmacdon/usr/lib/libtcl8.4.so
  #5  0x40035f1d in Tcl_EvalEx () from
  /home/pcmacdon/usr/lib/libtcl8.4.so
  #6  0x40072093 in Tcl_FSEvalFile () from
  /home/pcmacdon/usr/lib/libtcl8.4.so
  #7  0x40071157 in Tcl_EvalFile () from
  /home/pcmacdon/usr/lib/libtcl8.4.so
  #8  0x0805635f in Tk_MainEx (argc=1, argv=0xbffff518, 
      appInitProc=0x8055fbc <Tcl_AppInit>, interp=0x8132660)
      at
  /home/pcmacdon/Tcl/tk8.4.9/unix/../generic/tkMain.c:242
  #9  0x08055fa4 in main (argc=2, argv=0xbffff514)
      at /home/pcmacdon/Tcl/tk8.4.9/unix/tkAppInit.c:68
  #10 0x42017499 in __libc_start_main () from
  /lib/i686/libc.so.6


tkt_uuid: 1415789fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 83. Mac OS X Build
priority: 7 High
foundin: obsolete: 8.5a4
resolution: Fixed
title: universal build fails
comment:
  I'm using the new xcode projects on my nice new imac intel-duo, and 
  Tcl builds ok, but Tk's build (for the 'universal' target) fails with this:

  Building target “Tk” of project “Wish” — (1 error, 2 warnings)
      cd /Users/vince/Desktop/Programming/tk/macosx
      setenv ACTION 
      /bin/bash -c cd\ \"/Users/vince/Desktop/Programming/tk/
  macosx/../../tk/macosx\"\ \ &&\ a=`echo\ $0\ |\ sed\ -e\ s/clean/
  distclean/\ -e\ \'s/..*/&-/\'`\ &&\ CFLAGS=\"-Wno-deprecated-
  declarations\ -arch\ ppc\ -arch\ i386\ -isysroot\ /Developer/SDKs/
  MacOSX10.4u.sdk\ -mmacosx-version-min=10.4\"\ gnumake\ $a
  \"\"deploy\ INSTALL_ROOT=\"/tmp/Wish.dst\"\ INSTALL_PATH=\"/
  Library/Frameworks\"\ PREFIX=\"/usr/local\"\ BINDIR=\"/usr/local/bin
  \"\ MANDIR=\"/usr/local/man\"\ TCL_BUILD_DIR=\"/Users/vince/
  Desktop/Programming/tk/macosx/../../build/tk/../tcl/Deployment\"\ 
  APPLICATION_INSTALL_PATH=\"/Applications/Utilities\"\ 
  $EXTRA_MAKE_FLAGS\ SRCROOT=/Users/vince/Desktop/
  Programming/tk/macosx\ OBJROOT=/Users/vince/Desktop/
  Programming/tk/macosx/../../build/tk\ SYMROOT=/Users/vince/
  Desktop/Programming/tk/macosx/../../build/tk\ DSTROOT=/tmp/
  Wish.dst ""
  gnumake tk \
   BUILD_STYLE=Deployment INSTALL_TARGET=install-strip  
  gnumake install-tk INSTALL_ROOT=/Users/vince/Desktop/
  Programming/tk/macosx/../../build/tk/Deployment/
  gnumake -C /Users/vince/Desktop/Programming/tk/macosx/../../
  build/tk/Deployment all tktest INSTALL_ROOT='/Users/vince/Desktop/
  Programming/tk/macosx/../../build/tk/Deployment/' 
  INSTALL_TARGETS='install-binaries install-libraries install-private-
  headers install-demos' VERSION='8.5'  
  rm -f Tk
  gcc -pipe -dynamiclib -Os -Wno-deprecated-declarations -arch ppc -
  arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-
  version-min=10.4 -fpascal-strings   -prebind -
  headerpad_max_install_names -Wl,-search_paths_first  -Wl,-
  single_module -o Tk tk3d.o tkArgv.o tkAtom.o tkBind.o tkBitmap.o 
  tkClipboard.o tkCmds.o tkColor.o tkConfig.o tkConsole.o tkCursor.o 
  tkError.o tkEvent.o tkFocus.o tkFont.o tkGet.o tkGC.o tkGeometry.o 
  tkGrab.o tkGrid.o tkMain.o tkObj.o tkOldConfig.o tkOption.o tkPack.o 
  tkPlace.o tkSelect.o tkStyle.o tkUndo.o tkUtil.o tkVisual.o tkWindow.o 
  tkButton.o tkEntry.o tkFrame.o tkListbox.o tkMenu.o tkMenubutton.o 
  tkMenuDraw.o tkMessage.o tkPanedWindow.o tkScale.o tkScrollbar.o 
  tkCanvas.o tkCanvArc.o tkCanvBmap.o tkCanvImg.o tkCanvLine.o 
  tkCanvPoly.o tkCanvPs.o tkCanvText.o tkCanvUtil.o tkCanvWind.o 
  tkRectOval.o tkTrig.o tkImage.o tkImgBmap.o tkImgGIF.o tkImgPPM.o 
  tkImgPhoto.o tkText.o tkTextBTree.o tkTextDisp.o tkTextImage.o 
  tkTextIndex.o tkTextMark.o tkTextTag.o tkTextWind.o tkStubInit.o 
  tkStubLib.o tkMacOSXBitmap.o tkMacOSXButton.o 
  tkMacOSXClipboard.o tkMacOSXColor.o tkMacOSXConfig.o 
  tkMacOSXCursor.o tkMacOSXDebug.o tkMacOSXDialog.o 
  tkMacOSXDraw.o tkMacOSXEmbed.o tkMacOSXEntry.o 
  tkMacOSXEvent.o tkMacOSXFont.o tkMacOSXHLEvents.o tkMacOSXInit.o 
  tkMacOSXKeyboard.o tkMacOSXKeyEvent.o tkMacOSXMenu.o 
  tkMacOSXMenubutton.o tkMacOSXMenus.o tkMacOSXMouseEvent.o 
  tkMacOSXNotify.o tkMacOSXRegion.o tkMacOSXScrlbr.o 
  tkMacOSXSend.o tkMacOSXSubwindows.o tkMacOSXWindowEvent.o 
  tkMacOSXWm.o tkMacOSXXStubs.o tkMacOSXCarbonEvents.o 
  tkFileFilter.o tkMacWinMenu.o tkPointer.o tkUnix3d.o tkUnixScale.o 
  xcolors.o xdraw.o xgc.o ximage.o xutil.o  -lpthread -framework 
  CoreFoundation -framework Carbon -framework IOKit    -lpthread -
  framework CoreFoundation  -L/Users/vince/Desktop/Programming/
  build/tcl/Deployment -ltclstub8.5  -compatibility_version 8.5 -
  current_version 8.5 -install_name /Library/Frameworks/Tk.framework/
  Versions/8.5/Tk -seg1addr 0xb000000 -unexported_symbols_list $
  (f=libtclstub8.5.a.E && nm -gjp /Users/vince/Desktop/Programming/
  build/tcl/Deployment/libtclstub8.5.a | grep ^_ > $f && echo $f) 
  ld: warning -prebind ignored because MACOSX_DEPLOYMENT_TARGET 
  environment variable greater or equal to 10.4
  ld: warning -prebind ignored because MACOSX_DEPLOYMENT_TARGET 
  environment variable greater or equal to 10.4
  ld: symbols names listed in -unexported_symbols_list: libtclstub8.5.a.E 
  not in linked objects
  ___i686.get_pc_thunk.bx
  /usr/bin/libtool: internal link edit command failed
  lipo: can't figure out the architecture type of: /var/tmp//ccyH5faC.out
  gnumake[3]: *** [Tk] Error 1
  gnumake[2]: *** [build-tk] Error 2
  gnumake[1]: *** [tk] Error 2
  gnumake: *** [deploy] Error 2
  ld: warning -prebind ignored because 
  MACOSX_DEPLOYMENT_TARGET environment variable greater or equal 
  to 10.4
  ld: warning -prebind ignored because 
  MACOSX_DEPLOYMENT_TARGET environment variable greater or equal 
  to 10.4
  ld: symbols names listed in -unexported_symbols_list: 
  libtclstub8.5.a.E not in linked objects
  /usr/bin/libtool: internal link edit command failed
  Build failed (1 error, 2 warnings)


tkt_uuid: 1422430fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 49. [grid]
priority: 9 Immediate
foundin: obsolete: 8.5a4
resolution: Fixed
title: segfault with grid (col/row)configure "all"
comment:
   # this crashes wish8.5:
   frame .foo
   grid columnconfigure .foo all -weight 1

  It appears to happen when columnconfigure is
  used with index "all" and no window have been
  added yet.


tkt_uuid: 1423459fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 01. Bindings
priority: 5 Medium
foundin: None
resolution: Wont Fix
title: Win msgbox and listbox binding problem?
comment:
  The reaction of the following script seems to be
  incorrect, at least under Win XP Pro | SP2 and
  ActiveTcl 8.4.11.

  It creates a listbox containing multiple entries and
  allows for "extended" selections, so that multiple
  records can be selected at once.  As soon as multiple
  records are selected, a tk_messageBox is opened.

  Shouldn't the opening of the messagebox block any
  further action in the listbox?  If the action that
  triggered the messagebox was a "drag" operation in the
  listbox, (to select multiple records) the drag
  operation is allowed to continue, and in fact, opens a
  new messagebox for each additional record that's added
  to the selection list.

  Though I'm unable to test it, I'm told the script
  reacts differently (and, more correctly) under both
  Linux and MacOS X.  That is, once the msgbox is opened,
  the drag operation is blocked until the dialog is
  responded to.

  Jeff

  ============

  proc count {} {
      if {[llength [.l1 curselection]] > 1} {
          tk_messageBox -title "Warning" -message
  "Multiple records" -type ok
      }
  }

  console show
  listbox .l1 -width 20 -height 15 -selectmode extended
  .l1 insert end a b c d e f g h i
  bind .l1 <<ListboxSelect>> count

  pack .l1


tkt_uuid: 1424367fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 04. Canvas Basics
priority: 5 Medium
foundin: obsolete: 8.4.12
resolution: None
title: image item with activeimage and bind to destory - drag crash
comment:
  If you create an image item in a canvas that contains
  an activeimage, then you bind it so that it is
  destroyed when you click it. It is fine if you just
  click on it (it will be destroyed) but if you click and
  drag off it then it will cause a crash.

  Here is a very short test app that shows this note you
  need to have an image in the same folder, any image
  should do (either name it close.gif, or change the link
  in the code). If you click on the image it destroys it,
  if you click on the image and drag off it - crash:

  pack [canvas .c]
  set i [image create photo -file close.gif]
  .c create image 20 20 -anchor nw -image $i -activeimage
  $i -tag c1text
  .c bind c1text <ButtonRelease-1> "destroy .c"

  #note, you can get around the bug by replacing either
  (or both) of the last 2 lines with these:
  #.c create image 20 20 -anchor nw -image $i -tag c1text
  #.c bind c1text <ButtonRelease-1> "after 0 \"destroy .c\""


  Just to note I ran this under windows using the
  binaries from Activestate under Tcl/Tk 8.4.11, however
  I got a friend to test it under linux 8.4.11 and 8.4.12
  and he said that it causes a crash under both cause, he
  also was able to give me the callstack (not sure if it
  was for 8.4.11 or 8.4.12) although it is pretty
  intuitive what this crash is probably caused by...
  Program received signal SIGSEGV, Segmentation fault.
  0x005ba93c in Tk_CanvasEventuallyRedraw () from
  /usr/lib/libtk8.4.so
  (gdb) bt
  #0  0x005ba93c in Tk_CanvasEventuallyRedraw () from
  /usr/lib/libtk8.4.so
  #1  0x005bc860 in Tk_CreateItemType () from
  /usr/lib/libtk8.4.so
  #2  0x005bd06e in Tk_CreateItemType () from
  /usr/lib/libtk8.4.so
  #3  0x00581766 in Tk_HandleEvent () from
  /usr/lib/libtk8.4.so
  #4  0x00581c44 in Tk_HandleEvent () from
  /usr/lib/libtk8.4.so
  #5  0x001dc3f3 in Tcl_ServiceEvent () from
  /usr/lib/libtcl8.4.so
  #6  0x001dc68f in Tcl_DoOneEvent () from
  /usr/lib/libtcl8.4.so
  #7  0x00581088 in Tk_MainLoop () from /usr/lib/libtk8.4.so
  #8  0x0058e9f7 in Tk_MainEx () from /usr/lib/libtk8.4.so
  #9  0x080487e4 in main ()


tkt_uuid: 1424513fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 09. [listbox]
priority: 5 Medium
foundin: obsolete: 8.4.12
resolution: Fixed
title: listbox crash caused by listvariable in a namespace
comment:
  Consider the following simple script:

  namespace eval test {
      variable foo {bar0 bar1}
  }

  listbox .lb -listvariable ::test::foo
  pack .lb

  namespace delete test
  .lb insert end bar2 bar3

  On my PC running SUSE LINUX 9.3, this script generates
  the following error message:

  Error in startup script: 
      while executing
  ".lb insert end bar2 bar3"
      (file "Bug.tcl" line 10)
  Segmentation fault

  If I set an own trace on the variable ::test::foo then
  the behavior becomes even worse:

  namespace eval test {
      variable foo {bar0 bar1}
  }
  proc tracer {args} {
      puts "tracer called"
  }

  listbox .lb -listvariable ::test::foo
  pack .lb

  trace add variable ::test::foo unset tracer
  namespace delete test
  .lb insert end bar2 bar3

  This version of the script generates the following output:

  Error in startup script: 
      while executing
  ".lb insert end bar2 bar3"
      (file "Bug.tcl" line 14)
  *** glibc detected *** free(): invalid pointer:
  0x080af108 ***

  One could argue that it is not expected to delete a
  namespace containing a listvariable.  On the other
  hand, IMHO, doing so must not cause a crash.


tkt_uuid: 1428162fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 70. Event Loop
priority: 5 Medium
foundin: obsolete: 8.4.12
resolution: Wont Fix
title: vwait does not return if title bar clicked
comment:
  An Application with a toplevel window contains a vwait
  command. Even if the return condition is satisfied, the
  vwait does not terminate, if a user klicks and holds
  the mouse on the title bar.

  Platform: Windows XP
  TCL/TK: 8.4.12

  Demo script:

      set c [clock seconds]
      after 2000 "set a 1"
      vwait a
      puts [expr [clock seconds] - $c]

  Start the demo script with wish and click the title bar
  within 2 seconds for at least 5 seconds. The resulting
  vwait time will be at least the hold time (5 seconds).


tkt_uuid: 1432666fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 49. [grid]
priority: 9 Immediate
foundin: obsolete: 8.5a4
resolution: Fixed
title: Crash with column or row >=1000
comment:
  The following script crashes:
  label .l
  grid .l -row 10 -column 10000

  tkGrid.c has a
  #define MAX_ELEMENT 10000

  and tkGrid.cc:2216:
  if (slot < 0 || slot >= MAX_ELEMENT) {
      return TCL_ERROR;
  }

  I have no idea how this turns into a coredump.


tkt_uuid: 1432915fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 02. Appearance
priority: 5 Medium
foundin: obsolete: 8.4.12
resolution: None
title: Widget borders in canvas wrong with OS X
comment:
  There seems to be some 'leakage' in graphical elements when widgets 
  are involved in a canvas and the surrounding border is thus not 
  updated properly.

  I have attached an example where you can clearly see what has 
  resulted when I moved this group of items around the screen. The 
  border of the tk_optionMenu has become messed up with what 
  appears to be elements of the graphics around it.

  In the same example you can also see how a button with a small font 
  size looks like it is missing something. The bottom of the bottom 
  appears as if it has just been cut out. It lacks the natural border around 
  the button.

  The optionMenu was created without any later tweaking and the button 
  was created with -highlightthickness 0 and -borderwidth 0. The 
  options for the button do not effect the appearance of the actual 
  button in this case.

  The platform is OS X 10.4.4 / Aqua.


tkt_uuid: 1436726fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 20. [tk_optionMenu]
priority: 4
foundin: obsolete: 8.4.12
resolution: None
title: -font option handled wrong on OS X
comment:
  I set the configuration option -font "size 7" for a created 
  tk_optionMenu but the font size is not changed. However, the box 
  reserved for the widget is altered, leaving the text only half-visible.

  I have attached a screenshot of this situation in action. Not also how 
  the widget borders are not coloured with the -highlightbackground as 
  should be, but are white. The -borderwidth option is set to 0. This is 
  probably related to an earlier bug I reported.


tkt_uuid: 1439266fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 17. [spinbox]
priority: 5 Medium
foundin: obsolete: 8.4.12
resolution: None
title: -values and -from/to inconsistent
comment:
  Options -from/to and -values behave differently.
  Example:

  # Initialisation of variables at the top
  set months {January February March April May June July
  August September October November December}
  foreach {day mon year} [clock format [clock seconds]
  -format "%e %B %Y"] break
  # ......
  # part of the GUI (date chooser)
  spinbox    .f1.f11.dat.day -from 1 -to 31 \
             -width 2 -state readonly -textvariable day
  spinbox    .f1.f11.dat.mon -values $months \
             -width 9 -state readonly -textvariable mon
  spinbox    .f1.f11.dat.year -from 1980 -to 2036 \
             -width 4 -state readonly -textvariable year

  After packing and displaying it, it shows 25. January
  2006 (tested 25. February 2006) as the current date.
  Day and year, configured with from/to work correctly,
  mon configured with -values insists on the first value
  of the list. When I set the month after the definition
  of the spinbox, everything is ok.

  The different behaviour of -from/to and -values on the
  other hand is at least unexpected and confusing.
  Does it mean I should initialize the textvariable
  _always_ after the instantiation, because the behaviour
  in the -from/to case might change at any time without
  notice?

  In my eyes this is a bug of spinbox, at least an
  inconsistency.


tkt_uuid: 1439517fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 63. Tk_Win Functions
priority: 6
foundin: obsolete: 8.5a4
resolution: Duplicate
title: Hang in window-2.9 on Linux/Gnome
comment:
  Running Linux-x86/Gnome, the test window-2.9 hangs
  during execution, hanging the whole test suite. Is some
  timeout missing? (This is only a high priority because
  of the hang.)

  Killing the right sub-process allows the remainder of
  the test suite to run to completion. If that is done,
  the following test message is printed for the problem test:

  ==== window-2.9 Tk_DestroyWindow, Destroy bindings
          evaluated after exit FAILED
  ==== Contents of test case:

      set code [loadTkCommand]
      append code {
          toplevel .t1
          toplevel .t2
          update
          bind .t2 <Destroy> {puts "Destroy .t2" ; exit 1}
          bind .t1 <Destroy> {puts "Destroy .t1" ; exit 0}
          destroy .t2
      }
      set script [makeFile $code script]
      if {[catch {exec [interpreter] $script -geometry
  10x10+0+0} msg]} {
          set error 1
      } else {
          set error 0
      }
      removeFile script
      list $error $msg

  ---- Result was:
  1 {Destroy .t2
  Destroy .t1
  child killed: software termination signal}
  ---- Result should have been (exact matching):
  0 {Destroy .t2
  Destroy .t1}
  ==== window-2.9 FAILED


tkt_uuid: 1440417fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 46. Unix Fonts
priority: 3 Low
foundin: obsolete: 8.5a4
resolution: Fixed
title: Xft segfaults if fontconfig cannot find any font
comment:
  on SunOS 5.8 wish8.5 gets a segmentation fault.
  Interactive it
  could be reprocuded by 

  $ wish
  % listbox .lb

  signal SEGV (no mapping at the fault address) in
  Tk_AllocFontFromObj at line
  1094 in file "tkFont.c"
   1094       fontPtr->resourceRefCount = 1;
  (/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) where
  =>[1] Tk_AllocFontFromObj(interp = 0x29eb8, tkwin =
  0x760b8, objPtr =
  0x70558), line 1094 in "tkFont.c"
    [2] DoObjConfig(interp = 0x29eb8, recordPtr = 0x767b8
  "", optionPtr =
  0x77a98, valuePtr = 0x70558, tkwin = 0x760b8,
  savedOptionPtr = (nil)), line
  775 in "tkConfig.c"
    [3] Tk_InitOptions(interp = 0x29eb8, recordPtr =
  0x767b8 "", optionTable =
  0x779b0, tkwin = 0x760b8), line 556 in "tkConfig.c"
    [4] Tk_ListboxObjCmd(clientData = (nil), interp =
  0x29eb8, objc = 2, objv
  = 0x2abc4), line 561 in "tkListbox.c"
  dbx: warning: can't find file
  "/projekte/backup/tools/unix/build/tcl/tcl/unix/suns8/tclBasic.o"
  dbx: warning: see `help finding-files'
    [5] TclEvalObjvInternal(0x29eb8, 0x2, 0x2abc4, 0x0,
  0x0, 0x0), at
  0xfefdf2a4
  dbx: warning: can't find file
  "/projekte/backup/tools/unix/build/tcl/tcl/unix/suns8/tclExecute.o"
    [6] TclExecuteByteCode(0x29eb8, 0x67378, 0xff3e79ec,
  0x0, 0x673e4,
  0x2abc8), at 0xff041d18
    [7] TclCompEvalObj(0x29eb8, 0x9c6a0, 0x0, 0x7efefeff,
  0x67378, 0x29eb8),
  at 0xff03eb74
    [8] Tcl_EvalObjEx(0x29eb8, 0x9c6a0, 0x20000, 0x0,
  0xa, 0x29eb8), at
  0xfefe0814
  dbx: warning: can't find file
  "/projekte/backup/tools/unix/build/tcl/tcl/unix/suns8/tclHistory.o"
    [9] Tcl_RecordAndEvalObj(0x29eb8, 0x9c6a0, 0x20000,
  0x7efefeff,
  0x81010100, 0x37a30), at 0xff062334
    [10] Tcl_RecordAndEval(0x29eb8, 0x34c78, 0x20000,
  0x5ab78, 0x22304,
  0x9c6a0), at 0xff062168
    [11] StdinProc(clientData = 0x5ab78, mask = 2), line
  376 in "tkMain.c"
  dbx: warning: can't find file
  "/projekte/backup/tools/unix/build/tcl/tcl/unix/suns8/tclIO.o"
    [12] Tcl_NotifyChannel(0x5ab78, 0x2, 0xfef1a000, 0x0,
  0x38780, 0x0), at
  0xff077384
  dbx: warning: can't find file
  "/projekte/backup/tools/unix/build/tcl/tcl/unix/suns8/tclUnixNotfy.o"
    [13] FileHandlerEventProc(0x43000, 0xfffffffd, 0x0,
  0x1, 0x29dac,
  0xffbeece0), at 0xff105c00
  dbx: warning: can't find file
  "/projekte/backup/tools/unix/build/tcl/tcl/unix/suns8/tclNotify.o"
    [14] Tcl_ServiceEvent(0xfffffffd, 0xfffffffd,
  0xff390018, 0xff3e7fe8, 0x0,
  0x2), at 0xff0a21ec
    [15] Tcl_DoOneEvent(0x0, 0x59b78, 0x0, 0x1, 0x1,
  0x37a18), at 0xff0a28d4
    [16] Tk_MainLoop(), line 2143 in "tkEvent.c"
    [17] Tk_MainEx(argc = -1, argv = 0xffbef1a0,
  appInitProc = 0x11510 =
  &Tcl_AppInit(Tcl_Interp *interp), interp = 0x29eb8),
  line 308 in "tkMain.c"
    [18] main(argc = 1, argv = 0xffbef19c), line 68 in
  "tkAppInit.c"

  wish cannot load a font. in tkFont.c

  (1090)    fontPtr = TkpGetFontFromAttributes(NULL,
  tkwin, &fa);

  The Nullpointer comes from here:

  tkUnixRFont.c: 143
      set = FcFontSort(0, pattern, FcTrue, &charset,
  &result);

      if (!set) {
  FcPatternDestroy(pattern);
  ckfree((char *) fontPtr);
  return NULL;
      }

  here set is NULL.


tkt_uuid: 1442102fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 9 Immediate
foundin: obsolete: 8.4.12
resolution: Fixed
title: Elided text causes wish to crash
comment:
  The following simple script produces a segmentation fault:

      text .t
      pack .t
      .t tag configure hide -elide yes
      .t tag add hide 1.0 end

  The crash occurs regardless whether the text widget is
  empty or not, if all its content is elided.

  The bug is present in Tk 8.3 and 8.4.  I haven't tried
  it with 8.5.


tkt_uuid: 1445404fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 81. Portability
priority: 9 Immediate
foundin: None
resolution: Accepted
title: Header file cleanups
comment:
  In keeping with the convention that standard header
  files can be assumed present and "../compat" versions
  should only be used if selected with an explicit -D
  flag (computed at configure-time), the attached patch
  switches  the logic for stdlib.h to use the ../compat
  versions  only if -DNO_STDLIB_H is specified instead of
  if -DHAVE_STDLIB_H is missing.  Similarly for unistd.h
  in the unix and osx portability headers.

  This was done for Tcl a while ago, the patch below just
  does the same for Tk (8.4 branch, to be forward-ported
  later).

  Also removes the explicit declaration 'extern int
  errno;' from tkUnixPort.h and tkMacOSXPort.h; for one,
  this is not legal in standard C, and besides that no
  files in the Tk source base actually refer to 'errno'.

  tkMacOSXPort.h can use some further cleanup -- since
  it's a known platform, many of the #ifdef tests aren't
  needed at all (e.g., OSX has <unistd.h>, so there's no
  need to test for -DNO_UNISTD_H).  Haven't done that yet.


tkt_uuid: 1446343fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 61. Safe Tk
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: None
title: text/entry widget in safe interpreter
comment:
  The following problem occured with tk8.4.13rc0 as well
  as with tk8.4.12, but ONLY when running under Windows
  (WinXP SP1):
  When creating a text or entry widget in a safe
  interpreter it is not possible to enter text in these
  widgets (not even an input cursor when selecting the
  widget).
  I used the following script to demonstrate the bug:
      set engine [safe::interpCreate]
      safe::loadTk $engine
      $engine eval {
         pack [entry .e] [text .t] [button .b -text "OK"
  -command {.t insert end "OK "}]
      }


tkt_uuid: 1446841fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 01. Bindings
priority: 5 Medium
foundin: obsolete: 8.4.12
resolution: Out of Date
title: Macintosh scrolling touchpads do not work
comment:
  Despite a binding to the MouseWheel event, no events are reported for 
  the Macintosh two-finger style scrolling system on laptops. I also 
  noticed that the MightyMouse's mousebutton is not supported. No 
  events get dispatched, no matter what direction I roll it in. A normal 
  mouse, with a normal mouse wheel, worked as expected. This is a 
  severe limitation in Tk at the moment.


tkt_uuid: 1449027fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 04. Canvas Basics
priority: 5 Medium
foundin: obsolete: 8.4.12
resolution: None
title: What does $canvas lower do when 'belowThis' not specified?
comment:
  There seems to be some lacking documentation for what happens if 
  the 'belowThis' parameter, which is marked as optional, is not given to 
  the 'lower' command.


tkt_uuid: 1449550fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 13. Win Menus
priority: 8
foundin: obsolete: 8.5a4
resolution: None
title: access violation crash in Tk_AttachHWND
comment:
  In this portion of code:

      if (twdPtr == NULL) {
  twdPtr = (TkWinDrawable *) ckalloc(sizeof(TkWinDrawable));
  twdPtr->type = TWD_WINDOW;
  twdPtr->window.winPtr = (TkWindow *) tkwin;
  >>>    } else if (twdPtr->window.handle != NULL) {
  entryPtr = Tcl_FindHashEntry(&tsdPtr->windowTable,
  (char *)twdPtr->window.handle);
  Tcl_DeleteHashEntry(entryPtr);
      }

  the 'twdPtr' has value 0x000001.

  Here's the stack trace:

  Tk_AttachHWND(Tk_Window_ * 0x02d510d8, HWND__ *
  0x00031b18) line 73 + 5 bytes
  TkpMakeWindow(TkWindow * 0x02d510d8, unsigned long
  0x00000000) line 279 + 13 bytes
  Tk_MakeWindowExist(Tk_Window_ * 0x02d510d8) line 1684 +
  13 bytes
  MenuSelectEvent(TkMenu * 0x02d35350) line 2868 + 11 bytes
  RecursivelyClearActiveMenu(TkMenu * 0x02d35350) line
  1285 + 9 bytes
  RecursivelyClearActiveMenu(TkMenu * 0x022103c0) line
  1295 + 17 bytes
  RecursivelyClearActiveMenu(TkMenu * 0x0235c930) line
  1295 + 17 bytes
  RecursivelyClearActiveMenu(TkMenu * 0x0206d6a8) line
  1295 + 17 bytes
  TkWinHandleMenuEvent(HWND__ * * 0x0026f60c, unsigned
  int * 0x0026f610, unsigned int * 0x0026f614, long *
  0x0026f618, long * 0x0026f600) line 1010 + 9 bytes
  WmProc(HWND__ * 0x001015f6, unsigned int 0x00000116,
  unsigned int 0x00210805, long 0x00000000) line 7834 +
  25 bytes
  USER32! 77d48734()

  This tends to happen when my computer is running a
  variety of other intensive processes and I haven't used
  this particular Tk application for a while.  When I
  then click on its menubar to activate it and try to
  open a menu, *boom*.  [Speculation: perhaps some
  resource has been cleaned up by the OS and Tk doesn't
  realise that?]

  Vince.


tkt_uuid: 1450041fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 5 Medium
foundin: obsolete: 8.4.10
resolution: Fixed
title: wm state does not return corect value
comment:
  When a window is minimized, "wm state" still returns
  "normal". The bindings to events like <Map> and <Unmap>
  also fail to fire at minimization. When a window is
  iconified from the script using "wm state iconic", the
  bindings do fire, even if the window is already
  minimized. However, if the window is deiconified by
  clicking on the window in the dock, "wm state" still
  returns "iconic", bindings don't fire and worse, the
  window is not redrawn. Setting the state to normal
  using "wm state normal" will fire the bindings and
  redraw the window.

  likewize the zoom button does not set wm state to zoomed.

  I have curently worked around this by iconifying the
  window using tclCarbonHICommand from Daniel Steffen,
  however this seems like a bad way to go, since it
  completely bypasses the wm state and window events.

  I'm using the latest wishkit (8.4.10). Ignore this if
  it has been fixed in a more recent version.


tkt_uuid: 1450270fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 63. Tk_Win Functions
priority: 5 Medium
foundin: None
resolution: None
title: make a window ask for attention
comment:
  Hi,

  In our case we have an instant messaging app. When a
  new message comes in we would like to have the window
  blink in the taskbar (think MSN client on windows). For
  windows we had a solution for a long time, but recently
  we added support for KDE and Gnome as well. So while we
  are covered by our home-made extensions, it might be a
  good idea to implement this into TK itself.
  for documention for KDE/Gnome and some others:
  http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#id2511314

  our home made libs are here:
  http://cvs.sourceforge.net/viewcvs.py/amsn/msn/utils/linux/linflash/
  http://cvs.sourceforge.net/viewcvs.py/amsn/msn/utils/windows/winflash/

  for windows:
  just get the dll, load it and do:
  winflash $window -count -1

  for linux:
  download source, compile, load it and do:
  linflash $window

  Although this works perfectly it would be nice to have
  something like wm state $window attention or wm
  attention $window

  Sander


tkt_uuid: 1450800fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: Fixed
title: TkAqua creates window with "temp" as title
comment:
  This script:

  destroy .tt ; toplevel .tt ; wm title .tt "" ; wm transient .tt . ; wm title .tt ""

  results in a window with 'temp' as the name in the titlebar!

  As well as this peculiarity, doing [wm title $toplevel ""] on any window has 
  no effect at all. On other platforms this sets the title to the empty string 
  (so there is no title shown). On MacOS X it is just a no-op.


tkt_uuid: 1451587fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 37. [tk_get*File]
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: Fixed
title: config -command in tkfbox.tcl (and others)
comment:
  not sure if i have the right category, but here it goes:

  in tcl you can abbreviate commands, so instead of
  configure you can say config. While some lazy :o)
  programmers do so, it is not recommended to use in tk
  core files. use case:

  you implement a new scrollbar in snit. snit knows the
  configure command, but not the config command. when you
  replace the tk scrollbar with your own, errors get
  raised when you open a file browser window for example.

  my suggestion is to replace all config to configure
  easy fix, safe fix.

  egrep -n " config -" tk8.5/*
  tk8.5/scale.tcl:24:     %W config -activebackground [%W
  cget -background]
  tk8.5/scale.tcl:33:     %W config -activebackground
  $tk::Priv(activeBg)
  tk8.5/scrlbar.tcl:25:   %W config -activebackground [%W
  cget -background]
  tk8.5/scrlbar.tcl:40:   %W config -activebackground
  $tk::Priv(activeBg)
  tk8.5/tkfbox.tcl:230:    $data(sbar) config -command
  [list $data(canvas) xview]
  tk8.5/tkfbox.tcl:231:    $data(canvas) config
  -xscrollcommand [list $data(sbar) set]
  tk8.5/tkfbox.tcl:403:       $data(sbar) config -command ""
  tk8.5/tkfbox.tcl:459:   $data(canvas) config
  -scrollregion [list $pad $pad $sW $H]
  tk8.5/tkfbox.tcl:460:   $data(sbar) config -command ""
  tk8.5/tkfbox.tcl:464:   $data(canvas) config
  -scrollregion [list $pad $pad $sW $H]
  tk8.5/tkfbox.tcl:465:   $data(sbar) config -command
  [list $data(canvas) xview]
  tk8.5/tkfbox.tcl:876:   $data(typeMenuBtn) config
  -state normal
  tk8.5/tkfbox.tcl:877:   $data(typeMenuLab) config
  -state normal
  tk8.5/tkfbox.tcl:880:   $data(typeMenuBtn) config
  -state disabled -takefocus 0
  tk8.5/tkfbox.tcl:881:   $data(typeMenuLab) config
  -state disabled
  tk8.5/tkfbox.tcl:1039:    $data(upBtn) config -image
  $Priv(updirImage)
  tk8.5/tkfbox.tcl:1041:    $f1.menu config -takefocus 1
  -highlightthickness 2
  tk8.5/tkfbox.tcl:1086:  $data(typeMenuBtn) config
  -takefocus 1 -highlightthickness 2 \
  tk8.5/tkfbox.tcl:1141:    $data(upBtn)     config
  -command [list ::tk::dialog::file::UpDirCmd $w]
  tk8.5/tkfbox.tcl:1142:    $data(cancelBtn) config
  -command [list ::tk::dialog::file::CancelCmd $w]
  tk8.5/tkfbox.tcl:1150:  $data(okBtn)     config
  -command [list ::tk::dialog::file::OkCmd $w]
  tk8.5/tkfbox.tcl:1159:  $data(okBtn) config -command $okCmd
  tk8.5/tkfbox.tcl:1269:    $data(ent) config -cursor watch
  tk8.5/tkfbox.tcl:1270:    $w         config -cursor watch
  tk8.5/tkfbox.tcl:1340:    $data(ent) config -cursor
  $entCursor
  tk8.5/tkfbox.tcl:1341:    $w         config -cursor
  $dlgCursor
  tk8.5/tkfbox.tcl:1378:    $data(typeMenuBtn) config
  -text [lindex $type 0] -indicatoron 1


  from IRC:
  Tjikkun i have a question about config vs configure
  Tjikkun why are both being used?
  ijchain <dgp> huh?
  ijchain <dgp> context?
  Tjikkun like $scrollbar config -command [list bla]
  Tjikkun $scrollbar configure -command [list bla]
  Tjikkun both are correct, right?
  ijchain <suchenwi> You can abbreviate most switches as
  long as they are still unambiguous.
  ijchain <dgp> configure is the subcommand, "config" is
  lazy programmer
  Tjikkun ok.. snit doesn't support that i think
  ijchain <suchenwi> Neither does BWidget.
  Tjikkun so that is a problem.. because the abbreviation
  (why is that such a long word) is used in tkfbox.tcl
  Tjikkun so if you then replace say the scrollbar widget
  with a snit scrollbar.. you get a tk error
  ijchain <dgp> bug report time
  Tjikkun for snit, or tk?
  ijchain <suchenwi> tkfbox.tcl
  Tjikkun ok i will report it


tkt_uuid: 1452419fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 18. [text]
priority: 5 Medium
foundin: None
resolution: Fixed
title: Text widget with space in its name
comment:
  In the Tk-8.4.12 text widget, the undo/redo does not
  work when the text widget has a space in its name:

  % set t [text {.sp ace} -undo 1]
  .sp ace
  % $t insert insert test
  % $t edit undo
  bad option "ace": must be bbox, cget, compare,
  configure, debug, delete, dlineinfo, dump, edit, get,
  image, index, insert, mark, scan, search, see, tag,
  window, xview, or yview

  Attached patch fixes this problem.


tkt_uuid: 1455241fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 8
foundin: obsolete: 8.5a4
resolution: Fixed
title: TkAqua wm attributes -titlepath throws error
comment:
  There are two problems with the '-titlepath' configuration:

  1)

  toplevel .tt ; wm attributes .tt -titlepath /foo/bar.txt

  throws an error, but:

  toplevel .tt
  (wait until the toplevel appears)
  wm attributes .tt -titlepath /foo/bar.txt

  works just fine.

  2) 

  Removing the proxy icon with 'wm attributes -titlepath
  {}' always throws an error.

   


tkt_uuid: 1456157fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 9 Immediate
foundin: obsolete: 8.5a4
resolution: Fixed
title: new [text] test failures
comment:
  several tests in the Tk
  test suite have just started
  failing on unix/X11:

  ==== event-7.1(double-click) A double click on a lone
  character
          in a text widget should select that character
  FAILED
  ==== Contents of test case:
  ...
  ---- Result was:
  1.3 A 1.5 letter
  ---- Result should have been (exact matching):
  1.3 A 1.3 A
  ==== event-7.1(double-click) FAILED

  ==== textTag-15.1 TkTextBindProc FAILED
  ==== Contents of test case:

      bind .t <ButtonRelease> {lappend x up}
      .t tag bind x <ButtonRelease> {lappend x x-up}
      .t tag bind y <ButtonRelease> {lappend x y-up}
      set x {}
      .t tag add x 2.0 2.4
      .t tag add y 4.3
      event gen .t <Button> -x $x1 -y $y1
      event gen .t <Motion> -x $x1 -y $y1
      event gen .t <ButtonRelease> -x $x1 -y $y1
      event gen .t <Button> -x $x1 -y $y1
      event gen .t <Motion> -x $x2 -y $y2
      event gen .t <ButtonRelease> -x $x2 -y $y2
      event gen .t <Button> -x $x2 -y $y2
      event gen .t <Motion> -x $x3 -y $y3
      event gen .t <ButtonRelease> -x $x3 -y $y3
      bind .t <ButtonRelease> {}
      set x

  ---- Result was:
  x-up up up up
  ---- Result should have been (exact matching):
  x-up up up y-up up
  ==== textTag-15.1 FAILED


  ==== textTag-15.2 TkTextBindProc FAILED
  ==== Contents of test case:

      catch {.t tag delete x}
      catch {.t tag delete y}
      .t tag bind x <Enter> {lappend x x-enter}
      .t tag bind x <ButtonPress> {lappend x x-down}
      .t tag bind x <ButtonRelease> {lappend x x-up}
      .t tag bind x <Leave> {lappend x x-leave}
      .t tag bind y <Enter> {lappend x y-enter}
      .t tag bind y <ButtonPress> {lappend x y-down}
      .t tag bind y <ButtonRelease> {lappend x y-up}
      .t tag bind y <Leave> {lappend x y-leave}
      event gen .t <Motion> -x 0 -y 0
      set x {}
      .t tag add x 2.0 2.4
      .t tag add y 4.3
      event gen .t <Motion> -x $x1 -y $y1
      lappend x |
      event gen .t <Button> -x $x1 -y $y1
      lappend x |
      event gen .t <Motion> -x $x3 -y $y3 -state 0x100
      lappend x |
      event gen .t <ButtonRelease> -x $x3 -y $y3
      set x

  ---- Result was:
  x-enter | x-down | | x-up x-leave
  ---- Result should have been (exact matching):
  x-enter | x-down | | x-up x-leave y-enter
  ==== textTag-15.2 FAILED


  ==== textTag-15.3 TkTextBindProc FAILED
  ==== Contents of test case:

      catch {.t tag delete x}
      catch {.t tag delete y}
      .t tag bind x <Enter> {lappend x x-enter}
      .t tag bind x <Any-ButtonPress-1> {lappend x x-down}
      .t tag bind x <Any-ButtonRelease-1> {lappend x x-up}
      .t tag bind x <Leave> {lappend x x-leave}
      .t tag bind y <Enter> {lappend x y-enter}
      .t tag bind y <Any-ButtonPress-1> {lappend x y-down}
      .t tag bind y <Any-ButtonRelease-1> {lappend x y-up}
      .t tag bind y <Leave> {lappend x y-leave}
      event gen .t <Motion> -x 0 -y 0
      set x {}
      .t tag add x 2.0 2.4
      .t tag add y 4.3
      event gen .t <Motion> -x $x1 -y $y1
      lappend x |
      event gen .t <Button-1> -x $x1 -y $y1
      lappend x |
      event gen .t <Button-2> -x $x1 -y $y1 -state 0x100
      lappend x |
      event gen .t <Motion> -x $x3 -y $y3  -state 0x300
      lappend x |
      event gen .t <ButtonRelease-1> -x $x3 -y $y3 -state
  0x300
      lappend x |
      event gen .t <ButtonRelease-2> -x $x3 -y $y3 -state
  0x200
      set x

  ---- Result was:
  x-enter | x-down | | | x-up | x-leave
  ---- Result should have been (exact matching):
  x-enter | x-down | | | x-up | x-leave y-enter
  ==== textTag-15.3 FAILED


  ==== textTag-16.1 TkTextPickCurrent procedure FAILED
  ==== Contents of test case:

      event gen .t <ButtonRelease-1> -state 0x100 -x $x1
  -y $y1
      set x [.t index current]
      event gen .t <Motion> -x $x2 -y $y2
      lappend x [.t index current]
      event gen .t <Button-1> -x $x2 -y $y2
      lappend x [.t index current]
      event gen .t <Motion> -x $x3 -y $y3 -state 0x100
      lappend x [.t index current]
      event gen .t <Button-3> -state 0x100 -x $x3 -y $y3
      lappend x [.t index current]
      event gen .t <ButtonRelease-3> -state 0x300 -x $x3
  -y $y3
      lappend x [.t index current]
      event gen .t <ButtonRelease-1> -state 0x100 -x $x3
  -y $y3
      lappend x [.t index current]

  ---- Result was:
  2.1 3.3 3.3 3.3 3.3 3.3 4.4
  ---- Result should have been (exact matching):
  2.1 3.2 3.2 3.2 3.2 3.2 4.3
  ==== textTag-16.1 FAILED


  ==== textTag-16.2 TkTextPickCurrent procedure FAILED
  ==== Contents of test case:

      event gen .t <ButtonRelease-1> -state 0x100 -x $x1
  -y $y1
      event gen .t <Motion> -x $x2 -y $y2
      set x [.t index current]
      .t tag add big 3.0
      update
      lappend x [.t index current]

  ---- Result was:
  3.3 3.2
  ---- Result should have been (exact matching):
  3.2 3.1
  ==== textTag-16.2 FAILED


  ==== textTag-16.3 TkTextPickCurrent procedure FAILED
  ==== Contents of test case:

      foreach i {a b c d} {
          .t tag remove $i 1.0 end
      }
      .t tag lower b
      .t tag lower a
      set x {}
      event gen .t <Motion> -x $x1 -y $y1
      .t tag add a 2.1 3.3
      .t tag add b 2.1
      .t tag add c 3.2
      update
      lappend x |
      event gen .t <Motion> -x $x2 -y $y2
      lappend x |
      event gen .t <Motion> -x $x3 -y $y3
      set x

  ---- Result was:
  enter-a enter-b | leave-a leave-b |
  ---- Result should have been (exact matching):
  enter-a enter-b | leave-b enter-c | leave-a leave-c
  ==== textTag-16.3 FAILED


  ==== textTag-16.4 TkTextPickCurrent procedure FAILED
  ==== Contents of test case:

      foreach i {a b c d} {
          .t tag remove $i 1.0 end
      }
      .t tag lower b
      .t tag lower a
      set x {}
      event gen .t <Motion> -x $x1 -y $y1
      .t tag add a 2.1 3.3
      .t tag add b 2.1
      .t tag add c 2.1
      update
      lappend x |
      .t tag lower c
      event gen .t <Motion> -x $x2 -y $y2
      set x

  ---- Result was:
  enter-a enter-b enter-c | leave-c leave-a leave-b
  ---- Result should have been (exact matching):
  enter-a enter-b enter-c | leave-c leave-b
  ==== textTag-16.4 FAILED


  ==== textTag-16.5 TkTextPickCurrent procedure FAILED
  ==== Contents of test case:

      foreach i {a b c d} {
          .t tag remove $i 1.0 end
      }
      event gen .t <Motion> -x $x1 -y $y1
      .t tag bind a <Enter> {.t tag add big 3.0 3.2}
      .t tag add a 3.2
      event gen .t <Motion> -x $x2 -y $y2
      .t index current

  ---- Result was:
  3.3
  ---- Result should have been (exact matching):
  3.2
  ==== textTag-16.5 FAILED


  ==== textTag-16.6 TkTextPickCurrent procedure FAILED
  ==== Contents of test case:

      foreach i {a b c d} {
          .t tag remove $i 1.0 end
      }
      event gen .t <Motion> -x $x1 -y $y1
      .t tag bind a <Enter> {.t tag add big 3.0 3.2}
      .t tag add a 3.2
      event gen .t <Motion> -x $x2 -y $y2
      update
      .t index current

  ---- Result was:
  3.3
  ---- Result should have been (exact matching):
  3.1
  ==== textTag-16.6 FAILED


  ==== textTag-16.7 TkTextPickCurrent procedure FAILED
  ==== Contents of test case:

      foreach i {a b c d} {
          .t tag remove $i 1.0 end
      }
      event gen .t <Motion> -x $x1 -y $y1
      .t tag bind a <Leave> {.t tag add big 3.0 3.2}
      .t tag add a 2.1
      event gen .t <Motion> -x $x2 -y $y2
      .t index current

  ---- Result was:
  3.3
  ---- Result should have been (exact matching):
  3.1
  ==== textTag-16.7 FAILED

  Might also be related to 1325998


tkt_uuid: 1456342fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 8
foundin: obsolete: 8.4.12
resolution: Fixed
title: slow deletion of whole text widget content/"sliced" deletion
comment:
  When a text widget contains a lot of data (i.e. 350
  lines of 2000 characters, with a total of 250 000
  characters tagged), the deletion of the content of the
  widget text is very slow using the normal command : $w
  delete 1.0 end (say 2-3 Minutes). If the same widget is
  deleted in a "sliced" way :

  set nl [lindex [split [$w index end] .] 0]
  while {$nl <= 30} {
       $w delete 1.0 30.end
       incr nl -30
  }
  $w delete 1.0 end

  takes few Seconds !!!

  This behavior seems not to be normal , and has benn
  reported since Tcl/Tk version 8.3.4.


tkt_uuid: 1456397fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 86. Test Tools
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: Fixed
title: winDialog.test hangs on german windows xp
comment:
  WinDialog.test file hangs on Windows XP SP 2 german.

  It runs with failures through 3.1 and 4.1 (expecting
  Cancel and getting Abbrechen).
  Then the file selection dialog pops up and the bgerror
  message box appears with the following error:

      while executing
  "testwinevent $::tk_dialog $button WM_LBUTTONDOWN 1
  0x000a000b"
      (procedure "Click" line 2)
      invoked from within
  "Click cancel"
      ("eval" body line 2)
      invoked from within
  "eval $command"
      invoked from within
  "set dialogresult [eval $command]"
      ("uplevel" body line 1)
      invoked from within
  "uplevel #0 {set dialogresult [eval $command]}"
      (procedure "afterbody" line 10)
      invoked from within
  "afterbody"
      ("after" script)


tkt_uuid: 1456851fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 10. Generic Menus
priority: 9 Immediate
foundin: obsolete: 8.5a4
resolution: Fixed
title: panic: exit handlers were created during Tcl_Finalize
comment:
  Something in Tk is creating exit handlers during
  finalize again.  Not sure if this is due to recent
  changes or if it was just missed previously.

  Further digging reveals that TkMenuCleanup and
  MenuExitHandler appear to be the culprits here.

  tcl85tg.dll!Tcl_PanicVA(const char * format=0x10100f48,
  char * argList=0x0026cde8)  Line 103 + 0x8C
  tcl85tg.dll!Tcl_Panic(const char * format=0x10100f48,
  ...)  Line 132 + 0xdC
  tcl85tg.dll!Tcl_Finalize()  Line 948 + 0xaC
  tcl85tg.dll!Tcl_Exit(int status=0)  Line 731C
  tcl85tg.dll!Tcl_ExitObjCmd(void * dummy=0x00000000,
  Tcl_Interp * interp=0x01145488, int objc=1, Tcl_Obj *
  const * objv=0x01152a2c)  Line 707 + 0x9C
  tcl85tg.dll!TclEvalObjvInternal(Tcl_Interp *
  interp=0x01145488, int objc=1, Tcl_Obj * const *
  objv=0x01152a2c, const char * command=0x00000000, int
  length=0, int flags=0)  Line 3381 + 0x1bC
  tcl85tg.dll!TclExecuteByteCode(Tcl_Interp *
  interp=0x01145488, ByteCode * codePtr=0x042397b8)  Line
  1843 + 0x27C
  tcl85tg.dll!TclCompEvalObj(Tcl_Interp *
  interp=0x01145488, Tcl_Obj * objPtr=0x02144128)  Line
  1051 + 0xdC
  tcl85tg.dll!ObjInterpProcEx(void *
  clientData=0x021444f8, Tcl_Interp * interp=0x01145488,
  int objc=4, Tcl_Obj * const * objv=0x01152960, int
  skip=1)  Line 1401 + 0x10C
  tcl85tg.dll!TclObjInterpProc(void *
  clientData=0x021444f8, Tcl_Interp * interp=0x01145488,
  int objc=4, Tcl_Obj * const * objv=0x01152960)  Line
  1144 + 0x17C
  tcl85tg.dll!TclEvalObjvInternal(Tcl_Interp *
  interp=0x01145488, int objc=4, Tcl_Obj * const *
  objv=0x01152960, const char * command=0x00000000, int
  length=0, int flags=0)  Line 3381 + 0x1bC
  tcl85tg.dll!TclExecuteByteCode(Tcl_Interp *
  interp=0x01145488, ByteCode * codePtr=0x04122c60)  Line
  1843 + 0x27C
  tcl85tg.dll!TclCompEvalObj(Tcl_Interp *
  interp=0x01145488, Tcl_Obj * objPtr=0x011c4d88)  Line
  1051 + 0xdC
  tcl85tg.dll!Tcl_EvalObjEx(Tcl_Interp *
  interp=0x01145488, Tcl_Obj * objPtr=0x011c4d88, int
  flags=0)  Line 4058 + 0xdC
  tcl85tg.dll!NamespaceEvalCmd(void * dummy=0x00000000,
  Tcl_Interp * interp=0x01145488, int objc=4, Tcl_Obj *
  const * objv=0x0026f7b0)  Line 3423 + 0x12C
  tcl85tg.dll!Tcl_NamespaceObjCmd(void *
  clientData=0x00000000, Tcl_Interp * interp=0x01145488,
  int objc=4, Tcl_Obj * const * objv=0x0026f7b0)  Line
  2961 + 0x15C
  tcl85tg.dll!TclEvalObjvInternal(Tcl_Interp *
  interp=0x01145488, int objc=4, Tcl_Obj * const *
  objv=0x0026f7b0, const char * command=0x0026f9d8, int
  length=71, int flags=0)  Line 3381 + 0x1bC
  tcl85tg.dll!Tcl_EvalEx(Tcl_Interp * interp=0x01145488,
  const char * script=0x0026f9d8, int numBytes=71, int
  flags=0)  Line 3789 + 0x27C
  tcl85tg.dll!Tcl_Eval(Tcl_Interp * interp=0x01145488,
  const char * script=0x0026f9d8)  Line 3904 + 0x11C
  tcl85tg.dll!Tcl_GlobalEval(Tcl_Interp *
  interp=0x01145488, const char * command=0x0026f9d8) 
  Line 4796 + 0xdC
  tk85tg.dll!Tk_BindEvent(Tk_BindingTable_ *
  bindingTable=0x011dc580, _XEvent * eventPtr=0x0026fbb0,
  Tk_Window_ * tkwin=0x03f3b3f0, int numObjects=0, void *
  * objectPtr=0x0026fafc)  Line 1771 + 0x19C
  tk85tg.dll!TkBindEventProc(TkWindow *
  winPtr=0x03f3b3f0, _XEvent * eventPtr=0x0026fbb0)  Line
  286 + 0x1fC
  tk85tg.dll!Tk_HandleEvent(_XEvent *
  eventPtr=0x0026fbb0)  Line 1425 + 0xdC
  tk85tg.dll!Tk_DestroyWindow(Tk_Window_ *
  tkwin=0x03f3b3f0)  Line 1383 + 0x9C
  tk85tg.dll!TkWmProtocolEventProc(TkWindow *
  winPtr=0x03f3b3f0, _XEvent * eventPtr=0x0136c2a0)  Line
  6453 + 0x9C
  tk85tg.dll!Tk_HandleEvent(_XEvent *
  eventPtr=0x0136c2a0)  Line 1393 + 0xdC
  tk85tg.dll!WindowEventProc(Tcl_Event *
  evPtr=0x0136c298, int flags=-3)  Line 1821 + 0xcC
  tcl85tg.dll!Tcl_ServiceEvent(int flags=-3)  Line 644
  + 0xdC
  tcl85tg.dll!Tcl_DoOneEvent(int flags=-3)  Line 947 + 0x9C
  tk85tg.dll!Tk_MainLoop()  Line 2150 + 0xfC
  tk85tg.dll!Tk_MainEx(int argc=-1, char * *
  argv=0x00ac2e80, int (Tcl_Interp *)*
  appInitProc=0x004010f3, Tcl_Interp * interp=0x00ac6298)
   Line 309C
  wish85tg.exe!WinMain(HINSTANCE__ *
  hInstance=0x00400000, HINSTANCE__ *
  hPrevInstance=0x00000000, char *
  lpszCmdLine=0x00292342, int nCmdShow=10)  Line 125 + 0x25C
  wish85tg.exe!WinMainCRTStartup()  Line 330 + 0x36C


tkt_uuid: 1457279fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 01. Bindings
priority: 5 Medium
foundin: obsolete: 8.4.12
resolution: None
title: w32: Creating Alt-Key binding on all breaks default handling
comment:
  If a binding for <Alt-Key> is created or added on the
  'all' tag, normal handling of special keystrokes (e.g.,
  Alt-F4) no longer works.

  How to reproduce:
  1. Invoke wish84.exe
  2. execute one of the following commands:
       bind all <Alt-Key> [bind all <Alt-Key>];
       bind all <Alt-Key> {+puts example};
       bind all <Alt-Key> {puts example};
  (any command that modifies the binding of <Alt-Key> on
  the 'all' tag, even ones that should leave any existing
  binding still in effect)
  3. Focus the main window and press Alt-F4.

  Expected behavior: The window closes
  Actual behavior: the window does not close.

  This problem exists in ActiveState ActiveTcl 8.4.12.0
  as well as a self-compiled version of tk 8.4.10. 
  Tested on a Windows XP SP2 machine.

  The problem apparently arises because bindings created
  by TkCreateBindingProcedure do not behave like normal
  bindings, acting instead like empty bindings when
  queried or modified by the [bind] command.


tkt_uuid: 1458234fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 42. Photo Image|GIF
priority: 9 Immediate
foundin: obsolete: 8.4.12
resolution: Fixed
title: Segmentation fault when using animated GIFs
comment:
  When using the undocumented -index suboption of the
  -format option to the image create photo command, some
  GIF images can cause a segmentation fault. This happens
  when the first subimage is smaller than some later
  ones. The buffer for storing the image data is
  allocated based on the size of the first subimage.
  However, that same buffer is used to store all the
  subimages that don't all fit.

  For some reason I don't get the segmentation fault
  unless the requested subimage doesn't exist and the
  buffer has to be freed again.

  The problem has been observed on SuSE Linux 8.2.

  Reproducible script:

  package require Tk
  image create photo -file segv.gif -format "gif -index 2"


tkt_uuid: 1460155fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 84. Unix Build
priority: 5 Medium
foundin: None
resolution: Wont Fix
title: X11+Cygwin should be okay
comment:
  the more I use X11 at work, the more I need to also to
  use Tcl/Tk within X11
  on cygwin.
  Tcl/Tk coming with cygwin is built with Win32 native
  GUI, but I want
  different approach.

  Tk is actually cleanly builds in such a configuration,
  except for a small
  quirk.

  Attached patch is trivial but relies on fact that X.h
  defines X_PROTOCOL.
  I am very weak at X11/c programming so I could be wrong
  with exact details,
  but please consider solving this problem somehow.

  BTW I tested whether cygwin and win32/msvc++ build okay
  with suggested change.


tkt_uuid: 1461501fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.4.12
resolution: Wont Fix
title: text search fails on line with elided text
comment:
  Hi,
  I found a bug, <george> from #tcl on IRC.freenode.net 
  helped me understand the problem and I'm filling a bug 
  report so it can stay in the archives.
  The bug is reproduced on the 8.4 versions (tested on 8.
  4.11 and 8.4.12), but seems to be fixed in the cvs HEAD 
  of tk (as of date March 30th, 2006).
  If a text widget has elided text in it, then a search 
  will fail in some cases. To be more precise, if we have 
  X chars elided in a text, and we do a search after 
  these chars, then the offset by which the search should 
  begin is X chars off. In other words, if the string 
  "test" is located at 1.10 in the widget and we have at 
  least 1 char elided in the range 1.0 to 1.9. the search 
  for "test" will fail if the start position of the 
  search is 1.10, it will work for 1.9 if we had only 1 
  char elided, if we have 3 chars elided in the range 1.0 
  to 1.9, then the search will fail for start index 1.10, 
  1.9, 1.8, and it will succeed at 1.7.
  Here's an execution trace :
  (bin) 1 % pack [text .t]
  (bin) 2 % .t tag configure el -elide true
  (bin) 3 % .t insert end hello
  (bin) 4 % .t insert end world el
  (bin) 5 % .t insert end worldtest
  (bin) 6 % .t get 1.0 end
  helloworldworldtest

  (bin) 7 % .t search test 1.0 end
  1.15
  (bin) 8 % .t search test 1.15 end
  (bin) 9 % .t search test 1.11 end
  (bin) 10 % .t search test 1.10 end
  1.15

  Please note that in this case, we need to add 'end' as 
  the last index to search for, if not, for this example, 
  the search will work, but that's only because the 
  search gets wrapped to the beginning of the widget. If 
  we had a lot of lines in the widget, we could have done 
  for example a [.t search test 22.15] and it would have 
  returned '1.15' instead of '22.15'

  p.s.: it seems that if I do [.t search test 1.15 end] 
  it returns the right answer. In my case, it's not 
  acceptable because I really want to skip elided text, 
  I'll manage a workaround.

  Thanks,
  KaKaRoTo


tkt_uuid: 1461523fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 37. [tk_get*File]
priority: 9 Immediate
foundin: obsolete: 8.5a4
resolution: Out of Date
title: CVS Release - Send File/Change Display Pic (Browse) Error
comment:
  Error when sending files to user, or Changing display
  pic (Using browse function)

  This error (Sending Files) brings up the dialog :

  unknown subcommand "config": must be configurelist
      while executing
  "$f1.menu config -takefocus 1 -highlightthickness 2"
      (procedure "::tk::dialog::file::Create" line 31)
      invoked from within
  "::tk::dialog::file::Create $w TkFDialog"
      (procedure "::tk::dialog::file::" line 17)
      invoked from within
  "::tk::dialog::file:: open -filetypes {{ "All Files"
  {*} }} -parent .msg_7 -initialdir /home/kev
  -initialfile {} -title {Send file}"
      ("eval" body line 1)
      invoked from within
  "eval ::tk::dialog::file:: open $args"
      (procedure "tk_getOpenFile" line 5)
      invoked from within
  "tk_getOpenFile -filetypes $types -parent $parent
  -initialdir $starting_dir -initialfile $initialfile
  -title $title"
      (procedure "chooseFileDialog" line 18)
      invoked from within
  "chooseFileDialog "" [trans sendfile] $win_name"
      (procedure "::amsn::FileTransferSend" line 6)
      invoked from within
  "::amsn::FileTransferSend .msg_7"
      (command bound to event)









  Changing Display Pic (Pressing Browse) error:

  attachment
  '.picbrowser.__tk_filedialog.f1.menu.menu.m.main.0.icon.tick'
  already exists
      while executing
  "error "$_type '$path' already exists""
      (procedure "::contentmanager::Snit_typemethodadd"
  line 9)
      invoked from within
  "contentmanager add attachment $main $entryid icon tick
  -widget $canvas -tag $radiotickid($entryid)"
      ("radio.*" arm line 10)
      invoked from within
  "switch -regexp $_type {
  com.* {
  # Create the canvas items
  set imageid($entryid) [$canvas create image $offx
  $offy -anchor nw -tags entry$en..."
      (procedure "::pixmapmenu::Snit_methodCreateEntry"
  line 36)
      invoked from within
  ".picbrowser.__tk_filedialog.f1.menu.menu.m CreateEntry
  end radiobutton -indicatoron 0 -label {} -variable
  ::tk::dialog::file::__tk_filedialog(selectPa..."
      ("eval" body line 1)
      invoked from within
  "eval $self CreateEntry end $_type $args"
      (procedure "::pixmapmenu::Snit_methodadd" line 37)
      invoked from within
  "$w.menu add radiobutton -indicatoron 0 -label $val
  -variable $var -value $val"
      (procedure "tk_optionMenu" line 6)
      invoked from within
  "tk_optionMenu $f1.menu [format %s(selectPath)
  ::tk::dialog::file::$dataName] """
      (procedure "::tk::dialog::file::Create" line 15)
      invoked from within
  "::tk::dialog::file::Create $w TkFDialog"
      (procedure "::tk::dialog::file::" line 17)
      invoked from within
  "::tk::dialog::file:: open -filetypes {{{Image Files}
  {*.gif *.GIF *.jpg *.JPG *.bmp *.BMP *.png *.PNG}}
  {{All Files} *}} -parent .picbrowser -initiald..."
      ("eval" body line 1)
      invoked from within
  "eval ::tk::dialog::file:: open $args"
      (procedure "tk_getOpenFile" line 5)
      invoked from within
  "tk_getOpenFile -filetypes $types -parent $parent
  -initialdir $starting_dir -initialfile $initialfile
  -title $title"
      (procedure "chooseFileDialog" line 18)
      invoked from within
  "chooseFileDialog "" "" "" "" open [list [list [trans
  imagefiles] [list *.gif *.GIF *.jpg *.JPG *.bmp *.BMP
  *.png *.PNG]] [list [trans allfiles] *]]"
      (procedure "pictureChooseFile" line 4)
      invoked from within
  "pictureChooseFile"
      invoked from within
  ".picbrowser.browse invoke"
      ("uplevel" body line 1)
      invoked from within
  "uplevel #0 [list $w invoke]"
      (procedure "tk::ButtonUp" line 22)
      invoked from within
  "tk::ButtonUp .picbrowser.browse"
      (command bound to event)







  Also shows emtpy _tkfiledialog_

  This seems to be current on latest and previous
  snapshot and has been reproduced by at least one other
  user.

  Fedora 5 - No X window compiling - Tk/TCL 8.5 


tkt_uuid: 1461650fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 45. Aqua Fonts
priority: 9 Immediate
foundin: obsolete: 8.5a4
resolution: Fixed
title: TkAqua text font metrics wrong
comment:
  Benny,

  There's still a problem with font metrics. The following example (which 
  uses a monospaced font):

      toplevel .tt
      set font "monaco 9"
      # font metrics $font claims it is "fixed" i.e. monospace
      pack [text .tt.t -font $font] -fill both -expand 1
      set w .tt.t
      $w configure -tabstyle wordprocessor
      
      # tab size 8 fails
      $w insert 1.0 "11111111222222223333333344444444\n"
      $w insert 1.0 "\ta\tb\tc\td\n"
      
      # tab size 4 fails
      $w tag configure tab4 -tabs "[expr {4 * [font measure $font 0]}] left"
      $w insert 1.0 "11111111222222223333333344444444\n"
      $w insert 1.0 "\ta\tb\tc\td\n"
      $w tag add tab4 1.0 3.0

  should display those lines with 'a' 'b' 'c' 'd' aligned at each 8th or 4th 
  character in the long lines with numbers only.

  But they are laid out shorter than that. The 'a' in the first example is 
  about 1.5 characters too far to the left (and cumulatively the same for 
  the rest). The tabsize 4 example has everything about 0.75 characters 
  too far to the left.

  So it seems the calculation of '4 * [font measure $font 0]' is wrong (too 
  low) as is the internal calculation made in tkText.c:

     Tk_TextWidth(textPtr->tkfont, "0", 1) * 8;

  for the default tabsize of 8.

  This means one can't use the text widget to do decent layout of 
  programming code, since the tabstops are all wrong. [Note: this all 
  works fine on Windows, and used to work ok on MacOS X]

  Vince.


tkt_uuid: 1462653fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 13. Win Menus
priority: 5 Medium
foundin: None
resolution: Out of Date
title: Cascading menus crash on Win98
comment:
  Hello,
  the script below crashes on Win98 under Tcl 8.4.11 and
  (as reported by Pat Thoyts) under 8.4.13 as well - but
  behaves well on Win XP.

  How to reproduce it:
  - Start the program
  - Click on 'Cascade'
  - Go to 'Next cascade' - 3 - 2 - 'Option 1' or 'Option 2'
  - Now without changing the state of the button leave
  the last menu, so that you are "outside" of this app.
  Without touching any other part of the menu hierarchie
  return with the mouse pointer to the first menu
  (displaying 'Next cascade').
  - Move from below into this menu - BOOM.

  Best regards
  Helmut Giese
  ---
  package require Tk
  package require BWidget

  # this fires when a menu gets 'selected'
  proc menuSelect {w} {
      variable GUI
      if { $w ne ".#mnu" || [$w index active] != 1 } {return}
      # update the cascading menu
      # update the count
      $GUI(specM,subCnt) entryconfigure 0 -label 99
      # update the cascade
      for {set val 0} {$val < 3} {incr val} {
          set state [expr {$val ? "normal" : "disabled"}]
          $GUI(specM,subVal${val}Cnt) entryconfigure 0 \
              -label $val -state $state
      }
  }

  # create the main menu (bar)
  set m [menu .mnu -tearoff 0]

  # create the file menu
  set fM [menu $m.file -tearoff 0]
  $fM add command -label "Open" -underline 0
  $fM add command -label "Save" -underline 0
  $fM add separator
  $fM add command -label "Quit" -underline 0

  # create the special menu
  set specM [menu $m.spec -tearoff 0]
  # ... its submenus: one for the count
  set GUI(specM,subCnt) [menu $specM.subCnt -tearoff 0]
  $GUI(specM,subCnt) add command -label ""

  # build the next level of cascading menus
  set GUI(specM,subVal) [menu $specM.subVal -tearoff 0]
  set mItem $GUI(specM,subVal)
  for {set i 0} {$i < 3} {incr i} {
      # create sub-menu for this value
      set subVal${i}Cnt [menu $mItem.subVal${i}Cnt
  -tearoff 0]
      set GUI(specM,subVal${i}Cnt) [set subVal${i}Cnt]
      # this one has a sub-menu, too
      set subVal${i}CntSub [menu $mItem.subVal${i}CntSub
  -tearoff 0]
      set GUI(specM,subVal${i}CntSub) [set subVal${i}CntSub]
      [set subVal${i}CntSub] add command -label "Option 1"
      [set subVal${i}CntSub] add command -label "Option 2"
      # add this sub-sub-menu
      [set subVal${i}Cnt] add cascade -label "" \
          -menu [set subVal${i}CntSub]
      # add the sub menu
      $mItem add cascade -label [expr {$i+1}] \
          -menu [set subVal${i}Cnt]
  }

  # put the special menu together
  $specM add cascade -label "Count" -underline 0 \
      -menu $GUI(specM,subCnt)
  $specM add cascade -label "Next cascade" -underline 0 \
      -menu $GUI(specM,subVal)

  # put everything onto the menubar
  $m add cascade -label "File" -underline 0 -menu $fM
  $m add cascade -label "Cascade" -underline 0 -menu $specM

  # pass on
  . configure -menu $m

  pack [MainFrame .main]
  .main showstatusbar none
  pack .main -fill x -expand yes -side top -anchor n

  # get the frame for the rest
  set f [.main getframe]
  set btn [button $f.btn -text "Click me"]
  pack $btn

  bind $m <<MenuSelect>> [namespace code { menuSelect %W }]


tkt_uuid: 1463233fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 23. Option Parsing
priority: 9 Immediate
foundin: obsolete: 8.5a3
resolution: Fixed
title: text [.t tag configure -wrap {}] errors out
comment:
  The text widget in 8.5 errors on 

    [.t configure X -wrap {}] 

  even though {} is the default value.  Thus it not
  possible to save/restore values for tags, without
  kicking an error.

  This appears to be a bug in 8.5 text widget due to the
  conversion to Tk_OptionSpec, and in particular the use
  of the "" string in -wrap's TK_OPTION_STRING_TABLE.

  The problem occurs from DoObjConfig() where a lookup of
  {} via Tcl_GetIndexFromObjStruct() generates an error
  for zero length strings at around line 205 of
  tclIndexObj.c:

      if (key[0] == '\0') {
          goto error;
      }


tkt_uuid: 1464918fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 8
foundin: obsolete: 8.5a4
resolution: Fixed
title: significant test suite failures
comment:
  This one is going to be tough to describe. Where to
  start? Okay, let's start here.

  Platform: Windows XP SP2, Exceed 10, connecting to
  SPARC Solaris 8
  Latest CVS head for Tcl and Tk.
  Compiled with Sun's c compiler on SPARC Solaris 8.

  text.test results in a core dump and termination of the
  test suite.  Note that before this point, quite a
  number of tests failed.  I will attach the output to
  this report.

  At the point of the core dump, here is the output:

  text.test

  ==== text-1.10 text options FAILED
  ==== Contents of test case:

          set result {}
          lappend result [catch {.t2 configure [lindex
  $test 0] [lindex $test 3]}]
          .t2 configure [lindex $test 0] [lindex $test 1]
          lappend result [.t2 cget [lindex $test 0]]
      
  ---- Result was:
  0 fixed
  ---- Result should have been (exact matching):
  1 fixed
  ==== text-1.10 FAILED

  TkBTreeFindLine ran out of lines
  Abort - core dumped
  gmake: *** [test] Error 134


tkt_uuid: 1466509fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 06. Canvas Postscript
priority: 9 Immediate
foundin: obsolete: 8.5a4
resolution: Fixed
title: `make dist` misses files
comment:
  The tarball produced by
  `make dist` doesn't include
  these files:

  tk/library/demos/en.msg
  tk/library/demos/nl.msg
  tk/library/prolog.ps

  If these files belong in
  the source distribution,
  the dist target should be
  updated to include them.


tkt_uuid: 1467004fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 66. Aqua Window Operations
priority: 8
foundin: None
resolution: Fixed
title: osx window resize thumb
comment:
  By default, on osx, tk displays a resize thumb for a toplevel window. This 
  is usually what you want. 

  the request:

  [wm resizeable 0 0] should make the thumb go away
    and conversely
  [wm resizeable !0 !0] should make the thumb return


tkt_uuid: 1467938fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 37. [tk_get*File]
priority: 9 Immediate
foundin: obsolete: 8.5a4
resolution: Fixed
title: searching in file dialog crashes
comment:
  Hi,
  I found a bug with tk 8.5a4, latest CVS, it's easy to 
  reproduce, open a file chooser (under unix) and press a 
  key, for example 'a' (as in 'go to the first file 
  beggining with the letter 'a'). It will generate a bug. 
  I'm pasting here the trace of the bug :

  can't read "start": no such variable
      while executing
  "set i $start"
      (procedure "IconList_Goto" line 18)
      invoked from within
  "IconList_Goto $w $Priv(ILAccel,$w)"
      (procedure "tk::IconList_KeyPress" line 5)
      invoked from within
  "tk::IconList_KeyPress .cfg.notebook.nn.__tk_choosedir.
  icons a"
      (command bound to event)

  good luck.
  KaKaRoTo


tkt_uuid: 1467997fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 8
foundin: obsolete: 8.4.12
resolution: Fixed
title: [wm iconphoto] issues on Win XP
comment:
  I've received reports of several
  problems with [wm iconphoto] on
  Windows XP.

  It's reported that the displayed
  icons have red and blue colors
  transposed.  Perhaps a disagreement
  in the data format returned by
  Tk_PhotoGetImage() and that needed
  by the GetIcon() and other Windows
  calls?

  When two photo images are passed
  to [wm iconphoto], one 16x16 and
  one 32x32, it seems the 32x32 data
  is always used, and downsampled to
  produce 16x16 display.  It's desired
  to have the 16x16 icon provided used
  instead.

  The [wm iconphoto] docs are missing
  on the core-8-4-branch.


tkt_uuid: 1468291fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 75. wish
priority: 8
foundin: obsolete: 8.4.13
resolution: Fixed
title: Threads: "called Tcl_Close on channel with refCount > 0"
comment:
  When using vfs::mk4 and [file copy] and multi threading
  on Windows, wish crashes with the error message:

  "called Tcl_Close on channel with refCount > 0" 

  This issue applies only to the wish application or
  tclkit on windows. Tclsh and tclkitsh on windows are
  not affected. When using [file copy] on normal non-vfs
  directories, everything is fine as well. Only with
  *non-existing* vfs directories mounted via
  vfs::mk4::Mount (or maybe other vfs::*::Mount's) the
  crash appeared to me.

  I've written a short script which makes it easy to
  reproduce the bug:

  # channel refcount bug
  package require Thread
  catch {console show}

  set T [thread::create -preserved]

  thread::send $T [list set D [file dirname [info script]]]

  set script {
      package require vfs::mk4
      
      set logOpen 0
      proc ::Log {msg} {
          if {$::logOpen} {
              set mode a
          } else {
              set mode w
              set ::logOpen 1
          }
          
          set L [open [file join $::D log.txt] $mode]
          puts $L $msg
          close $L
      }
      
      Log $D
      set src [file join $D test.txt]
      set tdir [file join $D tdir.kit]
      set dest [file join $tdir test.txt]
      Log $dest
      
      Log 1
      set vfsh [vfs::mk4::Mount $tdir $tdir]
      Log 2
      file copy $src $dest
      Log 3
      vfs::mk4::Unmount $vfsh $tdir
      Log 4
  }

  thread::send -async $T $script

  # end channel bug script

  When the directory exists, the crash does not happen,
  but the script runs only until "Log 2".
  It is not very clear to me whether this is a bug in Tk
  (because it only appears with wish/windows) or vfs or
  metakit.


tkt_uuid: 1469210fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 18. [text]
priority: 9 Immediate
foundin: None
resolution: Accepted
title: Text widget modified flag problem
comment:
  There is a problem with the text widget modified flag.
  It is illustrated by the following code:

  % text .t -undo 1
  .t
  % .t insert end foo 
  % .t edit modified 0
  % .t edit undo
  % .t insert end bar
  % .t edit modified
  0

  The reason is that the text widget code for updating
  the dirty counter does not make a distinction between a
  redo and a normal edit operation. When the dirty
  counter is negative, it should only become positive
  again by redoing things, not by other edit operations.

  In this patch I have replaced the isDirtyIncrement
  value by a dirtyMode enum, which has 4 possible states
  (normal, undo, redo, fixed). The fixed mode is entered
  when the dirty counter is negative and a normal edit
  operation is done. In that case, the dirty counter can
  never become zero anymore (except by a manual "edit
  modified 0").

  The modifiedSet flag has been removed because it is now
  redundant.


tkt_uuid: 1470524fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 67. Unix Window Operations
priority: 8
foundin: obsolete: 8.4.12
resolution: Out of Date
title: Wish core dumps when DISPLAY set to :<n>
comment:
  Running Tk 8.4.12 on a Solaris 5.8 machine and trying
  to display to a vncserver running locally as display :1.0.

  When my DISPLAY environment variable is set to :1.0,
  wish core dumps upon exit with this error message:

  "called Tcl_FindHashEntry on deleted table"

  If DISPLAY is set to <hostname>:1.0, this core dump
  does not happen.  It seems to only happen when the
  hostname is not explicitly set in the DISPLAY variable.

  e.g.:

  > setenv DISPLAY :1.0
  > wish
  % exit
  called Tcl_FindHashEntry on deleted table
  Abort (core dumped)
  > setenv DISPLAY machinename:1.0
  > wish
  % exit
  > 
  (no core file)

  Any help would be appreciated.  Thanks.
  Chris Hawes
  chawes@cadence.com


tkt_uuid: 1472624fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 7 High
foundin: obsolete: 8.5a4
resolution: Fixed
title: TkAqua focus lost example with balloon help
comment:
  The attached example shows how a toplevel created for balloon help on 
  TkAqua, which should not take the focus, does steal the focus from the 
  underlying widget.

  To reproduce:

  >wish8.5
  % source focusTestBalloonHelp.tcl

  -

  Now click on the new toplevel's titlebar to give the window the focus. Now 
  move the mouse over the text in the window. A balloon will appear, which 
  also contains information about the current focus. It says "focus is .tt.t" 
  for a fraction of a second, and then changes to say "focus is .balloon".

  To make things even worse, uncomment the second of these two lines in 
  the test file:

  # To make things even worse on TkAqua, uncomment this line
  #wm overrideredirect .balloon 1

  That makes the entire toplevel lose its frontmost status (contradicting the 
  documented behaviour and what happens on Win/Unix)

  Vince.


tkt_uuid: 1473475fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 65. Generic Window Operations
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: Works For Me
title: Runtime error in Windows
comment:
  I've just downloaded the last CVS version (8.5a4) and
  compiled it without problems using mingw32.

  Everything seems to work fine until I try to close the
  application, then I get a runtime error:

  "This application has requested the Runtime to
  terminate it in an unusual way"

  Here is a script that reproduces the problem:

  wm title . "Test Script"
  wm protocol . WM_DELETE_WINDOW "exit"

  Looking a little bit through google I found a workaround:

  wm title . "Test Script"
  wm protocol . WM_DELETE_WINDOW "ExitProc"

  proc ExitProc {} {
    destroy .

    exit
  }

  Until now I was running the ActiveTcl 8.5 version
  without problems, so I imagine is something in my
  compilation or in the code.

  Cheers,
  Carlos.


tkt_uuid: 1474465fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 55. [focus]
priority: 2
foundin: obsolete: 8.5a4
resolution: None
title: TkAqua focus test failures
comment:
  The following tests fail (and given the serious 'lost focus' bug in 
  TkAqua, it is plausible that something here is important):

  focus.test

  ==== focus-1.1 Tk_FocusCmd procedure FAILED
  ==== Contents of test case:

      focusClear
      focus

  ---- Result was:
  .t
  ---- Result should have been (exact matching):

  ==== focus-1.1 FAILED


  ==== focus-1.3 Tk_FocusCmd procedure FAILED
  ==== Contents of test case:

      focusClear
      focus .t.b3
      focus

  ---- Result was:
  .t.b3
  ---- Result should have been (exact matching):

  ==== focus-1.3 FAILED


  ==== focus-1.12 Tk_FocusCmd procedure, -displayof option FAILED
  ==== Contents of test case:

      focusClear
      focus .t
      focus -displayof .t.b3

  ---- Result was:
  .t
  ---- Result should have been (exact matching):

  ==== focus-1.12 FAILED


  ==== focus-1.19 Tk_FocusCmd procedure, -force option FAILED
  ==== Contents of test case:

      focusClear
      focus .t.b1
      set x  [list [focus]]
      focus -force .t.b1
      lappend x [focus]

  ---- Result was:
  .t.b1 .t.b1
  ---- Result should have been (exact matching):
  {} .t.b1
  ==== focus-1.19 FAILED


tkt_uuid: 1475156fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 53. [selection]
priority: 2
foundin: obsolete: 8.5a4
resolution: None
title: TkAqua select.test failures
comment:
  The following tests fail in cvs HEAD:

  select.test

  ==== select-1.4.1 Tk_CreateSelHandler procedure FAILED
  ==== Contents of test case:

      setup
      selection handle .f1 {handler TEST} TEST
      selection handle .f1 {handler STRING}
      lsort [selection get TARGETS]

  ---- Result was:
  MULTIPLE STRING TARGETS TEST TIMESTAMP TK_APPLICATION 
  TK_WINDOW
  ---- Result should have been (exact matching):
  MULTIPLE STRING TARGETS TEST TIMESTAMP TK_APPLICATION 
  TK_WINDOW UTF8_STRING
  ==== select-1.4.1 FAILED


  ==== select-1.6.1 Tk_CreateSelHandler procedure FAILED
  ==== Contents of test case:

      global selValue selInfo
      setup
      selection handle .f1 {handler TEST} TEST
      selection handle .f1 {handler STRING}
      set selValue ""
      set selInfo ""
      selection get
      selection get -type TEST
      selection handle .f1 {handler TEST2} TEST
      selection get -type TEST
      list [set selInfo] [lsort [selection get TARGETS]]

  ---- Result was:
  {STRING 0 4000 TEST 0 4000 TEST2 0 4000} {MULTIPLE STRING 
  TARGETS TEST TIMESTAMP TK_APPLICATION TK_WINDOW}
  ---- Result should have been (exact matching):
  {STRING 0 4000 TEST 0 4000 TEST2 0 4000} {MULTIPLE STRING 
  TARGETS TEST TIMESTAMP TK_APPLICATION TK_WINDOW 
  UTF8_STRING}
  ==== select-1.6.1 FAILED


  ==== select-1.7.1 Tk_CreateSelHandler procedure FAILED
  ==== Contents of test case:

      setup
      selection own -selection CLIPBOARD .f1
      selection handle -selection CLIPBOARD .f1 {handler TEST} TEST
      selection handle -selection PRIMARY .f1 {handler TEST2} STRING
      list [lsort [selection get -selection PRIMARY TARGETS]]  [lsort 
  [selection get -selection CLIPBOARD TARGETS]]

  ---- Result was:
  {MULTIPLE STRING TARGETS TIMESTAMP TK_APPLICATION TK_WINDOW} 
  {MULTIPLE TARGETS TEST TIMESTAMP TK_APPLICATION TK_WINDOW}
  ---- Result should have been (exact matching):
  {MULTIPLE STRING TARGETS TIMESTAMP TK_APPLICATION TK_WINDOW 
  UTF8_STRING} {MULTIPLE TARGETS TEST TIMESTAMP TK_APPLICATION 
  TK_WINDOW}
  ==== select-1.7.1 FAILED


  ==== select-2.1 Tk_DeleteSelHandler procedure FAILED
  ==== Contents of test case:

      setup
      selection handle .f1 {handler STRING}
      selection handle -type TEST .f1 {handler TEST}
      selection handle -type USER .f1 {handler USER}
      set result [list [lsort [selection get TARGETS]]]
      selection handle -type TEST .f1 {}
      lappend result [lsort [selection get TARGETS]]

  ---- Result was:
  {MULTIPLE STRING TARGETS TEST TIMESTAMP TK_APPLICATION 
  TK_WINDOW USER} {MULTIPLE STRING TARGETS TIMESTAMP 
  TK_APPLICATION TK_WINDOW USER}
  ---- Result should have been (exact matching):
  {MULTIPLE STRING TARGETS TEST TIMESTAMP TK_APPLICATION 
  TK_WINDOW USER UTF8_STRING} {MULTIPLE STRING TARGETS 
  TIMESTAMP TK_APPLICATION TK_WINDOW USER UTF8_STRING}
  ==== select-2.1 FAILED


  ==== select-2.2 Tk_DeleteSelHandler procedure FAILED
  ==== Contents of test case:

      setup
      selection handle .f1 {handler STRING}
      selection handle -type TEST .f1 {handler TEST}
      selection handle -type USER .f1 {handler USER}
      set result [list [lsort [selection get TARGETS]]]
      selection handle -type USER .f1 {}
      lappend result [lsort [selection get TARGETS]]

  ---- Result was:
  {MULTIPLE STRING TARGETS TEST TIMESTAMP TK_APPLICATION 
  TK_WINDOW USER} {MULTIPLE STRING TARGETS TEST TIMESTAMP 
  TK_APPLICATION TK_WINDOW}
  ---- Result should have been (exact matching):
  {MULTIPLE STRING TARGETS TEST TIMESTAMP TK_APPLICATION 
  TK_WINDOW USER UTF8_STRING} {MULTIPLE STRING TARGETS TEST 
  TIMESTAMP TK_APPLICATION TK_WINDOW UTF8_STRING}
  ==== select-2.2 FAILED


  ==== select-2.3 Tk_DeleteSelHandler procedure FAILED
  ==== Contents of test case:

      setup
      selection own -selection CLIPBOARD .f1
      selection handle -selection PRIMARY .f1 {handler STRING}
      selection handle -selection CLIPBOARD .f1 {handler STRING}
      selection handle -selection CLIPBOARD .f1 {}
      list [lsort [selection get TARGETS]]  [lsort [selection get -selection 
  CLIPBOARD TARGETS]]

  ---- Result was:
  {MULTIPLE STRING TARGETS TIMESTAMP TK_APPLICATION TK_WINDOW} 
  {MULTIPLE TARGETS TIMESTAMP TK_APPLICATION TK_WINDOW}
  ---- Result should have been (exact matching):
  {MULTIPLE STRING TARGETS TIMESTAMP TK_APPLICATION TK_WINDOW 
  UTF8_STRING} {MULTIPLE TARGETS TIMESTAMP TK_APPLICATION 
  TK_WINDOW}
  ==== select-2.3 FAILED


  ==== select-3.7 Tk_OwnSelection procedure FAILED
  ==== Contents of test case:

      global lostSel
      setup
      setupbg
      set lostSel {owned}
      selection own -command { set lostSel {lost1} } .f1
      update
      set result {}
      lappend result [dobg { selection own . }]
      lappend result [dobg {selection own}]
      update
      cleanupbg
      lappend result $lostSel

  ---- Result was:
  {} . owned
  ---- Result should have been (exact matching):
  {} . lost1
  ==== select-3.7 FAILED


  ==== select-4.4 Tk_ClearSelection procedure FAILED
  ==== Contents of test case:

      global lostSel
      setup
      setupbg
      set lostSel {owned}
      selection own -command { set lostSel {lost1} } .f1
      update
      set result {}
      lappend result [dobg {selection clear; update}]
      update
      cleanupbg
      lappend result [selection own]

  ---- Result was:
  {} .f1
  ---- Result should have been (exact matching):
  {} {}
  ==== select-4.4 FAILED


  ==== select-5.9 Tk_GetSelection procedure FAILED
  ==== Contents of test case:

      setup
      setupbg
      selection handle -selection PRIMARY .f1 {handler TEST} TEST
      update
      set selValue "Test value"
      set selInfo ""
      set result ""
      lappend result [dobg {selection get TEST}]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  {PRIMARY selection doesn't exist or form "TEST" not defined} {}
  ---- Result should have been (exact matching):
  {Test value} {TEST 0 4000}
  ==== select-5.9 FAILED


  ==== select-5.10 Tk_GetSelection procedure FAILED
  ==== Contents of test case:

      setup
      setupbg
      selection handle -selection PRIMARY .f1 {handler TEST} TEST
      update
      set selValue "Test value"
      set selInfo ""
      selection own .f1
      set result ""
      lappend result [dobg {selection get TEST} 1]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  {PRIMARY selection doesn't exist or form "TEST" not defined} {}
  ---- Result should have been (exact matching):
  {selection owner didn't respond} {}
  ==== select-5.10 FAILED


  ==== select-9.1 SelCvtToX and SelCvtFromX procedures FAILED
  ==== Contents of test case:

      set selValue "1024"
      set selInfo ""
      selection handle -selection PRIMARY -format INTEGER -type 
  TEST  .f1 {handler TEST}
      update
      set result ""
      lappend result [dobg {selection get TEST}]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  {PRIMARY selection doesn't exist or form "TEST" not defined} {}
  ---- Result should have been (exact matching):
  0x400 {TEST 0 4000}
  ==== select-9.1 FAILED


  ==== select-9.2 SelCvtToX and SelCvtFromX procedures FAILED
  ==== Contents of test case:

      setup
      setupbg
      set selValue "1024 0xffff  2048 -2  "
      set selInfo ""
      selection handle -selection PRIMARY -format INTEGER -type 
  TEST  .f1 {handler TEST}
      set result ""
      lappend result [dobg {selection get TEST}]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  {PRIMARY selection doesn't exist or form "TEST" not defined} {}
  ---- Result should have been (exact matching):
  {0x400 0xffff 0x800 0xfffffffe} {TEST 0 4000}
  ==== select-9.2 FAILED


  ==== select-9.3 SelCvtToX and SelCvtFromX procedures FAILED
  ==== Contents of test case:

      setup
      setupbg
      set selValue "   "
      set selInfo ""
      selection handle -selection PRIMARY -format INTEGER -type 
  TEST  .f1 {handler TEST}
      set result ""
      lappend result [dobg {selection get TEST}]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  {PRIMARY selection doesn't exist or form "TEST" not defined} {}
  ---- Result should have been (exact matching):
  {} {TEST 0 4000}
  ==== select-9.3 FAILED


  ==== select-9.4 SelCvtToX and SelCvtFromX procedures FAILED
  ==== Contents of test case:

      setup
      setupbg
      set selValue "16 foobar 32"
      set selInfo ""
      selection handle -selection PRIMARY -format INTEGER -type 
  TEST  .f1 {handler TEST}
      set result ""
      lappend result [dobg {selection get TEST}]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  {PRIMARY selection doesn't exist or form "TEST" not defined} {}
  ---- Result should have been (exact matching):
  {0x10 0x0 0x20} {TEST 0 4000}
  ==== select-9.4 FAILED


  ==== select-9.5 SelCvtToX and SelCvtFromX procedures FAILED
  ==== Contents of test case:

      # Ensure that lists of atoms are constructed correctly, even when the
      # atom names have spaces in. [Bug 1353414]
      set selValue "foo bar"
      set selInfo ""
      set selType {text/x-tk-test;detail="foo bar"}
      selection handle -selection PRIMARY -format STRING -type $selType  
  .f1 [list handler $selType]
      lsort [dobg {selection get TARGETS}]

  ---- Result was:
  PRIMARY TARGETS defined doesn't exist form not or selection
  ---- Result should have been (exact matching):
  MULTIPLE TARGETS TIMESTAMP TK_APPLICATION TK_WINDOW {text/x-
  tk-test;detail="foo bar"}
  ==== select-9.5 FAILED


  ==== select-10.2 ConvertSelection procedure FAILED
  ==== Contents of test case:

      setup
      setupbg
      set selValue [string range $longValue 0 3999]
      set selInfo ""
      selection handle .f1 {handler STRING}
      set result ""
      lappend result [dobg {selection get}]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  {PRIMARY selection doesn't exist or form "STRING" not defined} {}
  ---- Result should have been (exact matching):
  Aa.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Ba.1a.2a.3a.4a.5a.
  6a.7a.8a.9a.10a.11a.12a.13a.14Ca.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.
  11a.12a.13a.14Da.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Ea.
  1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Fa.1a.2a.3a.4a.5a.6a.
  7a.8a.9a.10a.11a.12a.13a.14Ga.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.
  12a.13a.14Ha.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Ia.1a.2a.
  3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Ka.1a.2a.3a.4a.5a.6a.7a.8a.
  9a.10a.11a.12a.13a.14La.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.
  14Ma.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Na.1a.2a.3a.4a.
  5a.6a.7a.8a.9a.10a.11a.12a.13a.14Ab.1b.2b.3b.4b.5b.6b.7b.8b.9b.
  10b.11b.12b.13b.14Bb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.
  14Cb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Db.1b.2b.3b.
  4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Eb.1b.2b.3b.4b.5b.6b.7b.8b.
  9b.10b.11b.12b.13b.14Fb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.
  13b.14Gb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Hb.1b.2b.
  3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Ib.1b.2b.3b.4b.5b.6b.7b.
  8b.9b.10b.11b.12b.13b.14Kb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.
  12b.13b.14Lb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Mb.
  1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Nb.1b.2b.3b.4b.5b.
  6b.7b.8b.9b.10b.11b.12b.13b.14Ac.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.
  11c.12c.13c.14Bc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Cc.1c.
  2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Dc.1c.2c.3c.4c.5c.6c.7c.8c.
  9c.10c.11c.12c.13c.14Ec.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.
  14Fc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Gc.1c.2c.3c.4c.5c.
  6c.7c.8c.9c.10c.11c.12c.13c.14Hc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.
  12c.13c.14Ic.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Kc.1c.2c.
  3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Lc.1c.2c.3c.4c.5c.6c.7c.8c.9c.
  10c.11c.12c.13c.14Mc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.
  14Nc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Ad.1d.2d.3d.4d.
  5d.6d.7d.8d.9d.10d.11d.12d.13d.14Bd.1d.2d.3d.4d.5d.6d.7d.8d.9d.
  10d.11d.12d.13d.14Cd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.
  14Dd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Ed.1d.2d.3d.
  4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Fd.1d.2d.3d.4d.5d.6d.7d.8d.
  9d.10d.11d.12d.13d.14Gd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.
  13d.14Hd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Id.1d.2d.
  3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Kd.1d.2d.3d.4d.5d.6d.7d.
  8d.9d.10d.11d.12d.13d.14Ld.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.
  12d.13d.14Md.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Nd.
  1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Ae.1e.2e.3e.4e.5e.
  6e.7e.8e.9e.10e.11e.12e.13e.14Be.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.
  11e.12e.13e.14Ce.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14De.
  1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14Ee.1e.2e.3e.4e.5e.6e.
  7e.8e.9e.10e.11e.12e.13e.14Fe.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.
  12e.13e.14Ge.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14He.1e.
  2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14Ie.1e.2e.3e.4e.5e.6e.7e.
  8e.9e.10e.11e.12e.13e.14Ke.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.
  13e.14Le.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14Me.1e.2e.3e.
  4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14Ne.1e.2e.3e.4e.5e.6e.7e.8e.9e.
  10e.11e.12e.13e.14Af.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Bf.1f.
  2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Cf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.
  11f.12f.13f.14Df.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Ef.1f.2f.3f.
  4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Ff.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.
  12f.13f.14Gf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Hf.1f.2f.3f.4f.
  5f.6f.7f.8f.9f.10f.11f.12f.13f.14If.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.
  13f.14Kf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Lf.1f.2f.3f.4f.5f.6f.
  7f.8f.9f.10f.11f.12f.13f.14Mf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.
  14Nf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Ag.1g.2g.3g.4g.5g.6g.
  7g.8g.9g.10g.11g.12g.13g.14Bg.1g.2g.3g.4g.5g.6g.7g.8g.9g.10g.
  11g.12g.13g.14Cg.1g.2g.3g.4g.5g.6g.7g.8g.9g.10g.11g.12g.13g.
  14Dg.1g.2g.3g.4g.5g.6g.7g.8g.9g.10g.11g.12g.13g.14Eg.1g.2g.3g.
  4g.5g.6g.7g.8g.9g.10g.11g.12g.13g.14Fg.1g.2g.3g.4g.5 {STRING 0 
  4000 STRING 4000 4000 STRING 0 4000 STRING 4000 4000}
  ==== select-10.2 FAILED


  ==== select-10.4 ConvertSelection procedure FAILED
  ==== Contents of test case:

      setup
      setupbg
      set selValue $longValue
      set selInfo ""
      selection handle .f1 {errIncrHandler STRING}
      set result ""
      set pass 0
      lappend result [dobg {selection get}]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  {PRIMARY selection doesn't exist or form "STRING" not defined} {}
  ---- Result should have been (exact matching):
  {selection owner didn't respond} {STRING 0 4000 STRING 4000 4000 
  STRING 8000 4000 STRING 12000 4000 STRING 16000 4000 STRING 0 
  4000 STRING 4000 4000}
  ==== select-10.4 FAILED


  ==== select-10.5 ConvertSelection procedure, reentrancy issues 
  FAILED
  ==== Contents of test case:

      setup
      setupbg
      set selValue "Test value"
      set selInfo ""
      selection handle -type TEST .f1 { handler TEST }
      selection handle -type STRING .f1 { badHandler .f1 STRING }
      set result ""
      lappend result [dobg {selection get}]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  {PRIMARY selection doesn't exist or form "STRING" not defined} {}
  ---- Result should have been (exact matching):
  {PRIMARY selection doesn't exist or form "STRING" not defined} {.f1 
  STRING 0 4000}
  ==== select-10.5 FAILED


  ==== select-10.6 ConvertSelection procedure, reentrancy issues 
  FAILED
  ==== Contents of test case:

      proc weirdHandler {type offset count} {
  destroy .f1
  handler $type $offset $count
      }
      setup
      setupbg
      set selValue $longValue
      set selInfo ""
      selection handle .f1 {weirdHandler STRING}
      set result ""
      lappend result [dobg {selection get}]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  {PRIMARY selection doesn't exist or form "STRING" not defined} {}
  ---- Result should have been (exact matching):
  {PRIMARY selection doesn't exist or form "STRING" not defined} {STRING 
  0 4000}
  ==== select-10.6 FAILED


  ==== select-11.1 TkSelPropProc procedure FAILED
  ==== Contents of test case:

      setup
      setupbg
      set selValue $longValue
      set selInfo ""
      selection handle -type TEST .f1 { handler TEST }
      selection handle -type STRING .f1 { reallyBadHandler .f1 STRING }
      set result ""
      set pass 0
      lappend result [dobg {selection get}]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  {PRIMARY selection doesn't exist or form "STRING" not defined} {}
  ---- Result should have been (exact matching):
  {selection owner didn't respond} {.f1 STRING 0 4000 .f1 STRING 4000 
  4000 .f1 STRING 8000 4000 .f1 STRING 12000 4000 .f1 STRING 16000 
  4000 .f1 STRING 0 4000 .f1 STRING 4000 4000}
  ==== select-11.1 FAILED


  ==== select-12.1 DefaultSelection procedure FAILED
  ==== Contents of test case:

      setup
      set result [selection get -type TIMESTAMP]
      setupbg
      lappend result [dobg {selection get -type TIMESTAMP}]
      cleanupbg
      set result

  ---- Result was:
  0x0 {PRIMARY selection doesn't exist or form "TIMESTAMP" not defined}
  ---- Result should have been (exact matching):
  0x0 0x0
  ==== select-12.1 FAILED


  ==== select-12.2 DefaultSelection procedure FAILED
  ==== Contents of test case:

      setup
      set result [lsort [list [selection get -type TARGETS]]]
      setupbg
      lappend result [dobg {lsort [selection get -type TARGETS]}]
      cleanupbg
      set result

  ---- Result was:
  {MULTIPLE TARGETS TIMESTAMP TK_APPLICATION TK_WINDOW} 
  {PRIMARY selection doesn't exist or form "TARGETS" not defined}
  ---- Result should have been (exact matching):
  {MULTIPLE TARGETS TIMESTAMP TK_APPLICATION TK_WINDOW} 
  {MULTIPLE TARGETS TIMESTAMP TK_APPLICATION TK_WINDOW}
  ==== select-12.2 FAILED


  ==== select-12.3 DefaultSelection procedure FAILED
  ==== Contents of test case:

      setup
      selection handle .f1 {handler TEST} TEST
      set result [list [lsort [selection get -type TARGETS]]]
      setupbg
      lappend result [dobg {lsort [selection get -type TARGETS]}]
      cleanupbg
      set result

  ---- Result was:
  {MULTIPLE TARGETS TEST TIMESTAMP TK_APPLICATION TK_WINDOW} 
  {PRIMARY selection doesn't exist or form "TARGETS" not defined}
  ---- Result should have been (exact matching):
  {MULTIPLE TARGETS TEST TIMESTAMP TK_APPLICATION TK_WINDOW} 
  {MULTIPLE TARGETS TEST TIMESTAMP TK_APPLICATION TK_WINDOW}
  ==== select-12.3 FAILED


  ==== select-12.4 DefaultSelection procedure FAILED
  ==== Contents of test case:

      setup
      set result ""
      lappend result [selection get -type TK_APPLICATION]
      setupbg
      lappend result [dobg {selection get -type TK_APPLICATION}]
      cleanupbg
      set result

  ---- Result was:
  tktest {PRIMARY selection doesn't exist or form "TK_APPLICATION" not 
  defined}
  ---- Result should have been (exact matching):
  tktest tktest
  ==== select-12.4 FAILED


  ==== select-12.5 DefaultSelection procedure FAILED
  ==== Contents of test case:

      setup
      set result [selection get -type TK_WINDOW]
      setupbg
      lappend result [dobg {selection get -type TK_WINDOW}]
      cleanupbg
      set result

  ---- Result was:
  .f1 {PRIMARY selection doesn't exist or form "TK_WINDOW" not defined}
  ---- Result should have been (exact matching):
  .f1 .f1
  ==== select-12.5 FAILED


  ==== select-13.1 SelectionSize procedure, handler deleted FAILED
  ==== Contents of test case:

      proc badHandler {path type offset count} {
  global selValue selInfo abortCount
  incr abortCount -1
  if {$abortCount == 0} {
      selection handle -type $type $path {}
  }
  lappend selInfo $path $type $offset $count
  set numBytes [expr {[string length $selValue] - $offset}]
  if {$numBytes <= 0} {
      return ""
  }
  string range $selValue $offset [expr $numBytes+$offset]
      }
      setup
      setupbg
      set selValue $longValue
      set selInfo ""
      selection handle .f1 {badHandler .f1 STRING}
      set result ""
      set abortCount 2
      lappend result [dobg {selection get}]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  {PRIMARY selection doesn't exist or form "STRING" not defined} {}
  ---- Result should have been (exact matching):
  {PRIMARY selection doesn't exist or form "STRING" not defined} {.f1 
  STRING 0 4000 .f1 STRING 4000 4000}
  ==== select-13.1 FAILED


  Tests ended at Sun Apr 23 22:19:00 BST 2006
  all.tcl:Total109Passed68Skipped15Failed26
  Sourced 1 Test Files.
  Files with failing tests: select.test
  Number of tests skipped for each constraint:
  8altDisplay
  1nonPortable
  6win


tkt_uuid: 1475158fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 01. Bindings
priority: 2
foundin: obsolete: 8.5a4
resolution: None
title: TkAqua bind.test failures
comment:
  2 tests fail with cvs HEAD. The second one looks reasonably important.

  ==== bind-13.13 Tk_BindEvent procedure: invalid key detail FAILED
  ==== Contents of test case:

      setup
      bind .b.f <Key> "lappend x Key%K"
      bind .b.f <KeyRelease> "lappend x Release%K"
      set x {}
      event gen .b.f <Key> -keycode 0
      event gen .b.f <KeyRelease> -keycode 0
      set x

  ---- Result was:
  Keya Releasea
  ---- Result should have been (exact matching):
  Key?? Release??
  ==== bind-13.13 FAILED


  ==== bind-15.7 MatchPatterns procedure, ignoring type mismatches 
  FAILED
  ==== Contents of test case:

      setup
      bind .b.f <Double-1> {set x 1}
      set x 0
      event gen .b.f <Button-1>
      event gen .b.f <Key-Shift_L>
      event gen .b.f <ButtonRelease-1>
      event gen .b.f <Button-1>
      event gen .b.f <ButtonRelease-1>
      set x

  ---- Result was:
  0
  ---- Result should have been (exact matching):
  1
  ==== bind-15.7 FAILED


tkt_uuid: 1475172fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 16. [scrollbar]
priority: 2
foundin: obsolete: 8.5a4
resolution: None
title: TkAqua scrollbar.test failures
comment:
  13 tests fail in cvs HEAD. Some of these seem to be due to a poor 
  implementation of 'testmetrics', but the last few seem more important 
  than that.

  scrollbar.test

  ==== scrollbar-3.26 ScrollbarWidgetCmd procedure, "delta" option 
  FAILED
  ==== Contents of test case:

      .s delta 0 20

  ---- Result was:
  0.127389
  ---- Result should have been (exact matching):
  0.11976
  ==== scrollbar-3.26 FAILED


  ==== scrollbar-3.27 ScrollbarWidgetCmd procedure, "delta" option 
  FAILED
  ==== Contents of test case:

      .s delta 0 -20

  ---- Result was:
  -0.127389
  ---- Result should have been (exact matching):
  -0.11976
  ==== scrollbar-3.27 FAILED


  ==== scrollbar-3.28 ScrollbarWidgetCmd procedure, "delta" option 
  FAILED
  ==== Contents of test case:

      toplevel .t -width 250 -height 100
      wm geom .t +0+0
      scrollbar .t.s -orient horizontal -borderwidth 2
      place .t.s -width 201
      update
      set result [list [.t.s delta 0 20]  [.t.s delta [expr [getTroughSize .t.s] - 
  1] 0]]
      destroy .t
      set result

  ---- Result was:
  0 1.03704
  ---- Result should have been (exact matching):
  0 1
  ==== scrollbar-3.28 FAILED


  ==== scrollbar-3.35 ScrollbarWidgetCmd procedure, "fraction" option 
  FAILED
  ==== Contents of test case:

      .s fraction 4 21

  ---- Result was:
  0
  ---- Result should have been (exact matching):
  0.0299401
  ==== scrollbar-3.35 FAILED


  ==== scrollbar-3.38 ScrollbarWidgetCmd procedure, "fraction" option 
  FAILED
  ==== Contents of test case:

      .s fraction 4 178

  ---- Result was:
  1
  ---- Result should have been (exact matching):
  0.993711
  ==== scrollbar-3.38 FAILED


  ==== scrollbar-3.50 ScrollbarWidgetCmd procedure, "identify" option 
  FAILED
  ==== Contents of test case:

      .s identify 5 5

  ---- Result was:

  ---- Result should have been (exact matching):
  arrow1
  ==== scrollbar-3.50 FAILED


  ==== scrollbar-6.11 ScrollbarPosition procedure FAILED
  ==== Contents of test case:

      .s identify 8 4

  ---- Result was:

  ---- Result should have been (exact matching):
  arrow1
  ==== scrollbar-6.11 FAILED


  ==== scrollbar-6.12 ScrollbarPosition procedure FAILED
  ==== Contents of test case:

      .s identify 8 19

  ---- Result was:
  trough1
  ---- Result should have been (exact matching):
  arrow1
  ==== scrollbar-6.12 FAILED


  ==== scrollbar-6.25 ScrollbarPosition procedure FAILED
  ==== Contents of test case:

      .s identify 8 179

  ---- Result was:
  arrow1
  ---- Result should have been (exact matching):
  trough2
  ==== scrollbar-6.25 FAILED


  ==== scrollbar-6.39 ScrollbarPosition procedure FAILED
  ==== Contents of test case:

      .t.s identify 4 8

  ---- Result was:

  ---- Result should have been (exact matching):
  arrow1
  ==== scrollbar-6.39 FAILED


  ==== scrollbar-6.41 ScrollbarPosition procedure FAILED
  ==== Contents of test case:

      .t.s identify 82 8

  ---- Result was:
  trough2
  ---- Result should have been (exact matching):
  slider
  ==== scrollbar-6.41 FAILED


  ==== scrollbar-8.1 TkScrollbarEventProc: recursive deletion FAILED
  ==== Contents of test case:

      proc doit {args} { destroy .t.f }
      proc bgerror {args} {}
      destroy .t.f
      frame .t.f
      scrollbar .t.f.s -command doit
      pack .t.f -fill both -expand 1
      pack .t.f.s -fill y -expand 1 -side right
      wm geometry .t 100x100
      .t.f.s set 0 .5
      update
      set result [winfo exists .t.f.s]
      event generate .t.f.s <ButtonPress> -button 1 -x [expr [winfo width 
  .t.f.s] / 2] -y 5
      event generate .t <ButtonRelease> -button 1
      update
      lappend result [winfo exists .t.f.s] [winfo exists .t.f]
      rename bgerror {}
      set result

  ---- Result was:
  1 1 1
  ---- Result should have been (exact matching):
  1 0 0
  ==== scrollbar-8.1 FAILED


  ==== scrollbar-8.2 TkScrollbarEventProc: recursive deletion FAILED
  ==== Contents of test case:

      proc doit {args} { destroy .t.f.s }
      proc bgerror {args} {}
      destroy .t.f
      frame .t.f
      scrollbar .t.f.s -command doit
      pack .t.f -fill both -expand 1
      pack .t.f.s -fill y -expand 1 -side right
      wm geometry .t 100x100
      .t.f.s set 0 .5
      update
      set result [winfo exists .t.f.s]
      event generate .t.f.s <ButtonPress> -button 1 -x [expr [winfo width 
  .t.f.s] / 2] -y 5
      event generate .t.f <ButtonRelease> -button 1
      update
      lappend result [winfo exists .t.f.s] [winfo exists .t.f]
      rename bgerror {}
      set result

  ---- Result was:
  1 1 1
  ---- Result should have been (exact matching):
  1 0 1
  ==== scrollbar-8.2 FAILED


tkt_uuid: 1475865fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 46. Unix Fonts
priority: 8
foundin: obsolete: 8.5a3
resolution: Fixed
title: Crash in font families
comment:
  Althought I have been unable to reproduce this, a
  customer of ours reported a crash on a new RedHat
  system that I've tracked down to the code below from
  tkUnixFont.c.  This is in 8.4.9, but the code is the
  same in the current HEAD (8.5).  The crash is in
  strchar() and my theory is that ListFonts() is
  returning a font name that does not contain a '-' or
  contains only 1 '-'.  In any event, good programming
  practice would dictate that a test for a NULL return
  value would be in order here.  

  void
  TkpGetFontFamilies(interp, tkwin)
      Tcl_Interp *interp;/* Interp to hold result. */
      Tk_Window tkwin;/* For display to query. */
  {
      int i, new, numNames;
      char *family;
      Tcl_HashTable familyTable;
      Tcl_HashEntry *hPtr;
      Tcl_HashSearch search;
      char **nameList;
      Tcl_Obj *resultPtr, *strPtr;

      resultPtr = Tcl_GetObjResult(interp);    

      Tcl_InitHashTable(&familyTable, TCL_STRING_KEYS);
      nameList = ListFonts(Tk_Display(tkwin), "*",
  &numNames);
      for (i = 0; i < numNames; i++) {
  family = strchr(nameList[i] + 1, '-') + 1;
  strchr(family, '-')[0] = '\0';
  Tcl_CreateHashEntry(&familyTable, family, &new);
      }
      XFreeFontNames(nameList);

      hPtr = Tcl_FirstHashEntry(&familyTable, &search);
      while (hPtr != NULL) {
  strPtr = Tcl_NewStringObj(Tcl_GetHashKey(&familyTable,
  hPtr), -1); 
  Tcl_ListObjAppendElement(NULL, resultPtr, strPtr);
  hPtr = Tcl_NextHashEntry(&search);
      }

      Tcl_DeleteHashTable(&familyTable);
  }


tkt_uuid: 1476443fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: Fixed
title: Some toplevels are drawn in the wrong place
comment:
  My application (a control system) has many toplevels.
  It remembers their positions and restores those next time.

  Aqua Tcl/Tk 8.4.13 has introduced a bug in this at
  startup: a few of my toplevels are consistently drawn
  in the wrong location.

  I have not been able to trace what is different about
  the few toplevels that are place incorrectly and the
  others, but it is completely reproducible (it is always
  the same two, and they are always drawn in the same
  incorrect location).

  I create the toplevels as follows:
  - create a toplevel
  - withdraw it
  - set its title
  - add its widgets
  - set its geometry (position only if not resizable)
  - deiconify it (make it visible)

  For the toplevels that are in the wrong place:
  - If I read the geometry immediately after the
  deiconfy, the read position is what I asked for (not
  where it actually is displayed).
  - If I read the geometry after update idletasks after
  deiconify, the reported position is where it is
  displayed (not where I asked it to be).

  A workaround: if I call "update idletasks" before
  setting geometry then the problem goes away.

  Configuration:
  - MacOS X 10.3.9 (PPC)
  - Aqua Tcl/Tk 8.4.13, in particular
  ActiveTcl8.4.13.0.261555-macosx-powerpc-threaded.dmg
  (the 8.4.13 release)

  I did NOT see the problem using the same OS and using
  ActiveTcl8.4.13.0.260592-macosx-powerpc-threaded.dmg (a
  prerelease). Nor have I seen it with any older version
  of Aqua Tcl/Tk (and I've used almost all of them).


tkt_uuid: 1477239fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 09. [listbox]
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: Works For Me
title: Activestate 8.5a5 listbox doesn't support itemconfigure
comment:
  : bad option "itemconfigure": must be activate, bbox, 
  cget, configure, curselection, delete, get, index, 
  insert, nearest, scan, see, selection, size, xview, or 
  yview

  code:

  listbox $pathpref.stack -height 10 -width 25 \
  -yscrollcommand [list $pathpref.
  stackscroll set]
  ...
  $pathpref.stack itemconfigure end -foreground red


  works in Activestate 8.5a4

  SPARC Solaris 8


tkt_uuid: 1477426fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 33. Generic Dialog Support
priority: 7 High
foundin: TIP Implementation
resolution: Fixed
title: TIP #324: standard font selection dialog
comment:
  This patch implements a new standard dialog box as a
  new command: tk_chooseFont

  There is a Tk-only implementation and a Win32
  implementation. The Mac implementation is missing :-(

  The Win32 implementation uses the Win32 API function
  ChooseFont.

  Input parameters: none at this time

  Output parameters: Font description as a list "family
  size ?style...?"

  style is bold, italic

  The label description of the generic Tk implementation
   is currently in German but stored in a array inside
  tk_choosefont.

  The Win32 implementation is build with the Borland Free
  Command Line Tools

  Greetings from Leipzig
  G"oran 


tkt_uuid: 1479587fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 63. Tk_Win Functions
priority: 9 Immediate
foundin: obsolete: 8.4.13
resolution: Fixed
title: Tk_Init deadlocks when called twice
comment:
  When Tcl and Tk are compiled with --enable-threads,
  Tk_Init deadlocks the second time when it failed to
  create a top level window the first time, as
  demonstrated with the program:

  #include <tcl.h>
  #include <tk.h>

  int main(void) {
      Tcl_Interp *trp;
      unsetenv("DISPLAY");
      trp = Tcl_CreateInterp();
      printf("%d\n", Tk_Init(trp));
      printf("%d\n", Tk_Init(trp));
      return 0;
  }

  On Debian, this prints 1, then deadlocks.

  Attached patch fixes the problem; the second missing
  unlock call was found by source inspection. I haven't
  checked whether other resources also need to be cleaned
  up in case of error.


tkt_uuid: 1480105fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 9 Immediate
foundin: obsolete: 8.4.13
resolution: Fixed
title: TkAqua: unmap not propagating in 8.4.13
comment:
  The attached unmap.tcl wish script works in the wish8.4
  that comes with Mac OS X 10.4.6 (8.4.7) and fails with
  a fresh build of Tcl/Tk 8.4.13.  The correct behavior
  occurs when the button is pressed and the frame
  containing the interior label is unmapped and the
  interior label does not get the unmap event.  This is a
  show stopper for the Togl widget,
  http://togl.sourceforge.net, because togl needs to
  disable OpenGL drawing when the widget isn't mapped.


tkt_uuid: 1481496fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 11. Aqua Menus
priority: 4
foundin: obsolete: 8.4.13
resolution: None
title: help menu entries block the application
comment:
  In my application, when certain entries from the
  help menu are selected, the application stops,
  displays the rainbow wheel and can only be killed.

  I can make the menu entries work using "after idle"
  for the menu command or by renaming the menu from
  "help" to "myhelp" (in the latter case, I then have
  of course two Help menus).
  The menu entries that do not work simply call
  a procedure that should fire up a web browser.
  Other entries from the same menu, that e.g. only
  pop up an About dialog, always work.

  This bug does not show up with Tcl/Tk 8.4.7.

  Application:
  http://sf.net/projects/ayam

  best regards,
  Randolf,
  -- 
  http://www.ayam3d.org/    Ayam, where import means NURBS!


tkt_uuid: 1481503fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 9 Immediate
foundin: obsolete: 8.4.13
resolution: Fixed
title: TkAqua first Apple-, event swallowed
comment:
  In my application I define a ::tk::mac::ShowPreferences
  procedure. This procedure is only called on the
  second (and subsequent) presses of the Apple-,
  key combination. I expect that it works for the first
  use of Apple-, also. Note that the corresponding menu
  entry is not flashing, when Apple-, is used for the
  first time.

  Application:
  http://sf.net/projects/ayam

  best regards,
  Randolf,
  -- 
  http://www.ayam3d.org/


tkt_uuid: 1485750fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 14. [message]
priority: 8
foundin: obsolete: 8.5a5
resolution: Fixed
title: Missing Tcl_Release in MessageWidgetObjCmd() ?
comment:
  I spotted a couple of possible problems in
  Tcl_Preserve()..Tcl_Release() blocks while
  looking thro' the Tk source.

  I'm not 100% sure if they're real problems
  due to my limited understanding of the code,
  so apoglogies if i'm barking up the wrong tree!

  1.
  In tkMessage.c's MessageWidgetObjCmd(),
  it's possible to bypass the Tcl_Release(msgPtr) done
  at the end:

   Tcl_Preserve((ClientData) msgPtr);

   switch ((enum options) index) {
    case MESSAGE_CGET: {
     if (objc != 3) {
      Tcl_WrongNumArgs(interp, 2, objv, "option");
      return TCL_ERROR; // skip's Tcl_Release

  It's not clear why this case should omit
  the Tcl_Release, so possibly an oversight?

  2.
  In tkEvent.c, the

  ~1362: Tcl_Preserve((ClientData) interp);

  is conditional on:

  ~1351: (winPtr->mainPtr != NULL).

  However the corresponding Release is conditional on:

  ~1446: (interp != (Tcl_Interp *) NULL)

  It's not clear to me if these conditions are
  equivalent. ie. if winPtr->mainPtr is NULL,
  and interp is !NULL, then it would Release
  something it hadn't Preserve'd (unless that gets
  done elsewhere?).


tkt_uuid: 1487701fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 74. Application Embedding
priority: 7 High
foundin: obsolete: 8.4.13
resolution: Accepted
title: embedding on OS X Aqua is problematic
comment:
  macosx/tkMacOSXInit.c's TkpInit function is not
  friendly to applications that embed Tcl/Tk.

  One bug is that it only works for the first Tcl
  interpreter that an application creates -- this is not
  a problem for the X11 and Windows versions of Tk.  The
  symptom is that one's ported application crashes
  mysteriously because Apple events refer to a Tcl
  interpreter that no longer exists.

  The next bug appears once the application is rewritten
  to use only one Tcl interpreter (in my case, reuse the
  Tcl interpreter from the splash screen for the main
  part of the application).  Then an extremely helpful
  console window appears (because the application was
  started by double clicking and Tk thinks it was started
  up via Wish.app) that is unwanted and unneeded.  (The
  console appeared before, but quickly disappeared when
  the first Tcl interpreter was destroyed.)  There is no
  reasonable way to disable this behavoir without
  modifying the Tk source code (I want to leave stdin
  alone, thank you very much).


tkt_uuid: 1488195fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 84. Unix Build
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: None
title: Solaris LP64 build incorrectly hardcodes /usr/openwin/lib
comment:
  Whether or not one specifies --enable-64bit when
  configuring tk 8.4.13, tk always hardcodes
  -R/usr/openwin/lib into both libtk-8.4.so and wish.

  I believe that's wrong when building for LP64 Solaris
  (e.g. generating ELF64 objects) -- if it's going to
  hardcode anything it should be -R/usr/openwin/lib/64.

  This type of thing no doubt applies to other multi-ABI
  platforms too (e.g. IRIX vs. IRIX64).


tkt_uuid: 1489031fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 13. Win Menus
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: Duplicate
title: tearoff submenus unresponsive
comment:
  On Windows (only), if you tearoff a menu that has one or more submenus, 
  using one of the submenus works normally the first time, but then after 
  that you can't raise the submenu again without first accessing some 
  _other_ item or submenu of the torn-off menu.

  The attached wish script demonstrates the problem:

  1) tear off the Edit menu
  2) access the Menu1 submenu, either by raising and dismissing it or by 
  raising it and choosing Command1
  3) you cannot reraise Menu1 without first accessing Menu2


tkt_uuid: 1491656fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 15. [scale]
priority: 5 Medium
foundin: None
resolution: Wont Fix
title: adding a new widget command
comment:
  from: kitchen@pelletron.com

  I've run into an issue with the scale widget and likely
  others in the toolset.  I've seen this in other widget
  toolsets such as Motif also.

  In this case I am creating a control panel for
  something. The control panel is actually a client and
  sends commands to a server which performs the work.

  There may be several copies of the client running at
  the same time.

  Generally the way this is done is to operate everything
  in full duplex mode.  This means that a client
  originates a command which is sent to the server and
  the server replies to all clients with the new value
  of the parameter.

  At that time all clients are expected to update their
  widgets to show the new value.

  As an example let's look at a push button.

  In this case the user pushes the button which calls the
  callback which in turn sends a command to the server
  requesting a state change for the parameter.

  If the server agrees to change the state a message is
  sent back to all clients which ultimately causes the
  button label to change, for example from "off" to "on".

  This particular example is not a problem for the widget
  set.

  Another example is the slider widget.  In this case
  one client may change the value and the rest of the
  clients need to be updated to reflect the new slider
  position.

  This is a problem because issuing a command to the
  widget to change the value causes the callback to
  be called which sends a message back to the server
  potentially creating an infinite loop.

  In this case I modified the scale widget to add a new
  command "set_lcl" which updates the widget but doesn't
  call the callback.

  I suspect there are other widgets which should be
  similarly modified however I haven't taken the time
  to do anything about it.


tkt_uuid: 1491881fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Fixed
title: Problem with SetLayeredWindowAttributes and Tk windows
comment:
  If I try to use SetLayeredWindowAttributes on a Tk
  window, either to set transparency, or chroma keying,
  it doesn't work, nothing happens.  It does not matter
  if I do it within the application (via an extension I
  wrote) or from outside the application (in another tk
  app).  My library can control the chroma keying and
  alpha transparency of non-tk windows just fine. There
  are a variety of other programs for setting alpha
  transparency and none of those work on Tk apps.

  I suspect that there is some quality of Tk windows that
  does not allow them to have transparency or chroma
  keying applied?  Perhaps an attribute or a class thing?

  This is probably not properly a Tk bug, but rather, I
  need to know what I need to "do" to the Tk windows to
  make them accept changes in transparency and chroma keying.


tkt_uuid: 1493144fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 39. Image Basics
priority: 5 Medium
foundin: None
resolution: None
title: terrible performance deleting canvas with many images
comment:
  The following script exposes a performance problem
  deleting canvases with many images:
  #---
  canvas .c
  set img [image create photo]
  for {set i 0} {$i < 40000} {incr i} { .c create image
  10 10 -image $img }
  destroy .c
  destroy .
  #---
  Almost all of the time (100 seconds on my system) is
  spend in the line "destroy .c", and C-level profiling
  with 'callgrind' shows that most of that time is in
  tkImage.c:Tk_FreeImage, traversing the linked list of
  images.

  Tested in 8.4.10 on linux but by inspection of the
  source I don't have any reason to believe the
  performance has been improved in 8.4.14 or 8.5.


tkt_uuid: 1493260fffffffffffffffffffffffffffffffff
type: Patch
status: Open
subsystem: 05. Canvas Items
priority: 5 Medium
foundin: None
resolution: None
title: Fix for bug 220787 - Stipple patterns don't work in arc/oval
comment:
  Hello all,
     I have a fix for the Windows version.  I will post
  the diff as a file here.

  My tkWinDraw.c reads:

  RCS: @(#) $Id: tkWinDraw.c,v 1.12.2.2 2005/07/28
  04:57:38 hobbs Exp $


tkt_uuid: 1495718fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 85. Win Build
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: None
title: Inconsistent link to standard debug libraries.
comment:
  This change:
  http://tktoolkit.cvs.sourceforge.net/tktoolkit/tk/win/rules.vc?r1=1.5.2.1&r2=1.5.2.2
  yanked the DBGX variable from win/rules.vc:
  It was:

  !if $(DEBUG)
  BUILDDIRTOP = Debug
  DBGX    = g
  !else
  BUILDDIRTOP = Release
  DBGX    =
  SUFX    = $(SUFX:g=)
  !endif

  and is now:

  !if $(DEBUG)
  BUILDDIRTOP = Debug
  !else
  BUILDDIRTOP = Release
  !endif

  This variable is critical though, for it is used in
  win/makefile.vc that way:

  !if $(MSVCRT)
  !if "$(DBGX)" == ""
  crt = -MD
  !else
  crt = -MDd
  !endif
  !else
  !if "$(DBGX)" == ""
  crt = -MT
  !else
  crt = -MTd
  !endif
  !endif

  Now that DBGX is not defined anymore, debug build of
  Tcl/Tk are linked against the wrong (non-debug)
  standard library (libcmt or msvcrt instead of libcmtd
  or msvcrtd). This causes problem with larger projects
  that link against Tcl/Tk (especially static ones),
  where the compiler will complain about two standard
  libraries being included.

  Note that this is done correctly in Tcl (DBGX is used
  exactly the same way). DBGX is actually not used for
  anything else in both Tcl and Tk.

  Please revert to:

  !if $(DEBUG)
  BUILDDIRTOP = Debug
  DBGX    = g
  !else
  BUILDDIRTOP = Release
  DBGX    =
  SUFX    = $(SUFX:g=)
  !endif

  Thanks.


tkt_uuid: 1497346fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 99. Other
priority: 5 Medium
foundin: None
resolution: Out of Date
title: TK with XGL
comment:
  OS: Ubuntu Dapper

  The XGL window manager seems to cause problems with TK
  applications. Here is the message given by two
  different scripts:


  trains3 (http://wiki.tcl.tk/1359):
  $ wish train.tk.tcl
  Application initialization failed: this isn't a Tk
  applicationunknown color name "Black"
  Error in startup script: can't invoke "winfo" command:
   application has been destroyed
      while executing
  "winfo exists $w"
      (procedure "rr::init" line 5)
      invoked from within
  "rr::init .c"
      (file "train.tk.tcl" line 1281)


  analog clock (http://wiki.tcl.tk/1011):
  $ wish clock.tk.tcl
  Application initialization failed: this isn't a Tk
  applicationunknown color name "Black"
  Error in startup script: can't invoke "canvas" command:
   application has been destroyed
      while executing
  "canvas .c -width 200 -height 200"
      invoked from within
  "grid [canvas .c -width 200 -height 200]"
      (file "clock.tk.tcl" line 1)


tkt_uuid: 1498415fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 13. Win Menus
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: None
title: Win98: A new menu related crash
comment:
  Hello out there,
  I managed to reduce the code to a manageable size which
  still exhibits this bug. Please see the instructions in
  the attached file.
  Best regards
  Helmut Giese


tkt_uuid: 1499165fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 18. [text]
priority: 5 Medium
foundin: None
resolution: None
title: 8.5 text widget slow to update scrollbar
comment:
  When reading large files into a text widget,
  the widget sends scrollbar updates over many seconds
  as (i assume) it's calculating display lines. While 
  this is happening, the scrollbar will only represent 
  the part of the widget that the widget has processed.

  8.4 doesnt have this slow scrollbar update behavior.

  I'm assuming this was to improve scrollbar accuracy, 
  counting display lines instead of file lines.

  It would be nice to have an option to return to the 
  inaccurate but quick behavior of 8.4.
  I have one font and no line-wrapping, so a simply file 
  line count is correct.

  I'm running Solaris 5.8 on a 440MHz Sun.

  Thanx


tkt_uuid: 1499862fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: Duplicate
title: 8.5 ActiveTcl tabs irregular
comment:
  ActiveTcl only - tclkit tabs are ok.

  Inserting tabs into a text window a few tab stops in 
  from left edge visually inserts spaces until it reaches 
  before a tab stop, where it visually inserts 2 spaces, 
  after which it visually inserts tabs.

  Solaris 5.8 on Sun.


tkt_uuid: 1501749fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 18. [text]
priority: 5 Medium
foundin: None
resolution: None
title: Wish core dump with window-delete + index
comment:
  Wish core dumps with the script below.  To reproduce
  run it and press <PgDn> then <Down> until the window
  gets mapped, deleted and replaced with blue text.
  Does not occur every time, but has been reproduced
  under versions Tk 8.3, 8.4 and 8.5 and CVS HEAD.

  Following is the gdb traceback of CVS HEAD.

  **************************************
  #0  0x400d7b8e in TkTextUpdateLineMetrics
  (textPtr=0x80e8ca8, lineNum=103, 
      endLine=202, doThisMuch=256)
      at
  /home/pcmacdon/tmp/TclCvs/tk/unix/../generic/tkTextDisp.c:3035
  3035                if (TkBTreeLinePixelEpoch(textPtr,
  linePtr)

  (gdb) p linePtr->pixels
  $3 = (int *) 0x1

  (gdb) bt
  #0  0x400d7b8e in TkTextUpdateLineMetrics
  (textPtr=0x80e8ca8, lineNum=103, 
      endLine=202, doThisMuch=256)
      at
  /home/pcmacdon/tmp/TclCvs/tk/unix/../generic/tkTextDisp.c:3035
  #1  0x400d78fd in AsyncUpdateLineMetrics
  (clientData=0x80e8ca8)
      at
  /home/pcmacdon/tmp/TclCvs/tk/unix/../generic/tkTextDisp.c:2901
  #2  0x401c3ac5 in TimerHandlerEventProc ()
     from /home/pcmacdon/tmp/TclCvs/lib/libtcl8.5.so
  #3  0x401a9a3a in Tcl_ServiceEvent ()
     from /home/pcmacdon/tmp/TclCvs/lib/libtcl8.5.so
  #4  0x401a9d3c in Tcl_DoOneEvent ()
     from /home/pcmacdon/tmp/TclCvs/lib/libtcl8.5.so
  #5  0x40042146 in Tk_MainLoop ()
      at
  /home/pcmacdon/tmp/TclCvs/tk/unix/../generic/tkEvent.c:2150
  #6  0x40053579 in Tk_MainEx (argc=-1, argv=0xbffff63c, 
      appInitProc=0x804887c <Tcl_AppInit>, interp=0x804b360)
      at
  /home/pcmacdon/tmp/TclCvs/tk/unix/../generic/tkMain.c:308
  #7  0x08048864 in main (argc=2, argv=0xbffff634)
      at
  /home/pcmacdon/tmp/TclCvs/tk/unix/../unix/tkAppInit.c:68
  #8  0x42017499 in __libc_start_main () from
  /lib/i686/libc.so.6

  (gdb) l
  3030
  3031                /*
  3032                 * Now update the line's metrics if
  necessary.
  3033                 */
  3034
  3035                if (TkBTreeLinePixelEpoch(textPtr,
  linePtr)
  3036                    !=
  textPtr->dInfoPtr->lineMetricUpdateEpoch) {
  3037                    if (doThisMuch == -1) {
  3038                        count += 8 *
  TkTextUpdateOneLine(textPtr, linePtr,
  0,
  3039                                NULL, 0);

  ***********************************************************

  # Demonstrate TEXT using a window frame as placeholder for 
  # a section rendering.  When window gets mapped, it's
  # deleted and the section gets rendered.
  set str [string repeat "The quick red fox jumped over
  the lazy brown dog\n" 100]
  pack [text .t] -fill both -expand y -side left
  pack [scrollbar .sb -command ".t yview"] -fill y -side left
  .t conf -yscrollc ".sb set"
  .t insert end $str\n
  .t window create end -window [frame .f1 -width 800
  -height 800]
  .t insert end \n$str
  .t tag conf foo -background lightblue
  proc MAPPED w {
    puts "MAPPED"
    set i [.t index $w]
    set oi [.t index @0,0]
    .t delete $w
    destroy $w
    .t insert $i [string toupper $::str] foo
    .t mark set insert $oi
    .t see $oi
  }
  bind .f1 <Map> "MAPPED %W"
  focus .t


tkt_uuid: 1501922fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 8
foundin: obsolete: 8.4.14
resolution: Fixed
title: regression in redraw behavior on OS X
comment:
  One of the changes post-8.4.13 for OS X has caused the
  behavior of the tile ttk::notebook to not properly
  refresh the tabbed window.  It works fine the first
  draw down the sequence of tabs, but then revisiting any
  doesn't refresh properly.  It works OK with 8.4.13, but
  not post-8.4.13.  You can test it against the tile
  widget demo notebook.


tkt_uuid: 1505182fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: Duplicate
title: Accented characters not appearing where they ought to
comment:
  Hi,
  please read this forum thread for more detailed 
  information :
  http://amsn.sourceforge.net/forums/viewtopic.php?t=1164

  I will summarize it here : 
  It seems that on Linux, when an application is 
  'frozen', by taking 100% cpu on some script, the 
  keyboard events on a text widget make all characters 
  that need the use of a deadkey appear as the last chars 
  in the widget and they will all be the same as the last 
  accented char entered.
  Quoting from the forum : a message like "¿Cómo estás?" 
  would appear as "¿Cmo ests?áá".
  To test it, simply type in a wish shell :
  destroy .t 
  pack [text .t] 
  after 5000 { 
     for { set i 0 } { $i < 100000 } { incr i } { puts 
  test } 
  }

  The loop limit depends on how long you want it to hang, 
  use the 5sec grace time to set focus on the text widget 
  and while it's hanging, type a sequence of normal chars 
  interleaved with accented chars (using a deadkey). See 
  the result.
  I was unable to reproduce it on Windows, but it was 
  reported many times already and it is known to happen 
  on Linux (FC5) with Tcl/Tk 8.4.12. I have no means to 
  test it further. 
  I hope it helps.
  Thanks.


tkt_uuid: 1505836fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 13. Win Menus
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: None
title: keyboard traversal doesn't work in win32
comment:
  Run the following script, then press "alt-f"
  and a popup menu should appair, but it doesn't work in 
  win32.
  It works in linux :)
  Thanks.

  lz_ufo@tin.it

  ######code start here#####
  frame .f
  pack .f -fill x

  menubutton .f.mb -text "File" -menu .f.mb.m  \
  -underline 0
  pack .f.mb -side left

  set m [menu .f.mb.m -tearoff 0 -type menubar]

  foreach key [list opt0 opt1 opt2] {

  $m add command -label $key -underline 3
  }

  focus -force .f
  #########code end here#######


tkt_uuid: 1506006fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 03. [*button] and [label]
priority: 5 Medium
foundin: None
resolution: Rejected
title: Add a blink option on some widgets
comment:
  A blink option should be add for the text associated
  with some widgets:


  for example with a button widget:

  .b -text myButton -blink 500 , 'myButton' blinks every
  500 ms.

  With a label widget:

  .l -text myLabel -blink 1000, 'myLabel' blinks every 1s.

  etc...for other concerned widgets

  FD
  fadel[at]laposte.net


tkt_uuid: 1509288fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 07. [entry]
priority: 7 High
foundin: None
resolution: Fixed
title: entry widget <<Clear>> virtual event
comment:
  The entry widget has the following binding for the
  <<Clear>> virtual event (file library/entry.tcl):

  bind Entry <<Clear>> {
      %W delete sel.first sel.last
  }

  This gives an error when the selection is not in the
  entry widget. I believe this should be catched (it is
  done this way for the text widget too):

  bind Entry <<Clear>> {
      catch {%W delete sel.first sel.last}
  }


tkt_uuid: 1510538fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 16. [scrollbar]
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: None
title: Wrong initial scrollbar width
comment:
  The following sample shows a text and a scrollbar with
  not default width. The width of the scrollbar is not
  updated accordingly before packing = the widgets are
  overlapping.

  thx, regards,
  thomas


  #############
  package require Tk

  toplevel .t
  text .t.text
  scrollbar .t.scroll -orient vertical -width 11

  .t.text configure -yscrollcommand [list .t.scroll set]
  .t.scroll configure -command [list .t.text yview]

  pack .t.text -fill both -expand yes -side left
  pack .t.scroll -fill y -side left
  #############

  tested on XP


tkt_uuid: 1510796fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 05. Canvas Items
priority: 5 Medium
foundin: obsolete: 8.4.12
resolution: Invalid
title: Embed Tk widgets in VisualC++, When changed the colourdepth
comment:
  As the bug[1123042] described , Yes ,this bug has been 
  solved in the version Tk8.4.12 ,but when i embed the 
  tk widgets in MFC dialog,after i changed the 
  colordepth the tk widgets does not display correct. 
  Even after i refreshed the tk event ,it also does not 
  display correct . 


tkt_uuid: 1516950fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 11. Aqua Menus
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: Fixed
title: keyboard shortcut command-q only works when menu is open
comment:
  The by-default-existing keyboard shortcut command-q only works
  when any menu is open.

  How to reproduce:
  Start Wish.app. (Do not move the focus to the console.)
  Press <Command-q>.
  Nothing happens.
  Open the Wish menu.
  Press <Command-q> again.
  Wish quits.

  I expected Wish to quit on the first use of <Command-q>, since
  the keyboard shortcut is displayed in the menu.

  Explicitly binding to <Command-q> works. The Problem is, that
  the keyboard shortcut is displayed in the Wish menu from the
  beginning but not working properly.


tkt_uuid: 1518577fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 85. Win Build
priority: 5 Medium
foundin: None
resolution: Wont Fix
title: Build error on Cygwin - tkWinDefault.h missing
comment:
  I tried building tk8.5a4 on Cygwin and it failed in
  first instance because of tkWinDefault.h.

  I changed the include statement in default.h to:

  #include "../win/tkWinDefault.h"

  and then it all worked okay. 

  (I do not know whether this is a proper solution to the
  problem - it just solved my immediate problem)


tkt_uuid: 1518677fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 68. Win Window Operations
priority: 5 Medium
foundin: None
resolution: Fixed
title: Support for WM_UNICHAR window message (windows)
comment:
  This patch introduces support for the WM_UNICHAR window
  message, used under windows to send unicode characters
  to applications. This is particularly used by virtual
  keyboard applications, such as Tavultesoft Keyman
  (http://www.tavultesoft.com/keyman/).

  This patch is for Tk 8.5 current CVS head, but the
  needed changes are so few, that the patch can be also
  applied to 8.4. In fact, it would be good if the patch
  gets also applied to Tk 8.4, so as all current existing
  Tk applications can benefit from it and receive input
  from keyboard applications like KeyMan.

  George Petasis


tkt_uuid: 1519720fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: Works For Me
title: Problem compiling tk8.5a4
comment:
  # make
  gcc -pipe -c -O2 -s -O3 -march=i686 -Wall
  -Wno-implicit-int -fPIC -I/tmp/tk8.5a4/unix/../unix
  -I/tmp/tk8.5a4/unix/../generic
  -I/tmp/tk8.5a4/unix/../bitmaps -I/tmp/tcl8.5a4/generic
  -I/tmp/tcl8.5a4/unix -I/usr/X11R6/include
  -DPACKAGE_NAME=\"tk\" -DPACKAGE_TARNAME=\"tk\"
  -DPACKAGE_VERSION=\"8.5\" -DPACKAGE_STRING=\"tk\ 8.5\"
  -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1
  -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1
  -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
  -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
  -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1
  -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1
  -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1
  -DHAVE_PTHREAD_GETATTR_NP=1 -DGETATTRNP_NOT_DECLARED=1
  -DTCL_THREADS=1 -DPEEK_XCLOSEIM=1
  -DTCL_SHLIB_EXT=\".so\" -DTCL_CFG_OPTIMIZED=1
  -DTCL_CFG_DEBUG=1 -D_LARGEFILE64_SOURCE=1
  -DTCL_WIDE_INT_TYPE=long\ long -DHAVE_STRUCT_STAT64=1
  -DHAVE_OPEN64=1 -DHAVE_LSEEK64=1 -DHAVE_TYPE_OFF64_T=1
  -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1
  -DHAVE_PW_GECOS=1 -DHAVE_XSS=1 -DHAVE_XFT=1     
  -DTCL_NO_DEPRECATED  -DUSE_TCL_STUBS 
  /tmp/tk8.5a4/unix/../generic/tkMain.c
  /tmp/tk8.5a4/unix/../generic/tkMain.c:23:20: tclInt.h:
  No such file or directory
  /tmp/tk8.5a4/unix/../generic/tkMain.c: In function
  `Tk_MainEx':
  /tmp/tk8.5a4/unix/../generic/tkMain.c:145: warning:
  implicit declaration of function `Tcl_GetStartupScript'
  /tmp/tk8.5a4/unix/../generic/tkMain.c:145: warning:
  comparison between pointer and integer
  /tmp/tk8.5a4/unix/../generic/tkMain.c:159: warning:
  implicit declaration of function `Tcl_SetStartupScript'
  /tmp/tk8.5a4/unix/../generic/tkMain.c:175: warning:
  assignment makes pointer from integer without a cast
  /tmp/tk8.5a4/unix/../generic/tkMain.c:256: warning:
  assignment makes pointer from integer without a cast
  make: *** [tkMain.o] Error 1


  I have just installed tcl8.5a4


tkt_uuid: 1520118fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 17. [spinbox]
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: None
title: -validate set to none incorrectly
comment:
  If -from and -to are set, -validate is reset to 'none'
  when -invalidatecommand returns false.
  -invalidatecommand is never evaluated.

  Test case:

    proc test {} {
      puts "test"
      return 0
    }
    pack [spinbox .works -validate all -vcmd test -invcmd
  {puts "invalid"}]
    pack [spinbox .broken -from 1 -to 10 -validate all
  -vcmd test -invcmd {puts "invalid"}]

  Try typing in both. The top one should trigger the
  validation on every keypress. The bottom one won't do
  anything because -validate was reset to 'none' when the
  window was created.


tkt_uuid: 1520897fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 10. Generic Menus
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: Invalid
title: menu index fails if label contains square bracket
comment:
  e.g.,

  $ wish
  % pack [menubutton .mb -text Play... -relief raised
  -menu .mb.m]
  % menu .mb.m -tearoff 0
  .mb.m
  % .mb.m add command -label ywgevfyuw
  % .mb.m add command -label {p[q}
  % .mb.m index {p[q}
  bad menu entry index "p[q"
  % .mb.m entrycget 1 -label
  p[q
  %

  (TclTk 8.4.13 on FC5 x86-64)


tkt_uuid: 1522467fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 69. Events
priority: 9 Immediate
foundin: obsolete: 8.4.13
resolution: Fixed
title: Overflow in setting readMask on AMD64
comment:
  Below a patch that fixes an overflow on amd64 when 
  there are more than 31 files open, before the display 
  is opened. The problem is that amd64 has 
  64bit 'long's (and fd_mask size) and 32 bit 'int's. 
  So the mask sould be a 'long' and the '1' that gets 
  shifted, should be a 'long' as well.
  Following the macro's for FD_SET,
  #define __FDMASK(d)     ((__fd_mask) 1 << ((d) % 
  __NFDBITS))
  the missing part is the '__fd_mask' cast on '1'.

  -- unix/tkUnixEvent.c.org      2006-07-14 
  12:06:33.000000000 +0200
  +++ unix/tkUnixEvent.c  2006-07-14 12:02:05.000000000 
  +0200
  @@ -489,7 +489,8 @@
       static fd_mask readMask[MASK_SIZE];
       struct timeval blockTime, *timeoutPtr;
       Tcl_Time now;
  -    int fd, index, bit, numFound, numFdBits = 0;
  +    int fd, index, numFound, numFdBits = 0;
  +    unsigned long bit;

       /*
        * Look for queued events first.
  @@ -539,7 +540,7 @@
          }
          fd = ConnectionNumber(dispPtr->display);
          index = fd/(NBBY*sizeof(fd_mask));
  -       bit = 1 << (fd%(NBBY*sizeof(fd_mask)));
  +       bit = 1L << (fd%(NBBY*sizeof(fd_mask)));
          readMask[index] |= bit;
          if (numFdBits <= fd) {
              numFdBits = fd+1;
  @@ -565,7 +566,7 @@
           dispPtr = dispPtr->nextPtr) {
          fd = ConnectionNumber(dispPtr->display);
          index = fd/(NBBY*sizeof(fd_mask));
  -       bit = 1 << (fd%(NBBY*sizeof(fd_mask)));
  +       bit = 1L << (fd%(NBBY*sizeof(fd_mask)));
          if ((readMask[index] & bit) || 
  (QLength(dispPtr->display) > 0)) {
              DisplayFileProc((ClientData)dispPtr, 
  TCL_READABLE);
          }


tkt_uuid: 1525905fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: Duplicate
title: binding Alt/Meta and mouse button does not work
comment:
  Binding Alt/Meta and mouse button does not work.
  How to reproduce:
  Start wish.
  Enter to the console:
  >bind . <Meta-ButtonPress-1> {puts here}
  Now go to the . window, press and hold the Meta key (on my
  system it is labelled Alt, as can be found out using a puts %K
  binding to <KeyPress>) and press/release mouse button 1.
  Nothing happens, but I expected the binding to fire.
  Bindings with Alt (Apple key) also do not work.
  Bindings with Shift and Control do work fine.

  best regards,
  Randolf,
  -- 
  http://www.ayam3d.org/    Ayam, two clicks surface of revolution.


tkt_uuid: 1526437fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 18. [text]
priority: 5 Medium
foundin: None
resolution: None
title: no selection from disabled entry
comment:
  Selection of text from a disabled entry widget no
  longer works, starting at some version at or before 8.4.7


tkt_uuid: 1529659fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 11. Aqua Menus
priority: 4
foundin: obsolete: 8.4.13
resolution: Accepted
title: Embedded toplevel makes the outer toplevel menu inaccessible
comment:
  Situation: The main window of an application has a
  menubar attached to it and it also contains a frame
  with the -container option set to true. When a toplevel
  window is embedded into this frame the menu of the main
  window gets replaced by the default menu (presumably
  the menu of the embedded toplevel). As far as I could
  tell there is no way to access the menubar of the main
  window of the application anymore, short of destroying
  the embedded toplevel.


tkt_uuid: 1530276fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 03. [*button] and [label]
priority: 9 Immediate
foundin: None
resolution: Fixed
title: checkbutton selectcolor not honoured (unix only)
comment:
  When a checkbutton without indicator (-indicatoron 0)
  is selected, its background should be changed to its
  -selectcolor option. Currently this happens only when
  the mouse cursor is not over the checkbutton, i.e. when
  it is not active.

  This is very strange and it is not according to the
  documentation of -selectcolor, which says: "If
  indicatorOn is false, this color is used as the
  background for the entire widget, in place of
  background or activeBackground, whenever the widget is
  selected."

  Attached patch brings the code in line with the
  documentation.

  Note: this also applies to radiobuttons.


tkt_uuid: 1532273fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 46. Unix Fonts
priority: 9 Immediate
foundin: obsolete: 8.4.13
resolution: Fixed
title: core dump on HP-UX using [font measure]
comment:
  Hi *,

  all Tcl/Tk versions from 8.4.0 up to and including
  8.4.13 dump core on HP-UX 11.11 (11i v1) and 11.23 (11i
  v2) PARISC, when doing:

  % set fixed
  -adobe-courier-medium-r-normal--12-120-75-75-m-*-iso8859-1
  -adobe-courier-medium-r-normal--12-120-75-75-m-*-iso8859-1
  % font measure $fixed \u4e4e
  Bus error(coredump)

  In case that looks somewhat familiar to you, that is
  what happens in tk8.4/tests/entry.test between
  entry-2.5 and entry-3.1. Thus a "make test" for Tk
  always dumps core.

  Tcl and Tk where build from plain sources using CC="aCC
  -Ae +DAportable". The used aCC versions were

  HP-UX 11.11: HP ANSI C++ B3910B A.03.45
  HP-UX 11.23: HP ANSI C++ B3910B A.03.60

  The core (from 8.4.12 wish) itself stays here:

  #0  0x181fe8 in Tcl_UtfToUniChar (str=0x7f7f1b1c
  "\344\260\200\004", 
      chPtr=0x7f7f1b1f)
      at [...]/tcl8.4/unix/../generic/tclUtf.c:339
  339                 *chPtr = (Tcl_UniChar) (((byte &
  0x0F) << 12) 

  #1  0x128470 in UtfToUcs2beProc (clientData=0x0, 
      src=0x7f7f1b1c "\344\260\200\004", srcLen=3,
  flags=7, statePtr=0x7f7f1bb4, 
      dst=0x7f7f1b1f "\004", dstLen=14,
  srcReadPtr=0x7f7f1bb8, 
      dstWrotePtr=0x7f7f1bbc, dstCharsPtr=0x7f7f1bc0)
      at [...]/tk8.4/unix/tkUnixFont.c:616
  #2  0x143ff4 in Tcl_UtfToExternal (interp=0x0,
  encoding=0x4005baf8, 
      src=0x7f7f1b1c "\344\260\200\004", srcLen=3,
  flags=7, statePtr=0x7f7f1bb4, 
      dst=0x7f7f1b1f "\004", dstLen=14,
  srcReadPtr=0x7f7f1bb8, 
      dstWrotePtr=0x7f7f1bbc, dstCharsPtr=0x7f7f1bc0)
      at [...]/tcl8.4/unix/../generic/tclEncoding.c:1179
  #3  0x12af90 in FontMapLoadPage (subFontPtr=0x7f7f1a28,
  row=19)
      at [...]/tk8.4/unix/tkUnixFont.c:2095
  #4  0x12ac58 in FontMapLookup (subFontPtr=0x7f7f1a28,
  ch=20046)
      at [...]/tk8.4/unix/tkUnixFont.c:1985
  #5  0x12b8c0 in CanUseFallback (fontPtr=0x40086510, 
      faceName=0x40077468 "courier", ch=20046,
  fixSubFontPtrPtr=0x7f7f15cc)
      at [...]/tk8.4/unix/tkUnixFont.c:2429
  #6  0x12a8a4 in FindSubFontForChar (fontPtr=0x40086510,
  ch=20046, 
      fixSubFontPtrPtr=0x7f7f15cc)
      at [...]/tk8.4/unix/tkUnixFont.c:1858
  #7  0x128cc8 in Tk_MeasureChars (tkfont=0x40086510, 
      source=0x40075c70 "\344\271\216", numBytes=3,
  maxLength=-1, flags=0, 
      lengthPtr=0x7f7f1550)
      at [...]/tk8.4/unix/tkUnixFont.c:992
  #8  0x4c610 in Tk_TextWidth (tkfont=0x40086510, 
      string=0x40075c70 "\344\271\216", numBytes=3)
      at [...]/tk8.4/unix/../generic/tkFont.c:1722
  #9  0x4a86c in Tk_FontObjCmd (clientData=0x40059238,
  interp=0x4003ff70, 
      objc=4, objv=0x40040c24)
      at [...]/tk8.4/unix/../generic/tkFont.c:681
  #10 0x13b1f0 in TclEvalObjvInternal (interp=0x4003ff70,
  objc=4, 
      objv=0x40040c24, command=0x0, length=0, flags=0)
      at [...]/tcl8.4/unix/../generic/tclBasic.c:3085
  #11 0x1dde90 in TclExecuteByteCode (interp=0x4003ff70,
  codePtr=0x40077278)
      at [...]/tcl8.4/unix/../generic/tclExecute.c:1419
  #12 0x1dc920 in TclCompEvalObj (interp=0x4003ff70,
  objPtr=0x400406f8)
      at [...]/tcl8.4/unix/../generic/tclExecute.c:981
  #13 0x13cbe8 in Tcl_EvalObjEx (interp=0x4003ff70,
  objPtr=0x400406f8, 
      flags=131072)
      at [...]/tcl8.4/unix/../generic/tclBasic.c:4049
  #14 0x150078 in Tcl_RecordAndEvalObj
  (interp=0x4003ff70, cmdPtr=0x400406f8, 
      flags=131072)
      at [...]/tcl8.4/unix/../generic/tclHistory.c:142
  #15 0x14fe9c in Tcl_RecordAndEval (interp=0x4003ff70, 
      cmd=0x40046868 "font measure $fixed \\u4e4e\n",
  flags=131072)
      at [...]/tcl8.4/unix/../generic/tclHistory.c:62
  #16 0x33e18 in StdinProc (clientData=0x40066b10, mask=2)
      at [...]/tk8.4/unix/../generic/tkMain.c:368
  #17 0x15eb30 in Tcl_NotifyChannel (channel=0x40066b10,
  mask=2)
      at [...]/tcl8.4/unix/../generic/tclIO.c:6904
  #18 0x19515c in FileHandlerEventProc (evPtr=0x40060298,
  flags=-3)
      at [...]/tcl8.4/unix/tclUnixNotfy.c:633
  #19 0x1706d4 in Tcl_ServiceEvent (flags=-3)
      at [...]/tcl8.4/unix/../generic/tclNotify.c:640
  #20 0x170d54 in Tcl_DoOneEvent (flags=-3)
      at [...]/tcl8.4/unix/../generic/tclNotify.c:945
  #21 0x48890 in Tk_MainLoop ()
      at [...]/tk8.4/unix/../generic/tkEvent.c:1501
  #22 0x33c5c in Tk_MainEx (argc=-1, argv=0x7f7f07a8, 
      appInitProc=0x400383da <Tcl_AppInit>,
  interp=0x4003ff70)
      at [...]/tk8.4/unix/../generic/tkMain.c:297
  #23 0x33568 in main (argc=1, argv=0x7f7f07a4)
      at [...]/tk8.4/unix/tkAppInit.c:68

  I'll happily provide more information, do testing etc.
  - just let me know.

  kind regards -- Matthias Kraft


tkt_uuid: 1532360fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 14. [message]
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: Invalid
title: tk_messagebox ignores msgcat
comment:
  tk_messagebox ignores msgcat's presence. I think the
  Yes and No buttons should use msgcat's strings if
  available. For example, I've defined:
     msgcat::mcset nl Yes Ja
  It would be nice if the Yes button would use Ja as
  text. Same goes for all other texts in all other
  tk_messageboxes.


tkt_uuid: 1533112fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 69. Events
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: None
title: core dump on HP-UX when generating events in tk's test suite
comment:
  Hi *,

  Tcl/Tk 8.4.13 and 8.4.12 dump core on HP-UX 11.11 (11i
  v1) and 11.23 (11i v2) PARISC, when running Tk's
  test-suite. Last line of focus.test:

  ---- focus-2.6 start
  sh[5]: 27198 Memory fault(coredump)
  *** Error exit code 139

  Tcl and Tk where build from patched sources using
  CC="aCC -Ae +DAportable". The used aCC versions were

  HP-UX 11.11: HP ANSI C++ B3910B A.03.45
  HP-UX 11.23: HP ANSI C++ B3910B A.03.60

  I patched the sources with those from bug 1122671, see
  also 1532273. I did not yet test earlier versions of
  Tcl/Tk.

  I am only posting the last few lines of the core dump
  as it is 47 levels deep. It comes from an 8.4.13 tktest
  executable:

  #0  0xc1ad1a6c in _XimLocalFilter+0x30 () from
  /usr/lib/libX11.3
  #1  0xc1a8cec8 in XFilterEvent+0xe8 () from
  /usr/lib/libX11.3
  #2  0x4b578 in Tk_HandleEvent (eventPtr=0x7f7f424c)
      at [...]/tk8.4/unix/../generic/tkEvent.c:952
  #3  0x41470 in HandleEventGenerate (interp=0x40041958,
  mainWin=0x40056a80, objc=2, 
      objv=0x7f7f3ed4)
      at [...]/tk8.4/unix/../generic/tkBind.c:3851
  #4  0x3f618 in Tk_EventObjCmd (clientData=0x40056a80,
  interp=0x40041958, objc=4, 
      objv=0x7f7f3ecc)
      at [...]/tk8.4/unix/../generic/tkBind.c:2823
  #5  0x140de4 in TclEvalObjvInternal (interp=0x40041958,
  objc=4, objv=0x7f7f3ecc, 
      command=0x401c9e5b "event gen . <KeyPress-x>\n   
  list $x $focusInfo\n", length=25, flags=0)
      at [...]/tcl8.4/unix/../generic/tclBasic.c:3087
  #6  0x141cf8 in Tcl_EvalEx (interp=0x40041958, 
      script=0x401c9dc8 "\n    focus .t.b1\n    focus .\n
     update\n    event gen [testwrapper .t] <FocusIn>
  -detail NotifyAncestor\n    set focusInfo {}\n    set x
  [focus]\n    event gen . <KeyPress-x>\n    list $x
  $focusInfo\n", numBytes=195, flags=262144)
      at [...]/tcl8.4/unix/../generic/tclBasic.c:3689

  I'll happily provide more information, do testing etc.
  - just let me know.

  kind regards -- Matthias Kraft


tkt_uuid: 1534455fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 01. Bindings
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: None
title: The Released key is different than the Pressed
comment:
  I've only tested with 8.5a4 but if I execute the next code:

  (Bin) 2 % bind . <KeyPress> {puts "Pressed %K"}
  (Bin) 3 % bind . <KeyRelease> {puts "Released %K"}

  I see

  Pressed Shift_L
  Released Shift_L
  Pressed Shift_R
  Released Shift_L
  Pressed Control_L
  Released Control_L
  Pressed Control_R
  Released Control_L

  AFAIK only happens with the Shift and Control keys, but
  it's quite annoying.

  Cheers


tkt_uuid: 1535865fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 05. Canvas Items
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: Invalid
title: Different font sizes reported
comment:
  Hi guys,

  Playing with the fonts I've seen an small difference in
  the font sizes when I test it in different ways.

  (Bin) 21 % .c create text 100 50 -text "Test String"
  -font "arial 8"
  8
  (Bin) 22 % font measure "arial 8" "Test String"
  52
  (Bin) 23 % .c bbox 8
  73 43 127 57
  (Bin) 24 % 

  As you can see, the "font measure" sais it's 52, but
  the bbox sais it's 54. Looking in the bbox
  documentation I see it sais it returns an "approximate
  bounding box" and that "may overestimate", but it
  always returns the same difference. But then I do an
  screenshot, and when I measure the width I get 51.

  I known is a small difference, but working with a lot
  of texts in the screen and trying to make them fit
  together, the code becomes a bit messy :(

  Thanks again.


tkt_uuid: 1536735fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 18. [text]
priority: 5 Medium
foundin: None
resolution: Accepted
title: Text widget modified flag (again)
comment:
  The text widget modified flag is normally not touched
  when an empty delete (or insert) is done. However, in
  the following case this fails:

  text .t
  .t delete insert
  .t edit modified   ;# prints "1"

  The reason is that we try to delete the final newline,
  which is a special case in the C code.

  Attached patch takes into account this special case for
  the modified flag.


tkt_uuid: 1538201fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 35. [tk_dialog]
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: Wont Fix
title: mouse over "balloon" crash when selecting files
comment:
  On some Windows XP installations (it happened on 5 of
  the 15 computers I tested), tk will crash completely if
  you do the following:
  1.) Open a file dialog
  2.) Mouse over a file until the "balloon" pops up with
  file information
  3.) Select that file and close the file dialog
  4.) Open a file dialog (again)
  5.) Mouse over a file until the "balloon" pops up with
  file information (again)

  At this point Tk will suddenly disappear completely. 
  No Windows XP message will appear saying the program
  has crashed.  It simply exits completely.


tkt_uuid: 1538205fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 35. [tk_dialog]
priority: 5 Medium
foundin: None
resolution: Duplicate
title: double click "leak"
comment:
  On all Windows XP installations, double clicking on a
  file (to select it) with the "open file dialog" will
  result in the second mouse click "leaking" onto the
  widget behind it.


tkt_uuid: 1539962fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: None
title: can't correctly mark Hebrew text in tk entry/text widget
comment:
  I use tcl/tk 8.4.6 to develope a programm with GUI.
  When our programm  runs under windows XP Professional
  with SP2, und user tries to mark some Hebrew text in
  the entry/text widget, the marked texts shift
  themselves always. Under Linux (kernel 2.4.21) man can
  mark some Hebrew text, but the Hebrew text is not
  correctly displayed and the writing direction is wrong. 

  I think this has something to do with the writing
  direction from right to left of Hebrew. I have tested
  my program with Arabic, an it has the same problem. So
  it may be a bug in the implementation of entry/text
  widget. 
  It's would be great, if this Phenomenon can be located
  and fixed in a patch.   


tkt_uuid: 1539990fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 41. Photo Images
priority: 9 Immediate
foundin: None
resolution: Accepted
title: Improve speed of Tk_PhotoPutBlock for one-row case
comment:
  In my application, I use tkimg1.3 to load xpm images
  with transparency information.

  I compared the time taken to load the image in
  tk8.2+tkimg1.3 to the time taken in tk8.4+tkimg1.3:
  8.2:          59086 microseconds
  8.4:         769918
  8.4, patched: 77059

  This patch expands the 'single pixel' case into a
  'single span' case: one or more pixels on a single row
  of the image, where all have alpha 0 or 255.  (in fact,
  tkimg1.3's xpm loader always sends spans with fully
  opaque pixels)

  As you can see, this patch reduces the time from 13x as
  long as 8.2 to only 1.3x as long as 8.2.


tkt_uuid: 1542205fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 5 Medium
foundin: None
resolution: Fixed
title: pressing toolbar button crashes Tk
comment:
  If you run the following script:

  ::tk::unsupported::MacWindowStyle style . document {closeBox 
  toolbarButton resizable}

  bind . <<ToolbarButton>> {puts "toolbar"}

  and press the toolbar button, Tk will print 'toolbar' and dump core.

  I think this patch fixes it:

  ===== macosx/tkMacOSXMouseEvent.c 1.22 vs edited =====
  --- 1.22/macosx/tkMacOSXMouseEvent.c2006-08-17 12:50:10 
  -07:00
  +++ edited/macosx/tkMacOSXMouseEvent.c2006-08-17 12:45:28 
  -07:00
  @@ -1019,6 +1019,7 @@
       event.root = XRootWindow(winPtr->display, 0);
       event.subwindow = None;
       event.time = TkpGetMS();
  +    event.user_data = 0;
   
       event.x_root = medPtr->global.h;
       event.y_root = medPtr->global.v;


tkt_uuid: 1544491fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 46. Unix Fonts
priority: 5 Medium
foundin: None
resolution: None
title: should NOT ignore the XLFD_AVERAGE_WIDTH for scalable fonts
comment:
  In TkFontParseXLFD() in generic/tkFont.c I read:

      /* XLFD_AVERAGE_WIDTH ignored. */

  However it happens that sometimes the X server returns
  bogus font names with non zero XLFD_PIXEL_SIZE and
  XLFD_AVERAGE_WIDTH=0 which correspond to scalable fonts.
  This can confuse Tk when it ranks fonts for choosing
  the one closest to a desired specification.

  A font with XLFD_PIXEL_SIZE != 0 and XLFD_AVERAGE_WIDTH
  == 0 is not a true fixed size font as suggested by
  pixel size but a bogus font generated by the X server
  for a scalable font. This font should be treated as
  scalable font by Tk and pxlsz should be forced to 0 in
  TkFontParseXLFD().

  For a detailed description of the problem and a patch see:

  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=156119
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=156115


tkt_uuid: 1545765fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 49. [grid]
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: Fixed
title: Grid anchor center problem in labelframes
comment:
  In the following code:
   
   set extFrame [labelframe .extFrame -text Greet \
           -bd 2 -relief groove -bg red] 
   
   set button1 [checkbutton $extFrame.b1        \
           -text Hello -variable hello] 
   set button2 [checkbutton $extFrame.b2        \
           -text goodbye -variable goodbye] 
   
   grid anchor $extFrame c 
   
   grid $extFrame -padx 10 -pady 10 -ipadx 5 
   grid $button1 -sticky w 
   grid $button2 -sticky w 
   
   I was expecting the checkbuttons to be centered both 
   horizontally and vertically, yet they stick to the 
   upper side of the labelframe.


tkt_uuid: 1545984fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 69. Events
priority: 5 Medium
foundin: None
resolution: None
title: National language keyboards and Tk
comment:
  Several aMSN users report problems entering non-ASCII
  characters with national language keyboards.

  Full thread here:
  http://amsn.sourceforge.net/forums/viewtopic.php?p=9400


tkt_uuid: 1548868fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 44. Generic Fonts
priority: 6
foundin: obsolete: 8.5a7
resolution: None
title: Bug in [font actual] doesn't reflect [tk scaling]
comment:
  Text of the default font appears in a different size
  than text that has been tagged and assigned the default
  font with "-weight normal".


  The bug is can be reproduced following these steps:

  hat:/home/steve> wish
  % text .t
  .t
  % .t insert 1.0 "Line one\n"
  % .t insert 2.0 "Line two\n"
  % .t tag add weighted 1.0 1.8
  % .t tag configure weighted -font "[font actual [.t
  cget -font]] -weight normal"
  % pack .t



  An example screencap is available here:
  http://azul7.net/~steve/mystery.png


  Submitted by Steve Havelka (smh@rs.tc)


tkt_uuid: 1550034fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 36. [tk_chooseDirectory]
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: Wont Fix
title: Choosing a non-existing directory on Linux
comment:
  Choosing a non-existing directory in the dialog 
  provided by [tk_chooseDirectory] returns a relative 
  file name on Linux. This behavior is unexpected and 
  inconsistent with the behavior on Windows, which works 
  as expected.

  To reproduce,
  - Run "tk_chooseDirectory" with no parameters.
  - In the dialog, browse to some directory; for the 
  purpose of this example, assume "/home/me".
  - In the "Selection" field, overwrite the current 
  selection with "foo", assuming that "foo" is neither a 
  file nor a sub-directory in the current directory.
  - Click "OK" once. Nothing happens!
  - Click "OK" a second time.
  tk_chooseDirectory now returns "foo".

  There are two bugs here:
  o The first click on "OK" that doesn't do anything.
  o Returning a relative file name, instead of the 
  expected absolute name "/home/me/foo".

  This works just fine on Windows: when you browse to 
  some directory, and enter a non-existing name, 
  tk_chooseDirectory returns an absolute file name with 
  the browsed-to directory as its directory name and the 
  desired tail.


tkt_uuid: 1550513fffffffffffffffffffffffffffffffff
type: Patch
status: Open
subsystem: 36. [tk_chooseDirectory]
priority: 5 Medium
foundin: None
resolution: None
title: Fix bug when entering a relative path name (Unix)
comment:
  When a relative path name is entered in the "Selection" 
  entry, it is not interpreted relative to the currently 
  selected directory, as I would expect, but relative to 
  [pwd].

  Subsequently, the dialog gets confused and does not 
  allow browsing out of [pwd], because it now considers 
  [pwd] to be the file system "root".

  This patch changes the behavior to be as I expect it, 
  by joining the text from the "Selection" entry with the 
  currently selected directory. This is consistent with 
  the behavior of tk_chooseDirectory on Windows.

  Thanks to the semantics of [file join], the user is 
  still able to enter/paste an absolute path.

  This patch also gets rid of the suspicious
  set text [eval file join [file split [string trim 
  $text]]]
  Although I do not understand the history of this code 
  fragment, it seems wrong, as it is incapable of 
  browsing paths that contain space characters: it fails 
  both when any of the path components contain a space, 
  and also if the user attempts to enter the name of a 
  directory that begins or ends in a space character.


tkt_uuid: 1550523fffffffffffffffffffffffffffffffff
type: Patch
status: Open
subsystem: 36. [tk_chooseDirectory]
priority: 5 Medium
foundin: None
resolution: None
title: Make tk_chooseDirectory on Unix consistent with Windows
comment:
  On Unix, when you first hit Enter or click OK in the 
  tk_chooseDirectory dialog, either of the following 
  happens:
  - If the name that is entered in the "Selection" entry 
  is a valid directory, the dialog browses to that 
  directory.
  - If the name is not a valid directory, nothing 
  happens.

  Only when you hit Enter or click OK a second time does 
  the dialog return.

  This is inconsistent with the behavior of 
  tk_chooseDirectory on Windows, where hitting Enter or 
  clicking OK once ALWAYS completes the dialog.

  Also, especially the second case above is confusing, 
  where you click OK and nothing happens.

  The attached patch makes the behavior of 
  tk_chooseDirectory on Linux consistent with the 
  behavior on Windows.


tkt_uuid: 1550528fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 36. [tk_chooseDirectory]
priority: 5 Medium
foundin: None
resolution: Fixed
title: No complaint about non-existing dir (Unix)
comment:
  When tk_chooseDirectory is called with "-mustexist 1", 
  the Unix implementation checks for the existence of the 
  directory, but does not complain if it doesn't. The 
  dialog just silently refuses to accept the choice.

  The attached patch adds a "Directory does not exist" 
  message. (This message already exists in tkfbox.tcl, so 
  no change to the message catalog is necessary.)


tkt_uuid: 1550890fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 5 Medium
foundin: None
resolution: Invalid
title: geometry not accepted if resizable set false before visible
comment:
  This worked as expected in 8.4.7 (default release for Mac OS X 10.4.7).

  It fails in 8.4.13, just downloaded from ActiveState.

  If the command

       wm resizable . false false

  is executed before the main window has become visible, and you try to 
  set the geometry with a wm geometry command, it fails;

  Specifically, trying to set the geometry with:

       wm geometry . +[winfo pixels . 5i]+[winfo pixels . 3i]

  leaves the window at the default location.

  If you execute it AFTER the window has become visible (e.g. by typing the 
  commands in to the command prompt one at a time, or sourcing the file 
  after starting up wish), it works as expected.

  A work-around is to set the resizable attribute after the geometry 
  command.

  In the case when it does fail, a tkwait visibility . will make it work correctly 
  (but of course that will wait forever if the main window has already been 
  processed).

  sep@shout.net


tkt_uuid: 1552698fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 66. Aqua Window Operations
priority: 5 Medium
foundin: None
resolution: None
title: wm geometry +0+0
comment:
  For a window on the main screen, setting a toplevel window geometry to 
  +0+0 should put the upper left corner of the title bar of the window 
  below the menu bar and to the right of the dock (if the dock is on the 
  left).

  With -0+xxx, the right side of the window should be just to the left of the 
  dock, if the dock is on the right side.

  With +xxx-0, the bottom of the window should be just above the dock, if 
  the dock is on the bottom.

  With + or - 0, windows should not be under the dock or menu bar.



  sep@shout.net


tkt_uuid: 1553598fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Duplicate
title: output characters without using \n results hang (CPU hog)
comment:
  If out one character at a time to a window, 
  containing no \n, soon the machine (at least on 
  windows) will hang due to cpu hogging. The problem is 
  due to TK calculates character output position based 
  on the last \n or first char in the window, whichever 
  comes last, when there is no \n, the calculation 
  becomes quickly CPU intensive due to it has to 
  calculate all the characters, eventually hangs the 
  machine.


tkt_uuid: 1553691fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 18. [text]
priority: 6
foundin: None
resolution: Remind
title: hard-coded control of selection display
comment:
  ALWAYS_SHOW_SELECTION is a hard-coded Tk behavior that
  determines whether entry and text widgets should always
  show their selection, regardless of focus (on for unix,
  off for OS X/Win).  Attached is a patch that moves this
  control to the Tcl level (still a private variable).


tkt_uuid: 1554672fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 11. Aqua Menus
priority: 5 Medium
foundin: None
resolution: Fixed
title: unfree'd DString in tkMacOSXMenu.c
comment:
  The Tcl_DString:

   convertedTextDString

  in macosx/tkMacOSXMenu.c is not Tcl_DStringFree'd.
  Possibility of leaked memory.


tkt_uuid: 1556406fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 63. Tk_Win Functions
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: None
title: Unloading of Tk can replace user procedures
comment:
  When Tk gets unloaded (for instance when closing the
  toplevel window), the standard widget commands are
  replace by the TkDeadAppCmd. This leads to a suprising
  result when Tk widget commands have been renamed.
  For example:

  % package require Tk
  8.4
  % rename scale tk_scale
  % proc scale args {puts "My scale"}
  % scale
  My scale
  % # close toplevel
  % scale
  can't invoke "scale" command:  application has been
  destroyed
  % set tcl_patchLevel
  8.4.13

  Also when invoking the renamed widget command, the
  dummy is not invoked as Tk has not redefined the proc:

  % tk_scale .s
  this isn't a Tk applicationNULL main window

   


tkt_uuid: 1558051fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 05. Canvas Items
priority: 9 Immediate
foundin: obsolete: 8.4.13
resolution: Fixed
title: rectangles are one pixel too high using Aqua tk
comment:
  Running the following script on MacOS X 10.4.7 PPC system using Aqua 
  Tcl/Tk 8.4.11 or 8.4.13
  I see that the red rectangle is drawn one pixel too high: there is a one-
  pixel-wide white line below the bottom red line of the rectangle, and 
  the upper red line is not visible whereas the left and right red lines are 
  drawn just inside the black frame border.

  By comparison, on one unix system i tried, the red rectangle was drawn 
  just inside the black frame border on all sides.

  -------------------------------------------------

  frame .f -borderwidth 2 -relief solid

  canvas .f.c -selectborderwidth 0 -highlightthickness 0 -borderwidth 0 -
  height 200 -width 200

  .f.c create rect 0 0 199 199 -outline red

  pack .f.c
  pack .f


tkt_uuid: 1561020fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 46. Unix Fonts
priority: 7 High
foundin: obsolete: 8.4.13
resolution: None
title: devanagari fonts rendering in python-Tkinter
comment:
   devanagari fonts rendering in python-Tkinter  
  Private: (?)
  No
  My email address is siva@mail.cern.ch

  Hi,

  I hope a tkinter question can be addressed here as well.

  I am trying to display Devanagari unicode fonts in a
  tkinter label/text
  widget.

  To make new characters, the unicode fonts provide this
  functionality of
  using combination of unicode codes to make a single new
  character. Like
  for instance the kSa in unicode is
  u'\u0915\u094D\u0937'. In Linux, this
  looks perfect in a web-browser or in my shell-konsole
  which supports
  unicode.
  I am using Python-2.4.2 which definitely supports
  unicode. But the
  problem is in the final visual rendering that it does
  not show the kSa
  character but shows it as k Sa as two separate
  characters. For example,
  u'\u0915\u093f'. u0915 stands for 'ka' the first
  consonant in devanagari.
  u093f stands for the third vowel 'i' pronounced as 'e'
  as in 'pre'. This
  vowel when combined to 'ka' must have a line+curve that
  visually looks
  like 'f' should be to the left of the consonant 'ka'.
  Though in windows,
  when I give u'\u0915\u093f', it renders correctly, in
  redhat linux, it shows the 'f' to the right which makes
  it look like it is adding the
  vowel to the next consonant in a word. Now there is
  also this another
  problem but both in windows and linux alike. The
  making of new
  characters like the kSa or using the Zero-Width-Joiner and
  Zero-Width-Non-Joiner to make half characters etc....

  Is there by any chance these things could be correctly
  rendered?? I mean,
  I use PyQt, it correctly renders the fonts. But, PyQt
  needs Qt and
  getting Qt for Windows is a whole big story. So, I
  want to stick to
  Tkinter and try. Can you please suggest any method
  that would allow me
  to make the Tkinter-Python to give the correct visual
  rendering of the
  characters. We use the X11 fonts while running PyQt
  which I guess the Qt
  uses. If my xterm shell-konsole could render unicode
  fonts correctly, I
  would guess Python Tkinter as a GUI package must
  definitely be able to
  render the fonts correctly.

  please let me know if you can help me, if yes, then how??

  Thanks in advance!!

  Cheers,
  -Siva.
  One more comment I need to add is the reply I got from the
  Python help group.  They mentioned that, it is because of
  the limitation of the Tcl/Tk and asked me to contact the
  Tcl/Tk help group.  That is why I am here.  Can you please
  suggest, if Tcl/Tk current or next version will support
  this
  kind of unicode rendering??  Or can you suggest some very
  simple thing that I could change to get this working like a
  iso10646-1.enc file??


tkt_uuid: 1561991fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 18. [text]
priority: 5 Medium
foundin: None
resolution: None
title: text widget : loosing of tags with undo/redo
comment:
  Hello,

  I issue this bug report after discussions with Donal
  Fellows and Vince Darley, about the behavior of the
  Undo/Redo mecanism in handling tags under deletion.

  In a text widget, when a tagged text region is deleted
  and then the delete is undone, the tags are lost. I
  discuss this point with Vince Darley, and the mails are
  copied below.

  In the meantime, I wrote a Tcl C code to handle tags
  with delete events. The code compiles fine and seems to
  work with the little tests I've done. PLEASE understand
  i'm not an expert at all, so the code may look ugly for
  Tcl'er Gurus, and I don't know about the procedures
  used to make tests, and so on !

  In the tkText.c file (taken from the tk8.4.13
  distribution), procedure DeleteCmd, search for
  "Handling Tags"

  Hope this helps !

  ----------------------------------------------------------------------
  Dr. Luc Moulinier
  IGBMC
  Laboratoire de Biologie et Genomique Structurale      
   1,rue Laurent FRIES               
  BP 10142                tel: (33) (0)3 88 65 32 79
  67 404 ILLKIRCH CEDEX            fax: (33) (0)3 88 65 32 76
  France
  ----------------------------------------------------------------------


  Dear Vince,

  After talking with Donal Fellow, it seems you are the
  right person taht may help me, if you don't mind.

  I'm currently writing a big app for bioinformatics
  purposes. It uses a lot the text widget. And i'm quite
  desesparate with the undo/redo behaviour with tags. The
  problem is the losing of the tagging status of a text
  region when the text is deleted and then the delete is
  undone. I'm sure you're aware of that, but in cas, i
  enclose a very simple script to illustrate it. This
  happens with tcl/tk 8.4.13 and 8.5.0.
  Looking at the mailing list and TIPs, i found nothing
  said about changing that behaviour, (TIPs 26,104,255),
  although someone (maybe you ?) said it should not be a
  so difficult task to achieve. The point would be to
  dump the text widget before deletion.

  Have you any clue about when this behaviour will be
  solved ? or
  Do you know any script/extension that would meka a
  undo/redo working with tagged text ?

  Thank you very much in advance !!

  ----------------------------------------------------------------------
  Dr. Luc Moulinier
  IGBMC
  Laboratoire de Biologie et Genomique Structurale      
   1,rue Laurent FRIES               
  BP 10142                tel: (33) (0)3 88 65 32 79
  67 404 ILLKIRCH CEDEX            fax: (33) (0)3 88 65 32 76
  France
  ----------------------------------------------------------------------

  #!/usr/local/bin/wish

  proc Remove {} {
      .t delete 2.19 2.30
      .t edit separator
  }

  proc Add {} {
      .t edit undo
  }

  text .t -bg black -fg white \
  -height 10 -width 55 \
  -state normal \
  -undo 1 -autoseparators 0
  pack .t

  .t insert end "Here is a test.\n"
  .t insert end "And this is a line with a blue tagged
  region inside\n"
  .t insert end "that explicit the undo behaviour with tags"
  .t tag configure tblue -background cyan
  .t tag add tblue 2.19 2.30
  .t edit separator

  button .brm -text "1. Remove " -bg green -command [list
  Remove]
  button .bad -text "2.  Add back" -bg green -command
  [list Add]
  pack .brm .bad -side left


  Vince Darley replies
  --------------------
  Yes, indeed, the problem here is that the text widget
  never has
  supported storing text tags with the text it stores to
  record 'insert'
  and 'delete' events, and therefore has also never supported
  re-applying those text tags when text is inserted as a
  result of an
  undo or redo operation.

  This is not something that would probably be that hard
  to fix (search
  for 'TextPushUndoAction' in tkText.c for the 2 calls
  that would need
  changing/enhancing). However, some thought would be
  needed to ensure
  undo/redo behaved well if, for example, a tag in the
  undo range was
  deleted from the widget, and then the undo applied
  (probably the
  correct behaviour should be to silently ignore the tag).

  Probably the biggest work is just in building up (in
  TextPushUndoAction's implementation) the script that
  must be executed
  for the undo/redo.  It's always a pain to do that from
  C code, so
  perhaps it could be pushed out into a Tcl supporting
  script in
  text.tcl.

  Vince.


tkt_uuid: 1563874fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 63. Tk_Win Functions
priority: 9 Immediate
foundin: obsolete: 8.4.14
resolution: Fixed
title: [package require Tk] broken by TIP 268 in Tk 8.4.14
comment:
  Build current Tk 8.4.14 sources
  against current Tcl 8.4.14 headers
  in their default configuration.
  Install.  Then:

  % info patch
  8.4.14
  % package provide Tcl
  8.4
  % package require Tk
  can't find package Tk

  Examining $libdir/tk8.4/pkgIndex.tcl:

  if {[package vcompare [package provide Tcl] 8.4.14] !=
  0} { return }
  package ifneeded Tk 8.4.14 [list load [file join $dir
  .. libtk8.4.so] Tk]

  We see that Tk 8.4(.14) isn't offered because
  the version of Tcl (8.4) doesn't pass the screen
  for a minimum requirement of 8.4.14.

  Comment out the screen line, and we get this:

  % package require Tk
  version conflict for package "Tcl": have 8.4, need 8.4.14
  % set errorInfo
  version conflict for package "Tcl": have 8.4, need 8.4.14
      while executing
  "load /usr/local/lib/tk8.4/../libtk8.4.so Tk"
      ("package ifneeded" script)
      invoked from within
  "package require Tk"

  The problem is at line 2948 of tkWindow.c:

      if (Tcl_InitStubs(interp, TCL_PATCH_LEVEL, 1) ==
  NULL) {
          return TCL_ERROR;
      }

  This is demanding a Tcl stubs table of exactly
  version 8.4.14, but no default config build of
  Tcl 8.4 will label its stub table with that
  version number, so currently Tk 8.4.14 will
  not load in a standard Tcl interp.

  Tcl 8.4 does have a config option to
  make use of TIP 268 features, and I presume
  that would make things work, but the
  default build of Tk ought to work with
  the default build of Tcl.


tkt_uuid: 1565937fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 38. [tk_messageBox]
priority: 5 Medium
severity: Minor
foundin: obsolete: 8.4.13
resolution: Works For Me
title: -default option
comment:
  submitted by Uwe Kirschner uwe.kirschner@gmx.net

  Try this on Mac OS X:
  tk_messageBox -message "Hello world" -type yesnocancel -default 
  cancel

  will not work. But:

  tk_messageBox -message "Hello world" -type yesnocancel -default 
  no

  will work.

  It seems that setting -default to the last button of -type will cause the 
  bug. I compared the message.tcl in versions 8.4.10 and 8.4.13 and 
  discovered that there has been some extra -default behaviour introduced. 
  I could not find the exact cause, though.

  This bug applies to both 8.4.13 and 8.5.a4

  regards, Uwe


tkt_uuid: 1566196fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 67. Unix Window Operations
priority: 5 Medium
foundin: None
resolution: Later
title: Implement alpha support
comment:
  The -alpha attribute in wm is not supported in Linux
  systems.

  Would be great if this attribute can be added, since
  the applications will have a more consistence look&feel
  in the different OS.

  Thanks.


tkt_uuid: 1566418fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 5 Medium
foundin: None
resolution: Fixed
title: pkgIndex.tcl needs Tcl version guard
comment:
  After installing Tk 8.5a5,
  when using Tcl 8.4 I see:

  error reading package index file
  /home/dgp/sparc/solaris2/lib/tk8.5/pkgIndex.tcl:
  expected version number but got "8.5a5"

  The installed pkgIndex.tcl file
  needs another guard line that older
  Tcl versions can eval without error:

  if {[package vcompare [package provide Tcl] 8.5] != 0}
  { return }


tkt_uuid: 1566949fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: None
title: [text yview] shows strange behaviour
comment:
  [$text yview] returns two fractions. When using the
  first fraction in [$text yview moveto $fraction] I
  would expect the fractions returned by [$text yview]
  after this moveto to be the same as before the moveto.
  Most of the time this is the case. 

  Using [$text yview] with Tcl 8.5a4 on Windows shows
  some strange behaviour. The fractions before and after
  a moveto call are the same, except when the contents of
  the text widget are deleted and insert in between the
  first [$text yview] and [$text yview moveto $fraction],
  even if the contents stay the same.

  I've added an example script to show this bug. [test]
  shows some output without deleting and replacing the
  contents and [test true] shows the output with deleting
  and replacing the contents. Notice the difference! I
  think this bug might be related to #1499165.


tkt_uuid: 1567292fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 45. Aqua Fonts
priority: 5 Medium
foundin: None
resolution: None
title: font size and tk scaling
comment:
  Font size selection in 8.4.13 depended on the
  current [tk scaling] factor, but doesn't do so in
  8.5a4 or the cvs HEAD version.

  The way it used to work was odd, if any item
  was using a particular font and size, the scaling
  factor was locked for that size until nothing was
  using it, then it would be recalculated.


  In the following script, in 8.4.13, initially it shows
  the first line smallest and second line largest;
  after the delay, the third line is smallest, the
  first line is the same size as the 2nd line was
  initially, and the second line is still largest,
  and larger than it was.

  In 8.5, initially it shows the first line largest and
  the third line smallest; then lines 1 and 2 swap,
  and none are scaled by the scaling factor.

  Note that a font in the context of a canvas should
  use the scaling factor of that canvas, even if
  tk scaling has been changed since then, as distance
  conversions in that canvas are all scaled based on
  the scaling factor at the time the canvas was created.

  tk scaling 1.25
  canvas .a -width 5i -height 5i -background grey45
  .a create rectangle 1i .2i 4i .8i -fill white
  .a create text 2.5i .5i -text {Sample text} \
          -font {Helvetica 14}

  tk scaling 2.5
  .a create rectangle 1i 1.2i 4i 1.8i -fill white
  .a create text 2.5i 1.5i -text {Sample text} \
          -font {Helvetica 12}

  .a create rectangle 1i 2.2i 4i 2.8i -fill white
  .a create text 2.5i 2.5i -text {Sample text} \
          -font {Helvetica 10}

  pack .a

  update
  after 2000

  tk scaling 1.25
  .a itemconfigure 2 -font {Helvetica 12}

  tk scaling 2.5
  .a itemconfigure 4 -font {Helvetica 14}


tkt_uuid: 1567354fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 99. Other
priority: 5 Medium
foundin: None
resolution: None
title: [tk scaling] changes
comment:
  Mac OSX 10.4.7 dual 2.2GHz G5

  tk scaling 2.0
  puts [tk scaling]
  update
  puts [tk scaling]
  after 1000 {puts [tk scaling]}

  The first puts shows the correct scaling factor (1.99 etc).

  The second puts sometimes shows that the scaling factor
  changed back to 1.

  Usually, but not always, it has changed to 1 by the time
  the "after" fires.  Once it changes back to 1, if you reset
  it to something else, it won't change on its own again.

  Changing it to a delay of 100, it usually doesn't change
  if it didn't change after the update.

  As best I can tell, it didn't do this in 8.4.7, and it does
  do it in 8.4.13 and the current cvs head.  I have no idea
  if it does this on any other platform.

  I thought at first that it had something to do with the
  console window, but that was just affecting the timing
  and confusing me.

  sep@shout.net


tkt_uuid: 1567681fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 10. Generic Menus
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: None
title: Trying to post a CLONE menu makes wish crash
comment:
  ~$ wish
  % menu .m
  % . configure -menu .m
  % bind . <3> {tk_popup .#m %X %Y}

  press button 3 on the . toplevel result in

  % Tk_MoveToplevelWindow called with non-toplevel window
  Abort trap (core dumped)
  ~$

  Same behaviour on 8.4.13 and 8.5a4.
  Tested on NetBSD and OpenBSD
  Can't reproduce in win, tested on latest
  tclkit-win32.exe (8.5a4)


tkt_uuid: 1567927fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 8
foundin: obsolete: 8.4.13
resolution: Works For Me
title: tk 8.4.13 "make test" fails in MinGW/MSys
comment:
  Hi everyone,

  testing tk 8.4.13 (after building) fails.
  The following describes the environment I'm using:

  * Started with: German Win2kSP4 (never touched by MinGW
  & Co before)
  * Execute MinGW-5.0.3.exe, which installs previously
    downloaded files to "C:\MinGW":
      * binutils-2.15.91-20040904-1.tar.gz
      * gcc-ada-3.4.2-20040916-1.tar.gz
      * gcc-core-3.4.2-20040916-1.tar.gz
      * gcc-g++-3.4.2-20040916-1.tar.gz
      * gcc-g77-3.4.2-20040916-1.tar.gz
      * gcc-java-3.4.2-20040916-1.tar.gz
      * gcc-objc-3.4.2-20040916-1.tar.gz
      * mingw32-make-3.80.0-3.tar.gz
      * mingw-runtime-3.10.tar.gz
      * w32api-3.7.tar.gz
  * Execute MSys-1.0.10.exe, which installs itself into
    "C:\msys\1.0". After that "post install":
      * "Do you have MinGW installed?" -> "y"
      * "Where is your MinGW installation?" -> "C:/MinGW"
      * "You do not have C:/MinGW/bin/make.exe.
         Keep it that way."
  * Start MSYS

  Here are the commands used to build tcl and tk:

  $ tar xzvf tcl8.4.13-src.tar.gz
  $ tar xzvf tk8.4.13-src.tar.gz
  $ cd tcl8.4.13/win/
  $ ./configure  --prefix=/mingw
  $ make
  $ make install
  $ make test
  $ cd ../../tk8.4.13/win/
  $ ./configure  --prefix=/mingw
  $ make
  $ make install
  $ make test

  This gives the following output (accompanied by some
  windows appearing and disappearing):

  ->->->->->->->->->->->->->->->->->->->->
  Tests running in interp: 
  C:/msys/1.0/home/Administrator/tk8.4.13/win/tktest.exe
  Tests located in: 
  C:/msys/1.0/home/Administrator/tk8.4.13/tests
  Tests running in: 
  C:/msys/1.0/home/Administrator/tk8.4.13/win
  Temporary files stored in
  C:/msys/1.0/home/Administrator/tk8.4.13/win
  Test files sourced into current interpreter
  Running tests that match:  *
  Skipping test files that match:  l.*.test
  Only running test files that match:  *.test
  Tests began at Fri Sep 29 19:48:46 Westeuropäische
  Normalzeit 2006
  bell.test
  Bell should ring now ...
  bgerror.test
  bind.test
  bitmap.test
  border.test
  button.test
  canvImg.test
  canvPs.test
  canvRect.test
  canvText.test
  canvWind.test
  canvas.test
  choosedir.test
  clipboard.test
  clrpick.test
  cmds.test
  color.test
  config.test
  cursor.test
  dialog.test
  embed.test
  entry.test
  event.test
  filebox.test
  focus.test
  focusTcl.test
  font.test
  frame.test
  geometry.test
  get.test
  grab.test
  grid.test
  id.test
  image.test
  imgBmap.test
  imgPPM.test
  imgPhoto.test
  listbox.test
  macEmbed.test
  macFont.test
  macMenu.test
  macWinMenu.test
  macscrollbar.test
  main.test
  menu.test
  menuDraw.test
  menubut.test
  message.test
  msgbox.test
  obj.test
  oldpack.test
  option.test
  pack.test
  panedwindow.test
  place.test
  raise.test
  safe.test
  scale.test
  scrollbar.test
  select.test
  send.test
  spinbox.test
  text.test
  textBTree.test
  textDisp.test
  textImage.test
  textIndex.test
  textMark.test
  textTag.test
  textWind.test

  ==== textWind-13.2 EmbWinBboxProc procedure FAILED
  ==== Contents of test case:

      .t delete 1.0 end
      .t insert 1.0 "Some sample text"
      frame .f -width 5 -height 5 -bg $color
      .t window create 1.2 -window .f -align center -padx
  2 -pady 1
      update
      list [winfo geom .f] [.t bbox .f]

  ---- Result was:
  5x5+21+10 {21 10 5 5}
  ---- Result should have been (exact matching):
  5x5+21+9 {21 9 5 5}
  ==== textWind-13.2 FAILED


  ==== textWind-13.9 EmbWinBboxProc procedure, spacing
  options FAILED
  ==== Contents of test case:

      .t configure -spacing1 5 -spacing3 2
      .t delete 1.0 end
      .t insert 1.0 "Some sample text"
      frame .f -width 5 -height 5 -bg $color
      .t window create 1.2 -window .f -align center -padx
  2 -pady 1
      update
      list [winfo geom .f] [.t bbox .f]

  ---- Result was:
  5x5+21+15 {21 15 5 5}
  ---- Result should have been (exact matching):
  5x5+21+14 {21 14 5 5}
  ==== textWind-13.9 FAILED

  tk.test
  unixButton.test
  unixEmbed.test
  unixFont.test
  unixMenu.test
  unixSelect.test
  unixWm.test
  util.test
  visual.test
  visual_bb.test
  winButton.test
  winClipboard.test
  winDialog.test

  ==== winDialog-3.1 Tk_GetOpenFileObjCmd FAILED
  ==== Contents of test case:

      start {tk_getOpenFile}
      then {
          set x [GetText 2]
          Click 2
      }
      set x

  ---- Result was:
  Abbrechen
  ---- Result should have been (exact matching):
  Cancel
  ==== winDialog-3.1 FAILED


  ==== winDialog-4.1 Tk_GetSaveFileObjCmd FAILED
  ==== Contents of test case:

      start {tk_getSaveFile}
      then {
          set x [GetText 2]
          Click 2
      }
      set x

  ---- Result was:
  Abbrechen
  ---- Result should have been (exact matching):
  Cancel
  ==== winDialog-4.1 FAILED
  <-<-<-<-<-<-<-<-<-<-<-<-<-<-<-<-<-<-<-<-

  Here the test halts! There is also a window named
  "Visual Tests for TK" visible in the background, and an
  "Open" window (with a file list and everything else
  belonging to open windows) in the foreground which is
  waiting for user interaction. I closed both windows,
  but nothing happened. I pressed Ctrl-C, so he told me
  "make: *** [test] Interrupt" and I ended up at the MSYS
  prompt.

  I hope I help you with this!

  Wolfgang
  Wolfgang0815  .at.  gmx  .dot.  de


tkt_uuid: 1569294fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 11. Aqua Menus
priority: 4
foundin: obsolete: 8.5a4
resolution: Fixed
title: Images in menus aren't displayed
comment:
  I'm using Tclkit 8.5a4 on Mac OS X 10.4.8. When I add
  images to my menu (under a menubutton), the images
  aren't displayed in the menu. Instead it says '(Image)'
  where the image should be.


tkt_uuid: 1570182fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 46. Unix Fonts
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: Works For Me
title: compiling: undefined reference to `ListFontOrAlias'
comment:
  gcc -pipe -c -O -Wall -Wno-implicit-int -fPIC  -I/home/
  k4be/tk8.5a4/unix/../unix -I/home/k4be/tk8.5a4/unix/../
  generic  -I/home/k4be/tk8.5a4/unix/../bitmaps -I/home/
  k4be/tcl8.5a4/generic -I/home/k4be/tcl8.5a4/unix -I/
  usr/X11R6/include  -DPACKAGE_NAME=\"tk\" -
  DPACKAGE_TARNAME=\"tk\" -DPACKAGE_VERSION=\"8.5\" -
  DPACKAGE_STRING=\"tk\ 8.5\" -DPACKAGE_BUGREPORT=\"\" -
  DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -
  DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 
  -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -
  DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 
  -DHAVE_LIMITS_H=1 -DTCL_SHLIB_EXT=\".so\" -
  DTCL_CFG_OPTIMIZED=1 -DTCL_CFG_DEBUG=1 -
  DTCL_WIDE_INT_TYPE=long\ long -DHAVE_SYS_TIME_H=1 -
  DTIME_WITH_SYS_TIME=1 -DHAVE_PW_GECOS=1 -
  DHAVE_XSS=1      -DTCL_NO_DEPRECATED /home/k4be/
  tk8.5a4/unix/../unix/tkAppInit.c
  gcc -pipe -O   -export-dynamic tkAppInit.o -L/home/
  k4be/tk8.5a4/unix -ltk8.5  -L/home/k4be/tcl8.5a4/unix -
  ltcl8.5  -L/usr/X11R6/lib -lX11 -lXss -lXext    -lm -
  Wl,-rpath,/usr/local/lib:/usr/X11R6/lib -o wish
  /home/k4be/tk8.5a4/unix/libtk8.5.so: undefined 
  reference to `ListFontOrAlias'
  *** Error code 1

  Stop in /usr/home/k4be/tk8.5a4/unix.


  FreeBSD 6.1, tcl 8.5, gcc 3.4.4

  mail: k4be(nospam)@npircs.pl


tkt_uuid: 1571737fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 53. [selection]
priority: 5 Medium
foundin: obsolete: 8.4.9
resolution: None
title: PRIMARY sel handlers and non-Latin-1 encodings
comment:
  Installing a custom PRIMARY selection handler for the
  STRING target on Text and Entry widgets don't work as
  expected: the characters in the pasted string get
  substituted by "?" (question marks) for both 8-bit and
  UTF-8 applications.

  The system is Linux/X11R6 with KOI8-R locale.
  Tcl 8.4.9/Tk 8.4.9

  The string that is tried to be returned from selection
  handlers is the Russian word "тест"
  (0xD4, 0xC5, 0xD3, 0xD4 in KOI8-R).

  All the test cases are typed into tkcon (freshly
  started for each test).

  I. Just setting a handler for PRIMARY/STRING:

  % text .t
  .t
  % selection handle .t sh
  % proc sh {args} {return тест}
  % selection own .t
  % encoding system
  koi8-r
  % selection get -type TARGETS
  MULTIPLE TARGETS TIMESTAMP TK_APPLICATION TK_WINDOW
  UTF8_STRING STRING

  Then, in other apps we get pasted
  ????
  (four question marks).

  While in the same tkcon we get "тест" pasted (what's
  expected).

  II. Just setting a handler for UTF8_STRING:

  % text .t
  .t
  % selection handle -type UTF8_STRING .t sh
  % proc sh {args} {return тест}
  % selection own .t
  % selection get -type TARGETS
  MULTIPLE TARGETS TIMESTAMP TK_APPLICATION TK_WINDOW
  UTF8_STRING STRING

  Then we get the same results as for the first case.

  III. Setting handler for STRING, but convert the text
  to KOI8-R:

  ...as before, but the handler is:
  % proc sh {args} {return [encoding convertto тест]}

  This pastes the correct string to any 8-bit apps,
  but some 4-character gibberish gets pasted to
  UTF-8-enabled programs:
  ÔÅÓÔ
  which are: \u00d4\u00c5\u00d3\u00d4
  That's just the codes of KOI8-R symbols of the source
  word "тест".

  IV: Clearing STRING handler first, then installing
  UTF8_STRING handler:

  % text .t
  .t
  % selection handle .t {}
  % selection handle -type UTF8_STRING .t sh
  % proc sh {args} {return тест}
  % selection own .t
  % selection get -type TARGETS
  MULTIPLE TARGETS TIMESTAMP TK_APPLICATION TK_WINDOW
  UTF8_STRING

  Then we get that "????" again in either koi8-r and
  utf-8 programs.

  IV. Clearing UTF8_STRING handler first, then installing
  the handler for STRING:

  % text .t
  .t
  % selection handle -type UTF8_STRING .t {}
  % selection own .t
  % selection get -type TARGETS
  MULTIPLE TARGETS TIMESTAMP TK_APPLICATION TK_WINDOW STRING
  % selection handle .t sh
  % proc sh {args} {return тест}
  % selection get -type TARGETS
  MULTIPLE TARGETS TIMESTAMP TK_APPLICATION TK_WINDOW
  UTF8_STRING STRING

  In this case we get the correct string pasted ("тест")
  in any application
  (so this works).


tkt_uuid: 1572743fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 69. Events
priority: 8
foundin: obsolete: 8.5a4
resolution: None
title: Tk hangs on <KeyPress> Events when executed in command pipe
comment:
  Key press events make Tk hung and not responding
  anymore on windows. This happens when a Tclsh/Wish is
  executed in a command pipeline (via [open "|"]).

  It can be easily reproduced in a Tclsh on windows (e.g.
  in ActiveTcl's Tclsh84 or Tclsh85):

  % set backend [open "| [info nameofexe]" r+]
  % fconfigure $backend -buffering line
  % puts $backend "package re Tk"

  Then, click in the appearing wish main window and press
  any key. The window hangs forever and the only way out
  there is by

  % puts $backend "exit"

  in the Tclsh console from where the pipe was opened

  I don't know about other platforms, just tried it out
  on Windows.


tkt_uuid: 1572922fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 67. Unix Window Operations
priority: 5 Medium
foundin: obsolete: 8.4.9
resolution: Duplicate
title: tk does not let me input unicode characters
comment:
  I'm using a gentoo box, tcl/tk version 8.4.9
  kernel 2.6.16-gentoo-r7 on a x86 arch.
  KDE version 3.5.2.

  Tk does not allow me to input armenian (UTF-8) 
  characters.
  the system encoding is utf-8
  i tryed to open wish

  typed
  % pack [text .t]

  but could not write in armenian in the wish window

  if i type

  % .t insert end \u0531\u0532\u0533

  it gives me correctly armenian characters


tkt_uuid: 1574843fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 51. [place]
priority: 7 High
foundin: obsolete: 8.4.14
resolution: Out of Date
title: tk8.4.14-RC1 test errors
comment:
  Attaching the test results - 34 errors. I have never
  seen 0 anyway, but some look unfamiliar: especially
  image, place (this could be a fluke), scale, spinbox.

  Platform is linux/xorg/icewm (hacked not to have
  titlebars - should not make a difference, right?).

  Tested both with --disable-shared, with and without
  --enable-symbols=all. The pace.test error only appeared
  in the symbols build.


tkt_uuid: 1576528fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 42. Photo Image|GIF
priority: 5 Medium
foundin: obsolete: 8.5a4
resolution: None
title: image read file from co-ords
comment:
  The /image/ read /file/ -from x1 y1 x2 y2 command does
  not work correctly.  The following script uses the
  ActiveTcl example gif of the earth from space.  The
  rectangular region (152,62) to (185,97) encloses
  Madagascar.  The displayed region is from the top-right
  hand corner.

  package require Tk
  set fname C:/Tcl8.4/demos/Tk8.4/images/earth.gif
  canvas .c
  pack .c
  set img [image create photo]
  $img read $fname -from 152 62 185 97
  .c create image 0 0 -anchor nw -image $img


tkt_uuid: 1576583fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 41. Photo Images
priority: 8
foundin: obsolete: 8.5.1
resolution: Out of Date
title: Crash displaying large images
comment:
  I have a series of gif files of dimensions of the order
  of 4500 x 4500 pixels, which I am trying to display
  using a Tk canvas.  Some do, some don't.  On Windows,
  those that don't, crash with the panic error message
  Fail to create pixmap with Tk_GetPixMap in
  ImgPhotoInstanceSetSize.  On MacOS X, those that don't,
  are simply blank.  The following short script
  reproduces the problem by creating a similarly large
  image on-the-fly, without the hassle of uploading a 2Mb
  file to SourceForge.  It fails at roughly the same
  dimensions.  It uses the ActiveTcl gif image of the
  earth seen from space.

  package require Tk
  canvas .c
  pack .c
  # Simple bindings to show extent of image by dragging
  bind .c <ButtonPress-1> {%W scan mark   %x %y}
  bind .c <B1-Motion>     {%W scan dragto %x %y 1}

  set i 2500
  set fname C:/Tcl8.4/demos/Tk8.4/images/earth.gif
  set img1 [image create photo -file $fname]
  set img2 [image create photo]
  label .l -textvariable i
  pack .l -side left
  button .b -text Bigger -command draw
  pack .b -side left

  proc draw {} {
      global i
      global img1
      global img2
      image delete $img2
      incr i 500
      set img2 [image create photo -width $i -height $i]
      $img2 copy $img1 -to 0 0 $i $i
      .c create image 0 0 -anchor nw -image $img2
  }

  draw


tkt_uuid: 1576871fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 03. [*button] and [label]
priority: 5 Medium
foundin: obsolete: 8.4.14
resolution: Invalid
title: Option -compound not documented
comment:
  The widgets 'checkbutton', and 'radiobutton' accept the
  option -compound, per the sources, but are not
  documented for them. for the related widgets 'button'
  and 'label' the option is documented.


tkt_uuid: 1577290fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: None
title: Non-visible blocks of text on Aqua
comment:
  When I fire up tkchat using the latest Tk and look back
  through the history there are occassional blocks of
  text that are not visible. Selecting the area where the
  text should be makes it visible again. See
  http://www.cs.nott.ac.uk/~nem/AquaTextBug.png and
  http://www.cs.nott.ac.uk/~nem/AquaTextBug2.png for an
  illustration of what I mean here. This only seems to
  happen on Mac/Aqua and only with tagged text.


tkt_uuid: 1578024fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: Out of Date
title: "nmake test" fails with 8.5a5rc1 on windows
comment:
  Here are the failures i saw from an "nmake test"
  on the 8.5arc Tk sources.

  ==== canvRect-9.1 ScaleRectOval procedure FAILED
  ==== Contents of test case:

      .c delete withtag all
      .c create rect 100 300 200 350 -tags x
      .c scale x 50 100 2 4
      .c coords x

  ---- Result was:
  150.0 900.0000000000002 350.0 1099.9999999999998
  ---- Result should have been (exact matching):
  150.0 900.0 350.0 1100.0
  ==== canvRect-9.1 FAILED



  ==== canvRect-10.1 TranslateRectOval procedure FAILED
  ==== Contents of test case:

      .c delete withtag all
      .c create rect 100 300 200 350 -tags x
      .c move x 100 -10
      .c coords x

  ---- Result was:
  200.0 290.00000000000006 300.0 339.99999999999994
  ---- Result should have been (exact matching):
  200.0 290.0 300.0 340.0
  ==== canvRect-10.1 FAILED



  ==== safe-1.2 Safe Tk loading into an interpreter 
  FAILED
  ==== Contents of test case:

      catch {safe::interpDelete a}
      safe::interpCreate a
      safe::loadTk a
      set l [lsort [interp hidden a]]
      safe::interpDelete a
      set l

  ---- Result was:
  bell cd clipboard encoding exec exit fconfigure file 
  glob grab load menu open pwd selectio
  n socket source tk_chooseColor tk_chooseDirectory 
  tk_getOpenFile tk_getSaveFile tk_message
  Box toplevel wm
  ---- Result should have been (exact matching):
  bell cd clipboard encoding exec exit fconfigure file 
  glob grab load menu open pwd selectio
  n send socket source tk_chooseColor tk_chooseDirectory 
  tk_getOpenFile tk_getSaveFile tk_me
  ssageBox toplevel wm
  ==== safe-1.2 FAILED


  ==== text-25.15 bug fix 1536735 - undo with empty text 
  FAILED
  ==== Contents of test case:

      catch {destroy .t}
      text .t -undo 1
      .t delete 1.0
      .t edit undo
      .t edit modified

  ---- Result was:
  1
  ---- Result should have been (exact matching):
  0
  ==== text-25.15 FAILED

  ==== textImage-3.2 delayed image management FAILED
  ==== Contents of test case:

          catch {
              image create photo small -width 5 -height 5
              small put red -to 0 0 4 4
          }
          catch {destroy .t}
          text .t -font test_font -bd 0 -
  highlightthickness 0 -padx 0 -pady 0
          pack .t
          .t image create end -name test
          update
          set result ""
          lappend result [.t bbox test]
          .t image configure test -image small -align top
          update
          lappend result [.t bbox test]

  ---- Result was:
  {0 10 0 0} {0 0 5 5}
  ---- Result should have been (exact matching):
  {} {0 0 5 5}
  ==== textImage-3.2 FAILED

  ==== textWind-10.4 EmbWinLayoutProc procedure, error 
  in creating window FAILED
  ==== Contents of test case:

      .t delete 1.0 end
      .t insert 1.0 "Some sample text"
      catch {destroy .t.f}
      .t window create 1.5 -create {
          frame .t.f
          frame .t.f.f -width 10 -height 20 -bg $color
      }
      set msg {}
      set count 0
      while {([llength $msg] < 2) && ($count < 100)} {
          update ; incr count; .t bbox 1.5 ; after 10
      }
      lappend msg [.t bbox 1.5] [winfo exists .t.f.f]

  ---- Result was:
  {{can't embed .t.f.f relative to .t}} {40 12 0 0} 1
  ---- Result should have been (exact matching):
  {{can't embed .t.f.f relative to .t}} {{window 
  name "f" already exists in parent}} {40 12
  0 0} 1
  ==== textWind-10.4 FAILED


  ==== winDialog-5.16 GetFileName: initial file: long 
  name FAILED
  ==== Contents of test case:

      start {set x [tk_getSaveFile -initialfile $a -
  title Long]}
      then {
          Click 1
      }
      string totitle $x

  ---- Result was:
  D:/afredd/src/tk/tk8.5a5rc1-src.tar/tk8.5a5/win/12x 456
  ---- Result should have been (exact matching):
  D:/afredd/src/tk/tk8.5a5rc1-
  src.tar/tk8.5a5/win/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  aaaaaaaaa
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  aaaaaaaaaaaaaaaaaaaaaaa
  ==== winDialog-5.16 FAILED


  ==== winWm-5.1 UpdateGeometryInfo: menu resizing FAILED
  ==== Contents of test case:

      set result {}
      toplevel .t
      frame .t.f -width 150 -height 50 -bg red
      pack .t.f
      update
      set result [winfo height .t]
      menu .t.m
      .t.m add command -label foo
      .t conf -menu .t.m
      update
      lappend result [winfo height .t]
      .t.m add command -label "thisisreallylong"
      .t.m add command -label "thisisreallylong"
      update
      lappend result [winfo height .t]
      destroy .t
      set result

  ---- Result was:
  50 50 32
  ---- Result should have been (exact matching):
  50 50 50
  ==== winWm-5.1 FAILED


  ==== winfo-4.5 "winfo containing" command FAILED
  ==== Contents of test case:

      winfo containing [winfo rootx .t.f] [winfo 
  rooty .t.f]

  ---- Result was:
  .
  ---- Result should have been (exact matching):
  .t.f
  ==== winfo-4.5 FAILED


  Tests ended at Mon Oct 16 10:32:35 +0100 2006
  all.tcl:        Total   8660    Passed  7471    
  Skipped 1180    Failed  9
  Sourced 86 Test Files.
  Files with failing tests: canvRect.test safe.test 
  text.test textImage.test textWind.test w
  inDialog.test winWm.test winfo.test


tkt_uuid: 1578858fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: Fixed
title: incorrect tab format
comment:
  The text widget does not correctly outline tabs if the 
  line starts with a number of spaces >= tab width. 

  e.g.: tab width = 8

  xxx<tab>yyy
  will be displayed correctly as:

  12345678901234578
  xxx     yyy

  but:
          xxx<tab>yyy
  will be displayed as:

  12345678901234578
          xxx yyy


  Also:
          xxx<tab>yyy<tab>zzz
  will be displayed as:

  1234567890123457890
          xxx yyy zzz


tkt_uuid: 1581435fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 10. Generic Menus
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: None
title: menu index wrong if label is an integer
comment:
  If a menu contains an item whose label is an integer,
  then menu index returns the value of that menu item,
  or if the integer is too large, then it returns
  the index of the last item in the menu.

  Here is a procedure to see this.
  Enter it into wish and select menu items to see the index.
  The index of entry "3" is reported as 3, but should be 1.

  menubutton .mb -m .mb.menu -text testmenu
  pack .mb
  set m [menu .mb.menu]
  $m add command -label foo -command {puts "foo: [$m index foo]"}
  $m add command -label 3 -command {puts "3: [$m index 3]"}
  $m add command -label 3a -command {puts "3: [$m index 3a]"}
  $m add command -label bar -command {puts "bar: [$m index bar]"}
  $m add command -label baz -command {puts "baz: [$m index baz]"}

  I saw this on ActiveState Aqua Tcl/Tk 8.4.13 on MacOS X 10.4.7. I have 
  not tried to duplicate it on other operating systems nor with 8.4.14 
  (since the ActiveState version is not yet available).


tkt_uuid: 1581490fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 02. Appearance
priority: 5 Medium
foundin: None
resolution: None
title: Tk button on Aqua differs between -text and -image
comment:
  The Tk button rendering on Aqua
  differs dramatically between -text and -image options.

  With -image, you get a nice flat button. Using -text
  you get a wide textured button.


tkt_uuid: 1581932fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: Fixed
title: wm $win -alpha returns old value
comment:
  The following script simply fixes the window's alpha at 0.02, instead of 
  fading it in nicely. I believe this used to work some months ago.

  #!/usr/bin/wish
  toplevel .startup
  frame .startup.f -bg red -width 500 -height 500
  wm attributes .startup -alpha 0.02

  proc fadeIn {win increment} {
      set alpha [wm attributes $win -alpha]
      set alpha [expr {$alpha + $increment}]
      if {$alpha > 1.0} {
  return
      }
      puts $alpha
      wm attributes $win -alpha $alpha
      after 20 [list fadeIn $win $increment]
  }

  fadeIn .startup 0.02

  puts "done"


tkt_uuid: 1581955fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 18. [text]
priority: 8
foundin: obsolete: 8.6b1
resolution: None
title: text widget: window create ... -create ... doesn't work
comment:
  In Tk 8.5, the text widget command

      <path> window create <index> -create <script>

  doesn't behave as expected.  From the man page:

  "... this script will be evaluated when the annotation
  is about to be displayed on the screen. ... If the 
  annotation's window should ever be deleted, script will
  be evaluated again the next time the  annotation is 
  displayed."

  In earlier Tk versions, the window's creation was
  delayed indeed as specified in the man page, i.e.,
  until effectively displaying it on the screen.  This
  was a very useful feature, allowing the creation of a
  large number of embedded windows, of which only a few
  had to really exist.  For example, whenever vertical
  scrolling or anything else made it necessary to update
  the view, it was possible to destroy the windows
  embedded into the other lines.  A very effective way to
  save resources and avoid problems related to keyboard
  navigation with the Tab key (which becomes awfully slow
  in the presence of a large number of windows).

  In Tk 8.5, the "-create" option behaves basically like
  "-window".  The [window names] subcommand returns the
  names of *all* embedded windows, and it is quite easy
  to see that all of these really exist.  Any attempt to
  delete some of them fails, because they are immediately
  recreated, contrary to what is stated in the documentation.


tkt_uuid: 1583055fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 85. Win Build
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: Invalid
title: Conflict between Tcl and Tk rules for building with MSVC
comment:
  I tried to build Tcl and Tk on Windows XP, using
  the makefile.vc makefiles and MSVC 6.0.

  Tcl built fine and almost all tests succeeded.
  However, when I tried building Tk, it complained
  about not finding Release_i386\tcl85.exe.
  (Tcl simply resides in the Release directory)

  When I removed the suffix _i386 building Tk worked fine
  too.


tkt_uuid: 1583065fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 35. [tk_dialog]
priority: 5 Medium
foundin: None
resolution: Fixed
title: Test suite hangs on Windows XP - "Annuleren", not "Cancel"
comment:
  The test suite on Windows XP works automatically up to
  the point where the file selection dialogues are tested.

  On my particular system the text labels are in Dutch.
  Test winDialog-4.1 fails because the test returns 
  "Annuleren" instead of "Cancel". 

  But:
  - the file selection dialogue remains visible
  - after closing the dialogue manually the test suite
    "hangs" - no further tests are made.


tkt_uuid: 1584042fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 01. Bindings
priority: 5 Medium
foundin: obsolete: 8.4.14
resolution: Wont Fix
title: checkbutton binding behavior different on Windows and Linux
comment:
  In Windows when binding a checkbutton to
  <ButtonRelease-1> the associated variable does not
  appear to update until after the <ButtonRelease-1>
  event leaving the variables in the binding always one
  state behind. In the sample code provided in Windows
  clicking on a checkbutton doesn't update the text box
  until the second checkbutton event. In Linux this
  behavior is not observed, the text field is always
  updated correctly when the checkbuttons are pressed.

  Sample Code:

  #!/bin/ksh
  # execute wish \
  exec wish "$0" "$@"
  #!wish

  frame .sample

  checkbutton .p0 -variable p0 -onvalue 1 -offvalue 0
  -text ""
  checkbutton .p1 -variable p1 -onvalue 1 -offvalue 0
  -text ""
  checkbutton .p2 -variable p2 -onvalue 1 -offvalue 0
  -text ""
  checkbutton .p3 -variable p3 -onvalue 1 -offvalue 0
  -text ""

  bind .p0 <ButtonRelease-1> {
      set result [ list $p3 $p2 $p1 $p0]
      set result [ join $result "" ]
  }
  bind .p1 <ButtonRelease-1> {
      set result [ list $p3 $p2 $p1 $p0]
      set result [ join $result "" ]
  }
  bind .p2 <ButtonRelease-1> {
      set result [ list $p3 $p2 $p1 $p0]
      set result [ join $result "" ]
  }
  bind .p3 <ButtonRelease-1> {
      set result [ list $p3 $p2 $p1 $p0]
      set result [ join $result "" ]
  }

  entry .result -width 6 -textvariable result
  set result 0000

  grid .sample
  grid .p3 .p2 .p1 .p0 .result -in .sample

  # End of Script

  Seen in ActiveTcl8.4.13.0.261555 for Windows and Linux


tkt_uuid: 1585824fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 04. Canvas Basics
priority: 5 Medium
foundin: obsolete: 8.4.14
resolution: None
title: Tcl/Tk crashes while using logic canvas-tag expressions
comment:
  Hello,

  if I run the following script Tcl/Tk crashes.

  -------------------------------------------------------
  -

  proc objbbox { canvas tag } {

    #
    # following line leads to the crash
    #
    switch -- [$canvas type   ($tag)&&!@text&&!
  @stemline&&!@gridrow&&!@gridcolumn] {

      rectangle{
        # ...do something...
      }

      default {
        # ...do something else...
      }
    }/* end of switch */
  }/* end of proc */

  canvas .canv
  pack .canv
  .canv create rectangle 1 1 100 100 -tags myRect
  objbbox .canv myRect

  -------------------------------------------------------
  -


  Simple logic expressions like 

   .canvas type tag1&&tag2&&tag3&&....and so on

  never crash but if I use a logic expression that  
  includes brackets as follows

   .canvas type ($tag)&&tag2&&tag3&&tag4&&tag5

  a memory overrun occurs and causes Tcl/Tk to crash.

  The reason is a wrong if-statement embedded in a while-
  loop inside the function "TagSearchScanExpr.
  The function is part of "./tk8.4.14/generic/tkCanvas.c"

  A possible fix is:

  static int
  TagSearchScanExpr(interp, searchPtr, expr)
  Tcl_Interp *interp; /* Current interpreter. */
  TagSearch *searchPtr; /* Search data */
  TagSearchExpr *expr; /* compiled expression result */
  {
  ...
  if (expr->allocated == expr->index) {
  ...
  }

  should be changed into

  static int
  TagSearchScanExpr(interp, searchPtr, expr)
  Tcl_Interp *interp; /* Current interpreter. */
  TagSearch *searchPtr; /* Search data */
  TagSearchExpr *expr; /* compiled expression result */
  {
  ...
  // e.g
  if (expr->allocated <= expr->index+1) {
  ...
  }


  I hope this helps.

  Regards, Ayd


tkt_uuid: 1587363fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 3 Low
foundin: obsolete: 8.5a5
resolution: Out of Date
title: configure script doesn't find Tcl8.5 sources
comment:
  A plain ./configure fails to find the Tcl8.5 sources. 

  When fed with an extra:
   --with-tcl=/usr/local/src/tcl8.5a5/unix
  the build continues without problems.



  > pwd
  /usr/local/src/tk8.5a5/unix
  > ./configure
  checking for Tcl configuration... found
  /usr/local/src/tcl8.4.14/unix/tclConfig.sh
  checking for existence of
  /usr/local/src/tcl8.4.14/unix/tclConfig.sh... loading
  checking for tclsh... /usr/bin/tclshg
  checking for tclsh in Tcl build directory...
  /usr/local/src/tcl8.4.14/unix/tclsh
  configure: error:
  /usr/local/src/tcl8.4.14/unix/tclConfig.sh is for Tcl 8.4.
  Tk 8.5a5 needs Tcl 8.5.
  Use --with-tcl= option to indicate location of
  tclConfig.sh file for Tcl 8.5.
  > uname -a
  Linux somehost 2.4.21-303-athlon #1 Tue Dec 6 12:24:00
  UTC 2005 i686 athlon i386 GNU/Linux
  > 


tkt_uuid: 1589226fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 66. Aqua Window Operations
priority: 5 Medium
foundin: None
resolution: Fixed
title: TkAqua sends too many Expose events
comment:
  This patch fixes the handling of Carbon Update events in TkAqua: the 
  QuickDraw window update region was being ignored and all child 
  TkWindows were sent  an Expose XEvent even when they did not need to 
  be redrawn.


tkt_uuid: 1590575fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 5 Medium
foundin: obsolete: 8.5a1
resolution: Out of Date
title: configure doesn't create a correct Makefile in FreeBSD 6.2
comment:
  While compiling in FreeBSD 6.2, with tcl8.5a1 installed:

  ...
  ld -Bshareable -x -o libtk8.5.so tk3d.o tkArgv.o
  tkAtom.o tkBind.o tkBitmap.o tkClipboard.o  tkCmds.o
  tkColor.o
  tkConfig.o tkConsole.o tkCursor.o tkError.o  tkEvent.o
  tkFocus.o tkFont.o tkGet.o tkGC.o tkGeometry.o tkGrab.o 
  tkGrid.o tkMain.o tkObj.o tkOldConfig.o tkOption.o
  tkPack.o tkPlace.o  tkSelect.o tkStyle.o tkUndo.o tkUtil.o
  tkVisual.o tkWindow.o tkButton.o tkEntry.o tkFrame.o
  tkListbox.o  tkMenu.o tkMenubutton.o tkMenuDraw.o
  tkMessage.o 
  tkPanedWindow.o tkScale.o tkScrollbar.o tkCanvas.o
  tkCanvArc.o tkCanvBmap.o tkCanvImg.o  tkCanvLine.o
  tkCanvPoly.o
  tkCanvPs.o tkCanvText.o  tkCanvUtil.o tkCanvWind.o
  tkRectOval.o tkTrig.o tkImage.o tkImgBmap.o tkImgGIF.o
  tkImgPPM.o
  tkImgPhoto.o tkText.o tkTextBTree.o tkTextDisp.o
  tkTextImage.o tkTextIndex.o  tkTextMark.o tkTextTag.o
  tkTextWind.o 
  tkStubInit.o tkStubLib.o tkUnix.o tkUnix3d.o
  tkUnixButton.o tkUnixColor.o tkUnixConfig.o 
  tkUnixCursor.o tkUnixDraw.o
  tkUnixEmbed.o tkUnixEvent.o  tkUnixFocus.o 
  tkUnixRFont.o tkUnixInit.o tkUnixKey.o tkUnixMenu.o 
  tkUnixMenubu.o
  tkUnixScale.o tkUnixScrlbr.o tkUnixSelect.o 
  tkUnixSend.o tkUnixWm.o tkUnixXId.o -lpthread
  -L/usr/X11R6/lib -lX11 -lXss
  -lXext -L/usr/X11R6/lib -lXft -lX11 -L/usr/local/lib
  -Wl,--rpath -Wl,/usr/local/lib -lfreetype -lz
  -L/usr/X11R6/lib
  -lfontconfig -L/usr/X11R6/lib -lXrender -lX11 -lXext 
  -lpthread -lm -L/home/josemaria/tcl/lib -ltclstub8.5  
  -rpath
  /home/josemaria/tcl/lib:/usr/X11R6/lib
  ld: unrecognized option '-Wl,--rpath'
  ld: use the --help option for usage information
   *** Error code 1

   Stop in /tmp/tcl/tk8.5a5/unix.

  To solve it you need to edit Makefile and change the
  line 288:

  XFT_LIBS                = -L/usr/X11R6/lib -lXft -lX11
  -L/usr/local/lib -Wl,--rpath -Wl,/usr/local/lib
  -lfreetype....

  To:

  XFT_LIBS                = -L/usr/X11R6/lib -lXft -lX11
  -L/usr/local/lib -rpath /usr/local/lib -lfreetype

  and it will compile.


tkt_uuid: 1591481fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 05. Canvas Items
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: None
title: canvRect.test 9.1 and 10.1 failure
comment:
  Platform: built cvs head using SPARC Solaris 2.9 and
  Sun C compiler, 
  configured by ./configure, generated by GNU Autoconf 2.59, 
    with options \"'--prefix=/volws/lwv27/ldatae'
  '--enable-shared' '--enable-symbols' '--enable-stubs'
  '--enable-langinfo' 'CC=cc'\"

  (Note that tcl 8.5a5 cvs head was configured with
  threads enabled).

  Tk tests were displayed from SPARC Solaris through a
  Windows XP SP2 Intel via Hummingbird Exceed version
  10.0.0.12 .


  The following two test cases failed:
    
  canvRect.test

  ==== canvRect-9.1 ScaleRectOval procedure FAILED
  ==== Contents of test case:

      .c delete withtag all
      .c create rect 100 300 200 350 -tags x
      .c scale x 50 100 2 4
      .c coords x

  ---- Result was:
  150.0 900.0 350.0 1099.9999999999998
  ---- Result should have been (exact matching):
  150.0 900.0 350.0 1100.0
  ==== canvRect-9.1 FAILED

  ==== canvRect-10.1 TranslateRectOval procedure FAILED
  ==== Contents of test case:

      .c delete withtag all
      .c create rect 100 300 200 350 -tags x
      .c move x 100 -10
      .c coords x

  ---- Result was:
  200.0 290.0 300.0 339.99999999999994
  ---- Result should have been (exact matching):
  200.0 290.0 300.0 340.0
  ==== canvRect-10.1 FAILED


tkt_uuid: 1591484fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 55. [focus]
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: None
title: test suite focus test 5.1 failure
comment:
  I'm building the latest cvs head, building on sparc
  solaris 2.9, using sun c compiler. I display back
  through exceed 10.0.0.12 on a windows xp machine.

  focus.test

  ==== focus-5.1 ChangeXFocus procedure, don't take focus
  unless have it FAILED
  ==== Contents of test case:

      focusSetup
      focus -force .t
      update
      set result [focus]
      send [dobg {tk appname}] {focus -force .; update}
      lappend result [focus]
      focus .t.b2
      update
      lappend result [focus]

  ---- Result was:
  .t .t {}
  ---- Result should have been (exact matching):
  .t {} {}
  ==== focus-5.1 FAILED


tkt_uuid: 1591485fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 46. Unix Fonts
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: None
title: font test suite failures 21.8, 28.6
comment:
  Tk cvs head build on sparc solaris 2.9, using sun c
  compiler , test suite run displaying back through
  windows xp exceed 10.0.0.12 .

  The following font test suite failed. I'm uncertain
  whether this is a unix specific font failure or a
  generic failure.

  font.test

  ==== font-21.8 Tk_PostscriptFontName procedure: spaces
  FAILED
  ==== Contents of test case:

      set x [font actual {{lucida bright} 10} -family]
      if {[string match lucida*bright $x]} {
          psfontname "{lucida bright} 10"
      } else {
          set x {LucidaBright}
      }

  ---- Result was:
  Lucidabright
  ---- Result should have been (exact matching):
  LucidaBright
  ==== font-21.8 FAILED

  ==== font-38.5 ParseFontNameObj procedure: begins with
  * FAILED
  ==== Contents of test case:

      lindex [font actual
  *-times-xyz-*-*-*-*-*-*-*-*-*-*-*] 1

  ---- Result was:
  fixed
  ---- Result should have been (exact matching):
  times
  ==== font-38.5 FAILED

  ==== font-38.6 ParseFontNameObj procedure: begins with
  * FAILED
  ==== Contents of test case:

      font actual *-times-xyz -family
  ---- Result was:
  fixed
  ---- Result should have been (exact matching):
  times
  ==== font-38.6 FAILED

  ==== font-40.2 TkFontParseXLFD procedure: no initial
  dash FAILED
  ==== Contents of test case:

      font actual *-times-*-*-*-*-*-*-*-*-*-*-*-xyz -family

  ---- Result was:
  fixed
  ---- Result should have been (exact matching):
  times
  ==== font-40.2 FAILED

  ==== font-40.3 TkFontParseXLFD procedure: not enough
  fields FAILED
  ==== Contents of test case:

      font actual -xyz-times-*-*-* -family

  ---- Result was:
  fixed
  ---- Result should have been (exact matching):
  times
  ==== font-40.3 FAILED

  ==== font-40.5 TkFontParseXLFD procedure: all fields
  specified FAILED
  ==== Contents of test case:


      lindex [font actual
  -foundry-times-weight-slant-setwidth-addstyle-10-10-10-1
  0-spacing-avgwidth-registry-encoding] 1

  ---- Result was:
  fixed
  ---- Result should have been (exact matching):
  times
  ==== font-40.5 FAILED


tkt_uuid: 1591487fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 08. [(label)frame] and [toplevel]
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: None
title: frame test 2.5 failure
comment:
  built cvs head tk 8.5 on sparc solaris 2.9 using sun c
  compiler; display for test suite was exceed 10.0.0.12
  running on windows xp.

  frame.test

  ==== frame-2.5 toplevel configuration options FAILED
  ==== Contents of test case:

      catch {destroy .t}
      toplevel .t -width 200 -height 100
      wm geometry .t +0+0
      list [catch {.t configure -use 0x44022} msg] $msg
  [.t configure -use]

  ---- Result was:
  1 {couldn't create child of window "0x44022"} {-use use
  Use {} {}}
  ---- Result should have been (exact matching):
  1 {can't modify -use option after widget is created}
  {-use use Use {} {}}
  ==== frame-2.5 FAILED


tkt_uuid: 1591488fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 53. [selection]
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: None
title: test suite tests 10.2, 11.1 failed
comment:
  built cvs head tk 8.5 on solaris 2.9 using sun c
  compiler; run test suite back to win xp via exceed
  10.0.0.12.

  select.test

  ==== select-10.2 ConvertSelection procedure FAILED
  ==== Contents of test case:

      setup
      setupbg
      set selValue [string range $longValue 0 3999]
      set selInfo ""
      selection handle .f1 {handler STRING}
      set result ""
      lappend result [dobg {selection get}]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  Aa.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Ba.1a.2a.3a.4a.5a.6a.7a.8a.9a.10
  a.11a.12a.13a.14Ca.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Da.1a.2a.3a.4a.5
  a.6a.7a.8a.9a.10a.11a.12a.13a.14Ea.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14
  Fa.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Ga.1a.2a.3a.4a.5a.6a.7a.8a.9a.10
  a.11a.12a.13a.14Ha.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Ia.1a.2a.3a.4a.5
  a.6a.7a.8a.9a.10a.11a.12a.13a.14Ka.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14
  La.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Ma.1a.2a.3a.4a.5a.6a.7a.8a.9a.10
  a.11a.12a.13a.14Na.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Ab.1b.2b.3b.4b.5
  b.6b.7b.8b.9b.10b.11b.12b.13b.14Bb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14
  Cb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Db.1b.2b.3b.4b.5b.6b.7b.8b.9b.10
  b.11b.12b.13b.14Eb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Fb.1b.2b.3b.4b.5
  b.6b.7b.8b.9b.10b.11b.12b.13b.14Gb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14
  Hb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Ib.1b.2b.3b.4b.5b.6b.7b.8b.9b.10
  b.11b.12b.13b.14Kb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Lb.1b.2b.3b.4b.5
  b.6b.7b.8b.9b.10b.11b.12b.13b.14Mb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14
  Nb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Ac.1c.2c.3c.4c.5c.6c.7c.8c.9c.10
  c.11c.12c.13c.14Bc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Cc.1c.2c.3c.4c.5
  c.6c.7c.8c.9c.10c.11c.12c.13c.14Dc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14
  Ec.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Fc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10
  c.11c.12c.13c.14Gc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Hc.1c.2c.3c.4c.5
  c.6c.7c.8c.9c.10c.11c.12c.13c.14Ic.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14
  Kc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Lc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10
  c.11c.12c.13c.14Mc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Nc.1c.2c.3c.4c.5
  c.6c.7c.8c.9c.10c.11c.12c.13c.14Ad.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14
  Bd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Cd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10
  d.11d.12d.13d.14Dd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Ed.1d.2d.3d.4d.5
  d.6d.7d.8d.9d.10d.11d.12d.13d.14Fd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14
  Gd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Hd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10
  d.11d.12d.13d.14Id.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Kd.1d.2d.3d.4d.5
  d.6d.7d.8d.9d.10d.11d.12d.13d.14Ld.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14
  Md.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Nd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10
  d.11d.12d.13d.14Ae.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14Be.1e.2e.3e.4e.5
  e.6e.7e.8e.9e.10e.11e.12e.13e.14Ce.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14
  De.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14Ee.1e.2e.3e.4e.5e.6e.7e.8e.9e.10
  e.11e.12e.13e.14Fe.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14Ge.1e.2e.3e.4e.5
  e.6e.7e.8e.9e.10e.11e.12e.13e.14He.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14
  Ie.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14Ke.1e.2e.3e.4e.5e.6e.7e.8e.9e.10
  e.11e.12e.13e.14Le.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14Me.1e.2e.3e.4e.5
  e.6e.7e.8e.9e.10e.11e.12e.13e.14Ne.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14
  Af.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Bf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10
  f.11f.12f.13f.14Cf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Df.1f.2f.3f.4f.5
  f.6f.7f.8f.9f.10f.11f.12f.13f.14Ef.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14
  Ff.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Gf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10
  f.11f.12f.13f.14Hf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14If.1f.2f.3f.4f.5
  f.6f.7f.8f.9f.10f.11f.12f.13f.14Kf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14
  Lf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Mf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10
  f.11f.12f.13f.14Nf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Ag.1g.2g.3g.4g.5
  g.6g.7g.8g.9g.10g.11g.12g.13g.14Bg.1g.2g.3g.4g.5g.6g.7g.8g.9g.10g.11g.12g.13g.14
  Cg.1g.2g.3g.4g.5g.6g.7g.8g.9g.10g.11g.12g.13g.14Dg.1g.2g.3g.4g.5g.6g.7g.8g.9g.10
  g.11g.12g.13g.14Eg.1g.2g.3g.4g.5g.6g.7g.8g.9g.10g.11g.12g.13g.14Fg.1g.2g.3g.4g.5
   {STRING 0 4000 STRING 4000 4000 STRING 0 4000 STRING
  4000 4000 STRING 0 4000 ST
  RING 4000 4000}
  ---- Result should have been (exact matching):
  Aa.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Ba.1a.2a.3a.4a.5a.6a.7a.8a.9a.10
  a.11a.12a.13a.14Ca.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Da.1a.2a.3a.4a.5
  a.6a.7a.8a.9a.10a.11a.12a.13a.14Ea.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14
  Fa.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Ga.1a.2a.3a.4a.5a.6a.7a.8a.9a.10
  a.11a.12a.13a.14Ha.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Ia.1a.2a.3a.4a.5
  a.6a.7a.8a.9a.10a.11a.12a.13a.14Ka.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14
  La.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Ma.1a.2a.3a.4a.5a.6a.7a.8a.9a.10
  a.11a.12a.13a.14Na.1a.2a.3a.4a.5a.6a.7a.8a.9a.10a.11a.12a.13a.14Ab.1b.2b.3b.4b.5
  b.6b.7b.8b.9b.10b.11b.12b.13b.14Bb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14
  Cb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Db.1b.2b.3b.4b.5b.6b.7b.8b.9b.10
  b.11b.12b.13b.14Eb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Fb.1b.2b.3b.4b.5
  b.6b.7b.8b.9b.10b.11b.12b.13b.14Gb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14
  Hb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Ib.1b.2b.3b.4b.5b.6b.7b.8b.9b.10
  b.11b.12b.13b.14Kb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Lb.1b.2b.3b.4b.5
  b.6b.7b.8b.9b.10b.11b.12b.13b.14Mb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14
  Nb.1b.2b.3b.4b.5b.6b.7b.8b.9b.10b.11b.12b.13b.14Ac.1c.2c.3c.4c.5c.6c.7c.8c.9c.10
  c.11c.12c.13c.14Bc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Cc.1c.2c.3c.4c.5
  c.6c.7c.8c.9c.10c.11c.12c.13c.14Dc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14
  Ec.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Fc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10
  c.11c.12c.13c.14Gc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Hc.1c.2c.3c.4c.5
  c.6c.7c.8c.9c.10c.11c.12c.13c.14Ic.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14
  Kc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Lc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10
  c.11c.12c.13c.14Mc.1c.2c.3c.4c.5c.6c.7c.8c.9c.10c.11c.12c.13c.14Nc.1c.2c.3c.4c.5
  c.6c.7c.8c.9c.10c.11c.12c.13c.14Ad.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14
  Bd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Cd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10
  d.11d.12d.13d.14Dd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Ed.1d.2d.3d.4d.5
  d.6d.7d.8d.9d.10d.11d.12d.13d.14Fd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14
  Gd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Hd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10
  d.11d.12d.13d.14Id.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Kd.1d.2d.3d.4d.5
  d.6d.7d.8d.9d.10d.11d.12d.13d.14Ld.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14
  Md.1d.2d.3d.4d.5d.6d.7d.8d.9d.10d.11d.12d.13d.14Nd.1d.2d.3d.4d.5d.6d.7d.8d.9d.10
  d.11d.12d.13d.14Ae.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14Be.1e.2e.3e.4e.5
  e.6e.7e.8e.9e.10e.11e.12e.13e.14Ce.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14
  De.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14Ee.1e.2e.3e.4e.5e.6e.7e.8e.9e.10
  e.11e.12e.13e.14Fe.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14Ge.1e.2e.3e.4e.5
  e.6e.7e.8e.9e.10e.11e.12e.13e.14He.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14
  Ie.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14Ke.1e.2e.3e.4e.5e.6e.7e.8e.9e.10
  e.11e.12e.13e.14Le.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14Me.1e.2e.3e.4e.5
  e.6e.7e.8e.9e.10e.11e.12e.13e.14Ne.1e.2e.3e.4e.5e.6e.7e.8e.9e.10e.11e.12e.13e.14
  Af.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Bf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10
  f.11f.12f.13f.14Cf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Df.1f.2f.3f.4f.5
  f.6f.7f.8f.9f.10f.11f.12f.13f.14Ef.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14
  Ff.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Gf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10
  f.11f.12f.13f.14Hf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14If.1f.2f.3f.4f.5
  f.6f.7f.8f.9f.10f.11f.12f.13f.14Kf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14
  Lf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Mf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10
  f.11f.12f.13f.14Nf.1f.2f.3f.4f.5f.6f.7f.8f.9f.10f.11f.12f.13f.14Ag.1g.2g.3g.4g.5
  g.6g.7g.8g.9g.10g.11g.12g.13g.14Bg.1g.2g.3g.4g.5g.6g.7g.8g.9g.10g.11g.12g.13g.14
  Cg.1g.2g.3g.4g.5g.6g.7g.8g.9g.10g.11g.12g.13g.14Dg.1g.2g.3g.4g.5g.6g.7g.8g.9g.10
  g.11g.12g.13g.14Eg.1g.2g.3g.4g.5g.6g.7g.8g.9g.10g.11g.12g.13g.14Fg.1g.2g.3g.4g.5
   {STRING 0 4000 STRING 4000 4000 STRING 0 4000 STRING
  4000 4000}
  ==== select-10.2 FAILED

  ==== select-11.1 TkSelPropProc procedure FAILED
  ==== Contents of test case:

      setup
      setupbg
      set selValue $longValue
      set selInfo ""
      selection handle -type TEST .f1 { handler TEST }
      selection handle -type STRING .f1 {
  reallyBadHandler .f1 STRING }
      set result ""
      set pass 0
      lappend result [dobg {selection get}]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  {PRIMARY selection doesn't exist or form "STRING" not
  defined} {.f1 STRING 0 400
  0 .f1 STRING 4000 4000 .f1 STRING 8000 4000 .f1 STRING
  12000 4000 .f1 STRING 160
  00 4000 .f1 STRING 0 4000 .f1 STRING 4000 4000}
  ---- Result should have been (exact matching):
  {selection owner didn't respond} {.f1 STRING 0 4000 .f1
  STRING 4000 4000 .f1 STR
  ING 8000 4000 .f1 STRING 12000 4000 .f1 STRING 16000
  4000 .f1 STRING 0 4000 .f1 
  STRING 4000 4000}
  ==== select-11.1 FAILED


tkt_uuid: 1591494fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 67. Unix Window Operations
priority: 1 Zero
foundin: obsolete: 8.5a5
resolution: None
title: unixSelect 1.4, 1.5, 1.6 failure on tk cvs head
comment:
  tk 8.5 cvs head built with solaris 9 sun c compiler and
  test suite display via exceed 10.0.0.12 on win xp

  unixSelect.test

  ==== unixSelect-1.4 TkSelGetSelection procedure: simple
  i18n text, iso2022 FAILED
  ==== Contents of test case:

      setupbg
      setup
      selection handle -type COMPOUND_TEXT -format
  COMPOUND_TEXT .  {handler COMPOUND
  _TEXT}
      selection own .
      set selValue \u00fc\u0444
      set selInfo {}
      set result [dobg {
          set x [selection get -type COMPOUND_TEXT]
          list [string equal \u00fc\u0444 $x]  [string
  length $x] [string bytelength 
  $x]
      }]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  1 2 4 {COMPOUND_TEXT 0 4000 COMPOUND_TEXT 0 4000}
  ---- Result should have been (exact matching):
  1 2 4 {COMPOUND_TEXT 0 4000}
  ==== unixSelect-1.4 FAILED

  ==== unixSelect-1.5 TkSelGetSelection procedure: INCR
  i18n text, iso2022 FAILED
  ==== Contents of test case:

      # This test is subtle.  The selection ends up
  getting fetched twice by
      # Tk:  once to compute the length, and again to
  actually send the data.
      # The first time through, we don't convert the data
  to ISO2022, so the
      # buffer boundaries end up being different in the
  two passes.

      setupbg
      setup
      selection handle -type COMPOUND_TEXT -format
  COMPOUND_TEXT .  {handler COMPOUND
  _TEXT}
      selection own .
      set selValue [string repeat x
  3999]\u00fc\u0444[string repeat x 3999]
      set selInfo {}
      set result [dobg {
          set x [selection get -type COMPOUND_TEXT]
          list [string equal  [string repeat x
  3999]\u00fc\u0444[string repeat x 3999
  ] $x]  [string length $x] [string bytelength $x]
      }]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  1 8000 8002 {COMPOUND_TEXT 0 4000 COMPOUND_TEXT 4000
  3999 COMPOUND_TEXT 7998 4000 C
  OMPOUND_TEXT 0 4000 COMPOUND_TEXT 4000 3999
  COMPOUND_TEXT 7998 4000 COMPOUND_TEXT 0
   4000 COMPOUND_TEXT 4000 3998 COMPOUND_TEXT 7997 4000}
  ---- Result should have been (exact matching):
  1 8000 8002 {COMPOUND_TEXT 0 4000 COMPOUND_TEXT 4000
  3999 COMPOUND_TEXT 7998 4000 C
  OMPOUND_TEXT 0 4000 COMPOUND_TEXT 4000 3998
  COMPOUND_TEXT 7997 4000}
  ==== unixSelect-1.5 FAILED

  ==== unixSelect-1.6 TkSelGetSelection procedure: simple
  i18n text, iso2022 FAILED
  ==== Contents of test case:

      setupbg
      setup
      selection handle -type COMPOUND_TEXT -format
  COMPOUND_TEXT .  {handler COMPOUND
  _TEXT}
      selection own .
      set selValue \u00fc\u0444
      set selInfo {}
      set result [dobg {
          set x [selection get -type COMPOUND_TEXT]
          list [string equal \u00fc\u0444 $x]  [string
  length $x] [string bytelength 
  $x]
      }]
      cleanupbg
      lappend result $selInfo

  ---- Result was:
  1 2 4 {COMPOUND_TEXT 0 4000 COMPOUND_TEXT 0 4000}
  ---- Result should have been (exact matching):
  1 2 4 {COMPOUND_TEXT 0 4000}
  ==== unixSelect-1.6 FAILED


tkt_uuid: 1591497fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 67. Unix Window Operations
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: None
title: unixWm test suite case 4,48,50 failure tk cvs head
comment:
  tk cvs head, built on solaris 9 with sun c compiler,
  and test suite display via exceed 10.0.0.12 on win xp.
  Window manager is Sun GNOME metacity.

  unixWm.test

  ==== unixWm-4.1 moving window while withdrawn FAILED
  ==== Contents of test case:

          wm withdraw .t
          sleep 200
          wm geom .t $geom
          update
          wm deiconify .t
          wm geom .t
      
  ---- Result was:
  100x150+57+80
  ---- Result should have been (exact matching):
  100x150+20+80
  ==== unixWm-4.1 FAILED

  ==== unixWm-4.3 moving window while withdrawn FAILED
  ==== Contents of test case:

          wm withdraw .t
          sleep 200
          wm geom .t $geom
          update
          wm deiconify .t
          wm geom .t
      
  ---- Result was:
  100x150+57+39
  ---- Result should have been (exact matching):
  100x150+0+0
  ==== unixWm-4.3 FAILED

  ==== unixWm-48.13 ParseGeometry procedure, resize
  causes window to move FAILED
  ==== Contents of test case:

      catch {destroy .t}
      toplevel .t -width 200 -height 200
      wm geom .t +0+0
      update
      wm geom .t -0-0
      update
      set x [winfo x .t]
      set y [winfo y .t]
      wm geometry .t 150x300
      update
      list [expr [winfo x .t] - $x] [expr [winfo y .t] -
  $y]  [winfo width .t] [winfo
   height .t]

  ---- Result was:
  0 0 150 300
  ---- Result should have been (exact matching):
  50 -100 150 300
  ==== unixWm-48.13 FAILED

  ==== unixWm-50.1 Tk_CoordsToWindow procedure, finding a
  toplevel, x-coords FAILED
  ==== Contents of test case:

      deleteWindows
      toplevel .t -width 300 -height 400 -bg green
      wm geom .t +40+0
      tkwait visibility .t
      toplevel .t2 -width 100 -height 80 -bg red
      wm geom .t2 +140+200
      tkwait visibility .t2
      raise .t2
      set x [winfo rootx .t]
      set y [winfo rooty .t]
      list [winfo containing [expr $x - 30] [expr $y +
  250]]  [winfo containing [expr
   $x - 1] [expr $y + 250]]  [winfo containing $x [expr
  $y + 250]]  [winfo containing
   [expr $x + 99] [expr $y + 250]]  [winfo containing
  [expr $x + 100] [expr $y + 250]
  ]  [winfo containing [expr $x + 199] [expr $y + 250]] 
  [winfo containing [expr $x +
   200] [expr $y + 250]]  [winfo containing [expr $x +
  220] [expr $y + 250]]

  ---- Result was:
  {} {} {} .t .t .t .t .t
  ---- Result should have been (exact matching):
  {} {} .t {} .t2 .t2 {} .t
  ==== unixWm-50.1 FAILED

  ==== unixWm-50.8 Tk_CoordsToWindow procedure, more
  basics FAILED
  ==== Contents of test case:

      catch {destroy .t}
      toplevel .t -width 400 -height 300 -bg green
      wm geom .t +0+0
      frame .t.f -width 200 -height 100 -bd 2 -relief raised
      place .t.f -x 100 -y 100
      frame .t.f.f -width 200 -height 100 -bd 2 -relief
  raised
      place .t.f.f -x 100 -y 0
      update
      set x [winfo rooty .t]
      set y [expr [winfo rooty .t] + 150]
      list [winfo containing [expr $x + 50] $y]  [winfo
  containing [expr $x + 150] $y
  ]  [winfo containing [expr $x + 250] $y]  [winfo
  containing [expr $x + 350] $y]  [w
  info containing [expr $x + 450] $y]
  ---- Result was:
  .t.f .t.f.f .t {} {}
  ---- Result should have been (exact matching):
  .t .t.f .t.f.f .t {}
  ==== unixWm-50.8 FAILED

  ==== unixWm-50.10 Tk_CoordsToWindow procedure, unmapped
  windows FAILED
  ==== Contents of test case:

      catch {destroy .t}
      toplevel .t -width 200 -height 200 -bg green
      wm geometry .t +0+0
      frame .t.f -width 150 -height 150 -bd 2 -relief raised
      place .t.f -x 25 -y 25
      tkwait visibility .t.f
      set result [list [winfo containing 100 100]]
      place forget .t.f
      update
      lappend result [winfo containing 100 100]

  ---- Result was:
  .t .t
  ---- Result should have been (exact matching):
  .t.f .t
  ==== unixWm-50.10 FAILED


tkt_uuid: 1591500fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 67. Unix Window Operations
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: None
title: tk cvs head HANG during test suite
comment:
  tk 8.5 cvs head build on sparc solaris 9 using sun c
  compiler and test suite display via exceed 10.0.0.12 on
  win xp.

  Note that this test sits until the test process is killed.

  window.test

  ==== window-2.9 Tk_DestroyWindow, Destroy bindings
          evaluated after exit FAILED
  ==== Contents of test case:

      set code [loadTkCommand]
      append code {
          toplevel .t1
          toplevel .t2
          update
          bind .t2 <Destroy> {puts "Destroy .t2" ; exit 1}
          bind .t1 <Destroy> {puts "Destroy .t1" ; exit 0}
          destroy .t2
      }
      set script [makeFile $code script]
      if {[catch {exec [interpreter] $script -geometry
  10x10+0+0} msg]} {
          set error 1
      } else {
          set error 0
      }
      removeFile script
      list $error $msg

  ---- Result was:
  1 {Destroy .t2
  Destroy .t1
  child killed: software termination signal}
  ---- Result should have been (exact matching):
  0 {Destroy .t2
  Destroy .t1}
  ==== window-2.9 FAILED


tkt_uuid: 1591501fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 99. Other
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: Duplicate
title: Ttk test suite failure in tk cvs head
comment:
  tk 8.5 cvs head built solaris 9 sun c compiler and test
  suite display via exceed 10.0.0.12 on win xp.

  ttk.test

  ==== ttk-6.9 Bad font spec in styles FAILED
  ==== Contents of test case:

      pack [ttk::label .l -text Hi!]
      event generate .l <Expose>
      update
      destroy .l
      set ::bgerror

  ---- Result was:
  unknown color name "badColor"
  ---- Result should have been (exact matching):
  unknown font style "Bogus"
  ==== ttk-6.9 FAILED


tkt_uuid: 1591704fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 16. [scrollbar]
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: None
title: PR 778511 needs to be reopened:Elide text scrolling doesn't
comment:
  PR 778511 (which has been closed) is still a problem. I see it in two 
  cases:
  - MacOS X 10.4.7 running Aqua Tcl/Tk 8.4.13.
  - Linux running Tcl/Tk 8.4.7

  PR 778511 include a demo script that works well (once you translate 
  the html entities). I will attach a translated version to speed up testing.

  -- Russell


tkt_uuid: 1592235fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 18. [text]
priority: 5 Medium
foundin: None
resolution: None
title: Add elide option to tag nextrange/prevrange
comment:
  The "tag nextrange" and "tag prevrange" commands are very handy for 
  finding tagged text, but a way to ignore elided text would be very 
  handy. Thus adding an "elide" option that is like the one for the search 
  command would be a big win.

  A clumsier alternative (though possibly quite useful for other tasks) 
  would be some easy way to determine what text in a range is visible or 
  elided. One could then feed the result from "tag nextrange" through 
  that command to decide which portions of the found range (if any) were 
  actually visible.


tkt_uuid: 1592667fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 46. Unix Fonts
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: None
title: tkUnixRFont.c fails to compile on Solaris
comment:
  platform sparc solaris 9, sun c compiler, tk cvs head
  (downloaded from activestate ftp site). 
  configured with
  with options \"'--prefix=/volws/lwv27/ldatae'
  '--enable-shared' '--enable-symbols' '--enable-stubs'
  '--enable-langinfo' 'CC=cc'\"



  cc -c -g   -KPIC -I/vol/tclsrcsol/tcl85/tk/unix/../unix
  -I/vol/tclsrcsol/tcl85/tk/u
  nix/../generic
  -I/vol/tclsrcsol/tcl85/tk/unix/../bitmaps
  -I/vol/tclsrcsol/tcl85/tcl
  /generic -I/vol/tclsrcsol/tcl85/tcl/unix
  -I/usr/openwin/include -DPACKAGE_NAME=\"tk
  \" -DPACKAGE_TARNAME=\"tk\" -DPACKAGE_VERSION=\"8.5\"
  -DPACKAGE_STRING=\"tk\ 8.5\" 
  -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1
  -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 
  -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
  -DHAVE_STRINGS_H=1 -DHAVE_INT
  TYPES_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1
  -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -
  D_POSIX_PTHREAD_SEMANTICS=1 -D_THREAD_SAFE=1
  -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DT
  CL_THREADS=1 -D_REENTRANT=1
  -D_POSIX_PTHREAD_SEMANTICS=1 -DTCL_SHLIB_EXT=\".so\" -D
  TCL_CFG_DEBUG=1 -DTCL_WIDE_INT_TYPE=long\ long
  -DHAVE_STRUCT_DIRENT64=1 -DHAVE_STRU
  CT_STAT64=1 -DHAVE_OPEN64=1 -DHAVE_LSEEK64=1
  -DHAVE_TYPE_OFF64_T=1 -DWORDS_BIGENDIA
  N=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1
  -Dstrtod=fixstrtod -DHAVE_PW_GECOS=1
   -DHAVE_XSS=1 -DHAVE_XFT=1      -DTCL_NO_DEPRECATED 
  -DUSE_TCL_STUBS  -I/usr/openwi
  n/include  
  /vol/tclsrcsol/tcl85/tk/unix/../unix/tkUnixRFont.c
  "/usr/openwin/include/X11/Xft/Xft.h", line 35: cannot
  find include file: <ft2build.
  h>
  "/usr/openwin/include/X11/Xft/Xft.h", line 36: bad file
  specification
  "/usr/openwin/include/X11/Xft/Xft.h", line 53: syntax
  error before or at: _XftFTlib
  rary
  "/usr/openwin/include/X11/Xft/Xft.h", line 53: warning:
  old-style declaration or in
  correct type for: _XftFTlibrary
  "/usr/openwin/include/X11/Xft/Xft.h", line 87: syntax
  error before or at: FT_UInt
  "/usr/openwin/include/X11/Xft/Xft.h", line 87: cannot
  recover from previous errors
  cc: acomp failed for
  /vol/tclsrcsol/tcl85/tk/unix/../unix/tkUnixRFont.c
  gmake: *** [tkUnixRFont.o] Error 2


tkt_uuid: 1595773fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 03. [*button] and [label]
priority: 5 Medium
foundin: obsolete: 8.4.14
resolution: Duplicate
title: button flash causes tcl to fail on Windows
comment:
  Using tcl 8.4 and tcl 8.5, I've tried the following
  code, which works on Solaris:

  package require Tk
  pack [button .b]
  for {set i 1} {$i <= 1000} {incr i} {
  .b flash
  }

  On Solaris, the button flashes 1000 times. On Windows,
  the tk console quits responding, with no apparent flashing.

  If Tk doesn't support flash on Windows, perhaps the man
  pages where flash is mentioned could be updated to
  mention that limitation?


tkt_uuid: 1596662fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 10. Generic Menus
priority: 5 Medium
foundin: None
resolution: None
title: Menu behaviour at screen bottom
comment:
  If a Tk toplevel is moved near the bottom of the screen and a menu item is selected from the menubar with a short mouse click, and if the menu pops up under the pointer, then a menu item is accidentaly selected. This can be easily reproduced by any Tk script using menus, e.g. the widget demonstration: open the "Menus and cascades" demonstration, move the created window near to the screen bottom, and click on any of the menus.

  Other toolkits (i.e. Gtk) seem to solve this problem by popping the menu *above* the pointer in these situations.

  Attached is a naive Perl/Tk hack around Tk::Menu::post to implement just this behaviour. It would be nice if tkMenuDraw.c:TkPostSubmenu had something similar.

  Regards,
      Slaven


tkt_uuid: 1597242fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 85. Win Build
priority: 5 Medium
foundin: None
resolution: Fixed
title: TCL_PATCHLEVEL not set in Makefile.vc
comment:
  When using Makefile.vc to build Tk, package require Tk fails in a tclsh. I have built Tcl 8.5a6 and Tk 8.5a6 thus:

  Build Tcl

  nmake -f Makefile.vc OPTS=threads INSTALLDIR=c:\tcl
  nmake -f Makefile.vc OPTS=threads INSTALLDIR=c:\tcl install

  build Tk
  nmake -f Makefile.vc OPTS=threads INSTALLDIR=c:\tcl TCLDIR=..\..\tcl
  nmake -f Makefile.vc OPTS=threads INSTALLDIR=c:\tcl TCLDIR=..\..\tcl install

  tclsh85t

  % package require Tk
  can't find package Tk
  %

  After building like this the generated pkgIndex.tcl contains no patchlevel because of the undefined TCL_PATCHLEVEL in the Makefile.vc:

  if {![package vsatisfies [package provide Tcl] 8.5]} { return }
  if {[package vcompare [package provide Tcl] 8.5] != 0} { return }
  package ifneeded Tk 8.5 [list load [file join $dir .. .. bin tk85t.dll] Tk]

  Everything loads correctly if TCL_PATCHLEVEL is set to a6 when building Tk. This results in the following pkgIndex.tcl

  if {![package vsatisfies [package provide Tcl] 8.5]} { return }
  if {[package vcompare [package provide Tcl] 8.5a6] != 0} { return }
  package ifneeded Tk 8.5a6 [list load [file join $dir .. .. bin tk85t.dll] Tk]

  After which, Tk loads succesfully from tclsh:

  > tclsh85t
  % package require Tk
  8.5a6
  %


tkt_uuid: 1599877fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 13. Win Menus
priority: 8
foundin: obsolete: 8.4.13
resolution: Fixed
title: error using alt-key Windows menus with multibyte characters
comment:
  error in Windows menus with multibyte characters, like japanese strings, e.g: 名前を付けて保存(&A) 

  if using the character index, the submenu will underline the right letter, but it doesn't work, and if using the byte intex, it works (using <alt>-character), but the appropiated character won't be underlined. 

  this error is located at tkWinMenu.c (at least until tcl 8.4.13)
  in the procedure
  TkWinHandleMenuEvent(phwnd, pMessage, pwParam, plParam, plResult)
  case WM_MENUCHAR:
      
  instead 
  label[underline]
  *Tcl_UtfAtIndex(label, underline) 
  must be used for multibyte character strings


  escolano@cimne.upc.es


tkt_uuid: 1600621fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 11. Aqua Menus
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: Duplicate
title: icon display in menu
comment:
  the following example will not display the icon in the menuentry.
  it shows only the text "(image)" and removes also the item text of the menuentry.
  this example works fine on linux and windows but not on the mac.


  package require Img

  image create photo p_quit -data {
    iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAZi
    S0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALiAAAC4gB5Y4pSQAAAAd0SU1FB9EMHwAdGDQ8O6gA
    AALvSURBVHicTZJfaNZlFMc/55zn+e337n3f2eZ6l272blQUG27lGoQW2YV0lXfhRXrXBhZE
    kFdhXQRFBUWQRcyorCDCbqIUjAIp+rNESxNdNGnpmHM2W25ue3/b73m6eMfocA6cm8+XL+d8
    BeBQWzoYs3y4ua+HsFQjApLn5ESIAfIIBEIOmghzYxP4xoah3ZPzB+VQWzrY1NU13PvcE1z5
    +hiSpogB6lCDiGBOCKpgivOehsp6zrzwIfncjSH5oNnH+z96jXOvvkRycwXxhjmPOKVyzzZU
    jaujJ1HzqDMwQ52nfEeVk/vexN3U283fP31P0tqKFQsUyi30791P2rOV/9f86eOc//w9VrJF
    xIx8YYF0Qysu1jLi8gqSeArlFrYdOApAbXSEiRPHaWhaR8eDOyn1bWeg+15Ovf40y1mNiBBr
    GRoB8YI5T//e/QBc+uwAP7/9PJXNAxQrHfzw8pNMHn0ffInbduxCnEdFIUZU8hzUUWq/lbRn
    K7XREca//QJxjnLnXTR39yPOcXHkGMxdYd2WHYgpUZUQApoTUYPixirAGixmIAIIYoaYMfPb
    CADltg7EeQgBJQYigqrVr6W2BoDU2wxxCaICgC81I+pWBfKIOWHx2hQA7QMPrQIOBBCpw6a0
    9NY/szhzGa9GHnIUAkGVhZlpmJ2k1LedSs8AYsbytWmuXziLmFK972FoXE/252nUp+SrDlzI
    WQ2H8eu7L3L3vre4fc+zVMfPMHV2BFFhy+5nsPZuIGP8uyPgHOa0LqCJooA4x+LsNKdeeZzN
    u57Cd/ayqbN3LUhh6g/GvjrMcp6RFJvIV5ZAwc2NXaLQcQvZP/N121mNXz55g6RUpqV6JzjP
    9YkLqE/BOXxjiWK1i4tffkq+BPZoS+Pk1R/PP7Jp5wNY4rBCAz5NwAm1xX+p3ZjFOyOYYE6x
    xhKXvznC7+8cJmkqDwnAxxvLgytLS8PphlZiLYMYCSHA6uQhX9sjgZApSVNx6LG/Zg/+B3yO
    Cy8hh4B0AAAAAElFTkSuQmCC
  }

  set mb .menubar
  menu $mb
  . config -menu $mb

  set mn $mb.file
  $mb add cascade -label [msgcat::mc File] -menu $mn -underline 0
  menu $mn -tearoff 0

  $mn add command -label [msgcat::mc Quit] -underline 1 -state normal \
    -image p_quit -compound left -command Gpx::Quit -accelerator [msgcat::mc Ctrl]+q


tkt_uuid: 1601494fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 50. [pack]
priority: 5 Medium
foundin: obsolete: 8.4.14
resolution: Invalid
title: Strange behavior in pack and configure
comment:
  The behavior of the packer is extremely odd when a packed expandable widget has its geometry reconfigured.  What I had intended to do in the following code was to make the .yes button's current width 200 pixels, but that's not anything close to what happens.  Run the attached script to see for yourself.  I was using Tcl/Tk 8.4.14.


tkt_uuid: 1601982fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 74. Application Embedding
priority: 6
foundin: obsolete: 8.4.15
resolution: Duplicate
title: Tk console shows up in embedded use
comment:
  The code in tkMacOSXInit.c:TkpInit for controlling whether the console shows (and we are tcl_interactive) says:

  /*
   * If we don't have a TTY and stdin is a special character file of
   * length 0, (e.g. /dev/null, which is what Finder sets when double
   * clicking Wish) then use the Tk based console interpreter.
   */

  But this appears to be too aggressive for the use case of embedding Tk in apps.  For Windows, the console creation is only done in winMain.c (for wish).  I guess OS X does it in TkpInit because it shares code with the unix branch.  However, this then does leak into Tk usage as a library.

  I'm a bit stumped as to where the best place to move it would be, without propagating some magic information around.


tkt_uuid: 1602537fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 9 Immediate
foundin: obsolete: 8.5a6
resolution: Fixed
title: panic on [$text replace end-1l end]
comment:
  % package require Tk
  % pack [text .t]
  % .t insert 0.0 text_with_newline\n
  % .t replace end-1l end kaboom

  [replace end-1l end] causes "TkBTreeLinesTo couldn't find line; Aborted" whenever the text widget contains more than one line.


tkt_uuid: 1602955fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 44. Generic Fonts
priority: 5 Medium
foundin: TIP Implementation
resolution: Accepted
title: Forthcoming TIP on [font actual]
comment:
  The attached patch is a reference implementation for a TIP that I am submitting on [font actual], adding
  a character argument and returning the font used
  to render that character, rather than the base font.


tkt_uuid: 1603501fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 46. Unix Fonts
priority: 9 Immediate
foundin: obsolete: 8.5a6
resolution: Fixed
title: AA fonts not rendering even though --enable-xft is default
comment:
  AA fonts not rendering even though xft support is default in 8.5a6. Supplying --enable-xft on the ./configure line enables a build that renders AA fonts properly. I note that the compile output for the failed build only has -DHAVE_LIBXFT=1 but not -DHAVE_XFT=1 as well.

  -Steve


tkt_uuid: 1608046fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 09. [listbox]
priority: 7 High
foundin: obsolete: 8.4.11
resolution: Fixed
title: listbox itemconfigure slowness
comment:
  On comp.lang.perl.tk there was a report that
  Tk::Listbox::itemconfigure gets much slower if the number of listbox increases.

  It seems that this problem also affects Tcl/Tk.

  Please see http://groups.google.com/group/comp.lang.perl.tk/browse_frm/thread/599e8df5fcb12c2b/7c7418b3f6e4a7cc#7c7418b3f6e4a7cc
  for the discussion and a possible solution for the problem, which might also be applicable to Tcl/Tk.

  Regards,
      Slaven


tkt_uuid: 1609316fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 69. Events
priority: 5 Medium
foundin: obsolete: 8.4.15
resolution: Fixed
title: SCIM breaks [event generate]
comment:
  I'm testing for the first time on
  a Fedore Core 6 system with
  KDE 3.5.5  I build from the sources
  on the core-8-4-branch tip and
  many, many tests fail.  One common
  feature in the failing tests is the
  use of [event generate].  It appears
  to not be working at all.

  For example:

  ==== bind-16.16 ExpandPercents procedure FAILED
  ==== Contents of test case:

      setup
      bind .b.f <Key> {set x "%k"}
      set x none
      event gen .b.f <Key> -keycode 146
      set x

  ---- Result was:
  none
  ---- Result should have been (exact matching):
  146
  ==== bind-16.16 FAILED


tkt_uuid: 1609328fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 17. [spinbox]
priority: 5 Medium
foundin: obsolete: 8.4.15
resolution: None
title: focus test failures
comment:
  Fedora Core 6 / KDE 3.5.5:

  failing tests:

  ==== spinbox-19.8 spinbox widget validation FAILED
  ==== Contents of test case:

      focus -force .e
      # update necessary to process FocusIn event
      update
      set ::vVals

  ---- Result was:
  .e -1 -1 abcd abcd {} focus focusout
  ---- Result should have been (exact matching):
  .e -1 -1 abcd abcd {} focus focusin
  ==== spinbox-19.8 FAILED


  ==== spinbox-19.10 spinbox widget validation FAILED
  ==== Contents of test case:

      focus -force .e
      # update necessary to process FocusIn event
      update
      set ::vVals

  ---- Result was:
  .e -1 -1 abcd abcd {} all focusout
  ---- Result should have been (exact matching):
  .e -1 -1 abcd abcd {} all focusin
  ==== spinbox-19.10 FAILED


  ==== spinbox-19.14 spinbox widget validation FAILED
  ==== Contents of test case:

      focus -force .e
      # update necessary to process FocusIn event
      update
      set ::vVals

  ---- Result was:
  .e -1 -1 abcd abcd {} focusout focusout
  ---- Result should have been (exact matching):

  ==== spinbox-19.14 FAILED


tkt_uuid: 1609465fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 9 Immediate
foundin: obsolete: 8.4.14
resolution: Works For Me
title: Zero Page error in tkTextDisp.c
comment:
  Hi,
  I have a crash in my TCL/Tk application because of a corrupted pointer in tkTextDisp.c.  We get this crash on UNIX, when we use a text widget to show our log file.
  The exact location of the corrupted pointer is line 2279 in tkTextDisp.c
   
  Below is source code snippet:
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      /*
       * First recompute what's supposed to be displayed.
       */
      
      UpdateDisplayInfo(textPtr);
      dInfoPtr->dLinesInvalidated = 0;
      
      /*
       * See if it's possible to bring some parts of the screen up-to-date
       * by scrolling (copying from other parts of the screen).
       */
      
      for (dlPtr = dInfoPtr->dLinePtr; dlPtr != NULL; dlPtr = dlPtr->nextPtr) {   ----------------------> dlPtr is corrupted after many many iterations
          register DLine *dlPtr2;
          int offset, height, y, oldY;
          TkRegion damageRgn;
      
          if ((dlPtr->oldY == -1) || (dlPtr->y == dlPtr->oldY)
                  || ((dlPtr->oldY + dlPtr->height) > dInfoPtr->maxY)) {
              continue;
          }
      
  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
       
  We are filtering (i.e., hiding, raising) a lot of messages in our text widget using 'elide' option and 'tag raise' command.
  Has anybody seen this kind of problem before ?
  The version of Tk we are using is 8.4.14
   
  Thanks,
   
  Kishore Kollu
  kishore_kollu@mentor.com 
  Mentor Graphics


tkt_uuid: 1609616fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 84. Unix Build
priority: 5 Medium
foundin: None
resolution: Fixed
title: reject xft cleanly
comment:
  Attached patch makes sure
  to clear the
  XFT_CFLAGS and XFT_XLIBS
  values when configure
  testing indicates xft
  support is broken in some way.

  This was needed to build
  Tk on my Solaris system.


tkt_uuid: 1610236fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 5 Medium
foundin: None
resolution: None
title: beware FC autoconf fork
comment:
  Not so much a bug as a point
  of information.

  On Fedora 6 system, using
  autoconf-2.59-12, a run of
  autoconf on tk/unix/configure.in
  does not produce tk/unix/configure.

  It seems the FC has a forked version
  of autoconf that supplies a different
  expansion of AC_PATH_X.

  Can anyone comment on whether the
  differences are important enough that
  we need to specify which fork of
  autoconf is to be used to produce
  the tk/unix/configure file?


tkt_uuid: 1611359fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 05. Canvas Items
priority: 8
foundin: TIP Implementation
resolution: Accepted
title: TIP#119: Rotated text for canvas
comment:
  This patch is a partial implementation of TIP#119, being for UNIX/X11 only. Needs Windows and OSX/Aqua implementations.

  Thanks to Simon Geard for recovering the patch (which had been lost) and upgrading it to work with 8.5. :-)

  Includes copy of xvertext 5.0; I think the license is Tcl/Tk-compatible.


tkt_uuid: 1611821fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 37. [tk_get*File]
priority: 6
foundin: obsolete: 8.4.14
resolution: Accepted
title: tk_getSaveFile -initialfile odd behavior
comment:
  If you do:

  set someRealFile /Library/Tcl/Tclapplescript/pkgIndex.tcl
  tk_getSaveFile -initialfile $someRealFile

  the dialog converts the / to -.  The workaround is to separate file and dir segments for -initialdir and -initialfile, but that is not the way Tk docs it, so it really is a Tk/Aqua bug.


tkt_uuid: 1613519fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 83. Mac OS X Build
priority: 5 Medium
foundin: obsolete: 8.4.14
resolution: None
title: Changing Input Language Using Shortcut Doesn't Work
comment:
  Changing the input language using the global shortcut set in system 
  preferences, doesn't work in any Tk application running in the Wish Shell. 
  This issue was posted by a user of aMSN (CF. http://
  forums.cocoaforge.com/viewtopic.php?t=8763).

  [NB]Moved from the TclTkAquaBI tracker.[/NB]


tkt_uuid: 1614032fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 37. [tk_get*File]
priority: 8
foundin: obsolete: 8.5b2
resolution: Out of Date
title: tk_getOpenFile (linux) can't select files and dirs
comment:
  Since tk_getOpenFile -multiple 1 can select simultaneously files and directory entries, I would expect it to return the list of the selected items.
  Instead:

  -on win98/winxp it returns only the file items

  -on linux (FC5, tk 8.4.13-1.1) if, say, path1/file1 and path1/dir1 are selected [path1 being the directory whose contents are shown in the widget], it fails, first complaining about a nonexisting path1/dir1/file1 in an untitled messagebox, then redisplaying the chooser widget on dir1 (as for multiple 0/ open when dir1 is selected)

  If I have 2 files and one dir selected, I manage to get as the result the two filenames plus the name of one file within dir1, or, at times, the following Application Error:

  can't read "itemList()": no such element in array
  can't read "itemList()": no such element in array
      while executing
  "foreach {iTag tTag text serial} $itemList($rTag) {
  break
      }"
      (procedure "::tk::IconList_Get" line 5)
      invoked from within
  "::tk::IconList_Get $data(icons) $item"
      (procedure "::tk::dialog::file::ActivateEnt" line 18)
      invoked from within
  "::tk::dialog::file::ActivateEnt $w"
      (procedure "::tk::dialog::file::OkCmd" line 18)
      invoked from within
  "::tk::dialog::file::OkCmd .__tk_filedialog"
      invoked from within
  ".__tk_filedialog.f2.ok invoke"
      ("uplevel" body line 1)
      invoked from within
  "uplevel #0 [list $w invoke]"
      (procedure "tk::ButtonUp" line 22)
      invoked from within
  "tk::ButtonUp .__tk_filedialog.f2.ok"
      (command bound to event)


tkt_uuid: 1614362fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 68. Win Window Operations
priority: 5 Medium
foundin: None
resolution: Fixed
title: Patch to call Tcl_Panic is button resources are missing
comment:
  This patch invokes Tcl_Panic is button resources
  that Tk expects to find can't be located. This
  should never happen.


tkt_uuid: 1615427fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 31. Cursor Names
priority: 5 Medium
foundin: None
resolution: Accepted
title: Add "none" to supported cursor list (Win32/Unix)
comment:
  The attached patch defines a cursor named "none",
  it makes the pointer invisible. This is for
  presentation application that need to hide
  the cursor for a period of time.

  This wiki shows that users need this functionality.

  http://wiki.tcl.tk/9471

  But, most users are not going to make Win32,
  Unix, and Mac cursors. Tk should define this
  as a built in cursor and it must work the
  same way on all platforms.


tkt_uuid: 1615592fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 68. Win Window Operations
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: None
title: Wish console misses first fronting click
comment:
  When the Wish application is started, the Tk toplevel window appears in front of the Console window.  It ought to be possible to click anywhere in the visible part of the Console window in order to raise the Console in front of the Tk toplevel.  In fact, the only part of the Console window where the click is effective is the title bar.

  After the Console has been brought to the front by clicking on the title bar, subsequent clicks on any visible part of either of the windows will serve to raise the window correctly.

  There was exactly the same problem with the Wish application on MacOS X corrected recently.  

  (This is reported using Windows XP SP2 and ActiveTcl 8.5.0.0.272633, but I believe it is a long-standing problem.)


tkt_uuid: 1616245fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 67. Unix Window Operations
priority: 5 Medium
foundin: None
resolution: None
title: segmentation fault after call to XOpenIM
comment:
  We were able to fix a segmentation fault by commenting
  out the call to OpenIM (tkUnixEvent.c),
  in OpenIM there's a call to the function XOpenIM from the
  X11 library (libX11.a) that caused the segmentation fault
  on a Fedora Core 3 (64 bit) machine with an amd processor.
  Unfortunately we don't own the machine and don't have
  root acces on it, so we can't tell if there's an 'X Input Method' server running on that machin\
  e.


tkt_uuid: 1616446fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 5 Medium
foundin: obsolete: 8.4.11
resolution: Invalid
title: ns2 installation
comment:
  i try to install ns2-allinone-2.29 but i got the error tk8.4.11 make failed...



  narayananbest@gmail.com


tkt_uuid: 1618604fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 03. [*button] and [label]
priority: 8
foundin: obsolete: 8.5a6
resolution: Fixed
title: Runtime Check failure on Win/VC8 - uninitialized locals
comment:
  The TkpDisplayButton function in "win/tkWinButton.c", near line 469 defines and uses the "width" and "height" variables, which in some cases never get properly initialized before being used.  This results in a RTC (runtime check) failure on Windows with VC8.

      /*
       * Display image or bitmap or text for button.
       */

      if (butPtr->image != None) {
  Tk_SizeOfImage(butPtr->image, &width, &height);
  haveImage = 1;
      } else if (butPtr->bitmap != None) {
  Tk_SizeOfBitmap(butPtr->display, butPtr->bitmap, &width, &height);
  haveImage = 1;
      }
      imageWidth = width; // <-- was never initialized
      imageHeight = height; // <-- was never initialized

  In the above code, when both the image and bitmap fields of the button are NULL, width and height never receive a valid value.  Assigning imageWidth and imageHeight from them will result in a runtime check error on Windows with the VC8 compiler.

  Changing the following code near line 352 from:

  int width, height, haveImage = 0, haveText = 0, drawRing = 0;

  to the following code seems to fix the issue:

  int width = 0, height = 0, haveImage = 0, haveText = 0, drawRing = 0;

  It appears that "unix/tkUnixButton.c" has the same issue (which may cause something more nasty than a runtime check error).


tkt_uuid: 1620826fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 11. Aqua Menus
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: Fixed
title: The event <<MenuSelect>> is never fired on Mac OSX
comment:
  Hi guys,

  We've the next problem using tk_popup.

  Menu:  The event <<MenuSelect>> is never fired on Mac OSX

  Here is the description:

  Do:
      Run the script. Press the button, and move the mouse over the cascade element.


  set ::menu1 [menu .menu1 -tearoff 0]
  set ::menu2 [menu .menu2 -tearoff 0]

  proc fill_menu2 {menu} {
      if {[$menu type active] == "cascade"} {
          $::menu2 add command -label "I am fill!!!" -state disabled
      }
  }

  proc show_popup {} {
      $::menu1 add command -label "This is menu 1, select the cascade" -state disabled
      $::menu1 add cascade -label "This is cascade, that will be filled when the mouse enters" -menu $::menu2
      bind $::menu1 <<MenuSelect>> "fill_menu2 %W"
      tk_popup $::menu1 [winfo rootx .b] [winfo rooty .b]
  }

  button .b -text "press me for popup" -command "show_popup"
  pack .b


  Happens:
      In Mac OSX, the cascade is never displayed. The reason, the <<MenuSelect>> is never fired.

  Expected:
     That the <<MenuSelect>> event is fired. In Windows, and Linux, is working properly.


  Another issue: In Windows, and Linux, we can have images inside the tk menu. In Mac, if an image is specified, it doesn't appear, and  a text like this:<<image>> is placed instead.


  Best Regards,
  Carlos Tasada


tkt_uuid: 1622189fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 67. Unix Window Operations
priority: 8
foundin: obsolete: 8.4.4
resolution: None
title: XIM does not work with ATOK12 on Solaris8
comment:
  I use ATOK12 on Solaris for converting Japanese character.But it does not work 
  on tcl/tk 8.4.4 and 8.4.13.

  When I convert Japanese character to KANJI on a text area, input server(ATOK12) 
  makes an auxiliary area(an auxiliary window) for selecting from some KANJI. But 
  nothing can be input on the text area after selecting a KANJI .

  When ATOK12 makes an auxiliary-window, tck/tk receives a FocusOut event.
  After selecting a KANJI on the auxiliary-window, tck/tk receives A KeyPress 
  event with a KeyCode of zero and then receives a FocusIn event.

  In this case I thought event order should be a FocusOut event, a FocusIn event and then 
  a KeyPress event according to Xlib specifications. So I asked Sun Microsystems 
  which order is correct.

  (A) a FocusOut event -> a FocusIn event -> KeyPress event with a KeyCode of zero 
  (B) a FocusOut event -> a KeyPress event with a KeyCode of zero -> FocusIn event 

  Their answer was "Both are OK.". This means Tcl/tk could have same problem not only 
  ATOK12 but also other input servers.


tkt_uuid: 1622919fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: Fixed
title: man text needs clarification
comment:
  Under the "search" subcommand, man text currently says: 
  "use the $ feature in regular expressions to match the end of a line."

  This should be changed to 
  "use the $ feature in regular expressions to match the end of a line, and ^ to match the beginning of a line."

  I've tested that it works, but the documentation should report that fact too.


tkt_uuid: 1623257fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 35. [tk_dialog]
priority: 7 High
foundin: obsolete: 8.4.14
resolution: Duplicate
title: selecting file from file dialog shuts down application
comment:
  In windows XP, selecting a file on the Desktop using a tk file dialog will shut down the application. I found this bug using Python and the tkinter module but can reproduce this using wish.exe.

  to repeat:
  1) start DOS console and cd to C:\Tcl\demos\Tk8.4
  2) at prompt enter: wish widget.tcl  - the Widget Demonstration Window opens
  3) scroll to Common Dialogs and select 2. File selection dialog
  4) click Browse button in file selection dialog
  5) click Desktop button on left hand side of dialog
  6) double click any .txt file - the file path is entered in entry field
  7) step 4 and 5 is repeated so, click browse button again
  8) click Desktop button again
  9) just move cursor over a .txt file 

  The dialog and whole application shuts down.  Note: I could not reproduce this on Win 2000.


tkt_uuid: 1623588fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 99. Other
priority: 9 Immediate
foundin: obsolete: 8.5a6
resolution: Fixed
title: tk_getOpenFile crashes on Linux 64-bit
comment:
  Hi,

  In tk_getOpenFile, after double-clicking on a file, the application freezes, making it impossible as well to access the Gnome desktop or any other X application, until it is killed remotely.

  Running with GDB, this is what I get (see below for more info)

  #0  0x00000000004abcc0 in TclBN_mp_mul_d ()
  #1  0x00000000004aa33d in TclBN_mp_div ()
  #2  0x000000000049bfda in TclDoubleDigits ()
  #3  0x00000000004a3db8 in Tcl_PrintDouble ()
  #4  0x0000002a97ca2e31 in Tk_CanvasObjCmd () from /tmp/tclN0nroo
  #5  0x000000000042a7f4 in TclEvalObjvInternal ()
  #6  0x000000000045ea8e in TclExecuteByteCode ()
  #7  0x000000000045d5ab in TclCompEvalObj ()
  #8  0x000000000042bb0b in TclEvalObjEx ()
  #9  0x000000000043c0a7 in Tcl_SwitchObjCmd ()
  #10 0x000000000042a7f4 in TclEvalObjvInternal ()
  #11 0x000000000045ea8e in TclExecuteByteCode ()
  #12 0x000000000045d5ab in TclCompEvalObj ()
  #13 0x000000000049375e in TclObjInterpProcCore ()
  #14 0x00000000004933ac in TclObjInterpProc ()
  #15 0x000000000042a7f4 in TclEvalObjvInternal ()
  #16 0x000000000045ea8e in TclExecuteByteCode ()
  #17 0x000000000045d5ab in TclCompEvalObj ()
  #18 0x000000000049375e in TclObjInterpProcCore ()
  #19 0x00000000004933ac in TclObjInterpProc ()
  #20 0x000000000042a7f4 in TclEvalObjvInternal ()
  #21 0x000000000042af06 in TclEvalEx ()
  #22 0x000000000042ac8f in Tcl_EvalEx ()
  #23 0x0000002a97c640b8 in Tk_BindEvent () from /tmp/tclN0nroo
  #24 0x0000002a97c69106 in TkBindEventProc () from /tmp/tclN0nroo


  This is with latest CVS HEAD (it also happens with 8.5a4)
  It only occurs on Linux 64bit, Linux 32bit is ok.
  This was compiled on Debian:

  Linux 2.6.12-1-em64t-p4-smp #1 SMP Wed Sep 28 03:50:13 CEST 2005 x86_64 GNU/Linux

  And tested on that Debian and a RHEL3:

  Linux localhost.localdomain 2.4.21-47.EL #1 SMP Wed Jul 5 20:30:36 EDT 2006 x86_64 x86_64 x86_64 GNU/Linux

  I have searched c.l.t and bug tracker, but was unable to find a similar problem. Any ideas? what else can I do to help troubleshoot?


tkt_uuid: 1623922fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 68. Win Window Operations
priority: 5 Medium
foundin: None
resolution: Out of Date
title: Add wm attribute -blankscreen (TIP pending)
comment:
  This patch adds the -blankscreen attribute for the
  Win32 wm command. This attribute is set to 0 to
  disable the screen saver and APM for the system.
  This is needed for display applications that
  require the screen but don't expect user input
  for a period of time. This patch will be included
  in a TIP shortly.


tkt_uuid: 1631287fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 86. Test Tools
priority: 5 Medium
foundin: obsolete: 8.4.14
resolution: Duplicate
title: tk 8.4.14 - nmake test error - winDialog.test failed
comment:
  I've got exactly the same problem as described in
    [ 1567927 ] tk 8.4.13 "make test" fails in MinGW/MSys

  I have compiled tk 8.4.14 with Visual C++ 2005 - Express Edition.
  When I run "nmake -f makefile.vc test", the tests halt while executing "winDialog.test". A window and a file chooser remain opened. Even if I close these windows, nothing happens. I must press Ctrl-C tio stop the tests.

  Marie


tkt_uuid: 1633089fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: Works For Me
title: tk crash on windows - load related
comment:
  Tested on win2k using Tcl/Tk cvs checkout from 2006-12-06

  The following script causes a tclsh or wish process to exit without displaying any error message.

  package require Tk
  package require BWidget
  NoteBook .n -side top
  .n insert end tab1 -text tab1
  pack .n -side top -fill both -expand 1
  wm state . zoomed


tkt_uuid: 1634958fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 05. Canvas Items
priority: 5 Medium
foundin: None
resolution: None
title: Add cubic bezier curves to canvas primitives
comment:
  Currently there is no easy way to draw cubic bezier splines on Tk canvas (having two different control points for each segment).
  Smoothing lines or polygons of course does not give it - it gives only quadratic bezier splines.
  Cubic splines are the Postscript drawing primitives not supported by Tk canvas. 
  It would be very useful for creating applications operating on vector graphics.


tkt_uuid: 1637923fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 30. Color Names
priority: 5 Medium
foundin: None
resolution: None
title: Add [tk colors] subcommand (TIP pending)
comment:
  The attached patch will add a subcommand to tk [tk colors] which will return a list of all symbolic color names recognised by Tk as defined in xcolors.c

  The patch contains an updated tk.test an updated tk.man (not tested) and the sourcecode changes needed to add the command. (tested on Win32 where tk.test passes)


tkt_uuid: 1639318fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 99. Other
priority: 8
foundin: obsolete: 8.4.14
resolution: Invalid
title: tk 8.4.14 - error in TCLLIBPATH
comment:
  I am using Tcl-Tk 8.4.14 and Tix 8.4.2.

  I call "wish" with a program which requires the package Tix. I set TCLLIBPATH so that "wish" can find Tix.

  If I put a relative path to Tix in TCLLIBPATH and execute "wish" in the correct directory everything is ok. 

  But if I put an abolute path to Tix in TCLLIBPATH, "wish" cannot find Tix except if TCLLIBPATH ends with a "/".

      setenv TCLLIBPATH relative/path/to/Tix   -> ok
      setenv TCLLIBPATH /absolute/path/to/Tix  -> cannot find Tix
      setenv TCLLIBPATH /absolute/path/to/Tix/ -> ok

  Since usually variable does not end with "/", it took me quite a long time before I find a solution. It would be good to correct the code so that TCLLIBPATH can end without "/".

  Marie Vidal
  marie.vidal@inria.fr


tkt_uuid: 1639824fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 21. [panedwindow]
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: None
title: Setting -sashwidth to 0 makes wish abort on X11
comment:
  In X11, setting the -sashwidth option of panedwindow to 0 makes
  wish abort with a bad X request when Tk try to create a proxy window.
  Apparently in X is invalid to create a window of width 0.

  emiliano@erizo:~$ wish8.4 
  % pack [panedwindow .pw -sashwidth 0]
  % .pw add [label .l1 -text Hello]
  % .pw add [label .l2 -text world]
  % 

  and after resizing the pane I get:

  X Error of failed request:  BadValue (integer parameter out of range for operation)
    Major opcode of failed request:  1 (X_CreateWindow)
    Value in failed request:  0x0
    Serial number of failed request:  232
    Current serial number in output stream:  234
  emiliano@erizo:~$

  The same problem occurs if the proxy window is created by the script:

  emiliano@erizo:~$ wish8.4 
  % pack [panedwindow .pw -sashwidth 0]
  % .pw add [label .l1 -text Hello]
  % .pw add [label .l2 -text world]
  % .pw proxy place 0 0
  X Error of failed request:  BadValue (integer parameter out of range for operation)
    Major opcode of failed request:  1 (X_CreateWindow)
    Value in failed request:  0x0
    Serial number of failed request:  152
    Current serial number in output stream:  154
  emiliano@erizo:~$


tkt_uuid: 1640073fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 02. Appearance
priority: 9 Immediate
foundin: obsolete: 8.5a6
resolution: Fixed
title: change ttk_* to ttk:: in man pages
comment:
  The ttk commands are referrenced in the man pages as ttk_<command> and ttk::<command>  This is confusing and should be changed to use the correct ttk::<command> syntax throughout.

  ttk_button(n)                 Tk Themed Widget                 ttk_button(n)

  ______________________________________________________________________________

  NAME
         ttk_button - Widget that issues a command when pressed
  ^^^^^^^^^^^^
  Note:  here the '_' is used.

  SYNOPSIS
         ttk::button pathName ?options?
  ^^^^^^^^^^^^
  But, here '::' is used.


  I've attached modified man pages with these changes.

  -Brian


tkt_uuid: 1641536fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 67. Unix Window Operations
priority: 5 Medium
foundin: obsolete: 8.4.14
resolution: None
title: raise does nothing on x86-64 linux
comment:
  If I create a few top level windows and place them so they overlap each other, typing the 'raise' command to the console does not affect their stacking order. However, 'lower' does work although the lowered window goes right to the bottom of the stack even if a 2nd arg is given. This is on KDE; if I swicth to Gnome neither raise or lower do anything.

  Platform is a Macbook Mk2 running Fedora Core 6 for x86-64. Problem verified with ActiveState's TclTk 8.4.14 and with Fedora's own distributions of TclTk 8.4.13 for x86-64 and i386.

  The problem does *not* occur on an i386 running FC5 with TclTk 8.4.13


tkt_uuid: 1641721fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 37. [tk_get*File]
priority: 5 Medium
foundin: obsolete: 8.4.9
resolution: None
title: tk_getOpenFile shows symlinks to directories twice
comment:
  Create a directory with a symlink to a directory:
  $ mkdir zot
  $ cd zot
  $ ln -s / x

  Run tk_getOpenFile on that location:
  $ wish
  % tk_getOpenFile

  "x" appears twice, once as a directory and once as a file.

  This bug has been observed in: tk8.4-8.4.9-1build1 (Ubuntu 5.10)
  This bug was not present in: tk-8.3.5 (RedHat 9)

  From inspection of the source, I believe the problem is still present in the CVS versions of tk8.4 and tk8.5, but I have not tested those versions.

  I think the problem is around http://tktoolkit.cvs.sourceforge.net/tktoolkit/tk/library/tkfbox.tcl?revision=1.58&view=markup#l_1300
  because a symlink to a directory will match both [glob -type d] and [glob -type l]:
  $ tclsh
  % glob -type d *
  x
  % glob -type l *
  x

  Removing l from the list of glob types would fix this problem, and would also remove dangling symlinks which give an error when selected anyway.


tkt_uuid: 1642750fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 55. [focus]
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: None
title: focus-5.1 test suite case fails ni 8.5a6
comment:
  Tk cvs head, as retrieved from Activestate's cvs ftp site
  Sun C compiler, compiled on SPARC Solaris 9  with options \"'--prefix=/projects/sprs_lwv/tcl85' '--enable-shared' '--enable-symbols' '--enable-stubs' '--enable-64bit' 'CC=cc'\"

  Tk test suite run on SPARC Solaris 9, displaying to two platforms: Sun's solaris 9 x server and exceed running on windows xp

  Yes, I ran the test suite twice, comparing the two servers, because of the errors I was seeing in the test suite.

  In both cases, I'm seeing the same error:

  focus.test


  ==== focus-5.1 ChangeXFocus procedure, don't take focus unless have it FAILED
  ==== Contents of test case:

      focusSetup
      focus -force .t
      update
      set result [focus]
      send [dobg {tk appname}] {focus -force .; update}
      lappend result [focus]
      focus .t.b2
      update
      lappend result [focus]
  ---- Result was:
  .t .t {}
  ---- Result should have been (exact matching):
  .t {} {}
  ==== focus-5.1 FAILED


tkt_uuid: 1649895fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 08. [(label)frame] and [toplevel]
priority: 5 Medium
foundin: None
resolution: None
title: TK leaking on windows 2000
comment:
  This code leaks about 4k per execution on Windows 2000. 

  proc leak {} {
  destroy .t
  update idletasks
  toplevel .t
  update idletasks
  }

  set a ""
  set l {after cancel $a; leak; set a [after 1000 {eval $l}]}

  eval $l


tkt_uuid: 1652598fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 10. Generic Menus
priority: 5 Medium
foundin: obsolete: 8.4.14
resolution: None
title: Free memory read tkOption.c SetupStacks
comment:
  In tkOption.c:SetupStacks (lines 1343-1374 v1.18) there is a free memory read. I'm not familiar with this code so I don't fancy checking it in and haven't done so before.

  The cause appears to be access to system stacks element pointers that have been reallocated within the same loop the pointer was assigned.

  I tried the following changes and it prevented the free memory read and there was no noticeable strangeness happening in my fairly complex GUI:

  Changed section in tkOption.c:SetupStacks:

      for (iPtr = searchOrder; *iPtr != -1; iPtr++) {
  register Element *elPtr;
  int count, current; /* current added */
  Tk_Uid id;

  i = *iPtr;
  if (i & CLASS) {
      id = winPtr->classUid;
  } else {
      id = winPtr->nameUid;
  }
  #if 0 /* removed */
  elPtr = tsdPtr->stacks[i]->els;
  count = levelPtr->bases[i];
  #endif
          current = 0; /* current added */
  count = tsdPtr->stacks[i]->numUsed; /* count initialised from current stacks */

  /*
   * For wildcard stacks, check all entries;  for non-wildcard
   * stacks, only check things that matched in the parent.
   */

  if (!(i & WILDCARD)) {
  #if 0 /* removed */
      elPtr += levelPtr[-1].bases[i];
  #endif
              current = levelPtr[-1].bases[i]; /* I think level above should not change in this loop */
      count -= current;
  }
          /* Always get elPtr anew after ExtendStacks() is called. */
  for ( elPtr = tsdPtr->stacks[i]->els + current; count > 0;
                current++, elPtr = tsdPtr->stacks[i]->els + current, count-- ) {
      if (elPtr->nameUid != id) {
  continue;
      }
      ExtendStacks(elPtr->child.arrayPtr, leaf);
  }
      }


  It didn't fix my crash, but hey that's life.


tkt_uuid: 1656283fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 74. Application Embedding
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: Fixed
title: comment in tkInitScript.h is incorrect
comment:
  The following comment in $tk_src_dir/generic/tkInitScript.h is incorrect, $tcl_library/../tk$tk_version is _not_ a directory that is searched.  This directory is often included by coincidence, because it's often a subdir of auto_path, but it's not actually searched for directly.  Look at the logic in tcl_findLibrary to verify.

  " * In order to find tk.tcl during initialization, the following script is
  * invoked by Tk_Init(). It looks in several different directories:
  *
  * $tk_library - can specify a primary location, if set no
  * other locations will be checked
  *
  * $env(TK_LIBRARY) - highest priority so user can always override
  * the search path unless the application has
  * specified an exact directory above
  *
  * $tcl_library/../tk$tk_version
  * - look relative to init.tcl in an installed
  * lib directory (e.g. /usr/local)
  "


tkt_uuid: 1660671fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 75. wish
priority: 8
foundin: obsolete: 8.4.14
resolution: None
title: called Tcl-FindHashEntry on deleted table
comment:
  Sometimes I have troubles "destroy"ing the main toplevel widget - the application crashes - but I was not able to draw it down to a small application.
  Today - when exiting the application I got a fatal error in wish: "called Tcl-FindHashEntry on deleted table".

  thanks


tkt_uuid: 1660674fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 05. Canvas Items
priority: 6
foundin: obsolete: 8.4.13
resolution: None
title: arrow reconfig triggers infinite Enter/Leave event sequence
comment:
  Submitted by John Brzustowski 
  jbrzusto@fastmail.fm

  VERSIONS/PLATFORMS
    Tk 8.4.13 on linux 2.6.13
    Tk 8.4.13 and 8.4.1 on cygwin 1.5.23, Windows XP

  SUMMARY
  If a canvas line item has its Enter/Leave events bound to handlers that configure arrows on and off, then triggering the handlers from some screen locations leads to an infinite sequence of mutually triggering Enter/Leave events.  See "PATCH" below for
  where in the Tk code the problem lies.

  EXAMPLE
  canvas .c
  .c create line 10 10 100 100 -fill black -tags myline
  pack .c
  .c bind myline <Leave> {.c itemconfigure myline -arrow none; puts Leaving}
  .c bind myline <Enter> {.c itemconfigure myline -arrow both; puts Entering}

  If you mouse around one of the line endpoints enough,
  you'll lock up event processing and the print output   
  will show an infinite sequence of 
  mutually triggering Enter and Leave events.
  (On Windows, the print output does not appear during the lockup.)

  I can understand how *adding* arrows could trigger an Enter event, since the line item is being enlarged, possibly to include the previously excluded pointer position.
  However, I can't see why adding arrows should trigger a Leave event, nor why removing them should trigger an Enter event (at least on the line item itself).

  PATCH
  The following patch removes the problem.  However, I don't understand the rationale for the code as originally written, therefore I'm not recommending this as a fix - it needs more thought.

  diff generic/tkCanvLine.c generic/mytkCanvLine.c
  2175,2176c2175,2176
  < linePtr->coordPtr[0] = poly[0] - backup*cosTheta;
  < linePtr->coordPtr[1] = poly[1] - backup*sinTheta;
  ---
  > linePtr->coordPtr[0] = poly[0];
  > linePtr->coordPtr[1] = poly[1];
  2214,2215c2214,2215
  < coordPtr[2] = poly[0] - backup*cosTheta;
  < coordPtr[3] = poly[1] - backup*sinTheta;
  ---
  > coordPtr[2] = poly[0];
  > coordPtr[3] = poly[1];


tkt_uuid: 1660811fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 02. Appearance
priority: 3 Low
foundin: obsolete: 8.5a5
resolution: None
title: Wrong rendering in transparent areas
comment:
  When using the option -background "", frames are transparent, but transparent area is never redrawn at all.
  It seems Tk ignore these areas by applying no treatment at all....
  Everything placed on a transparent frame (even dragging an other application window from the desktop throw this kind of area) can't be graphically removed after even if it was effectively removed according to the placement manager.
  Here's the code wich reproduces this:

  #######################################################
  procrefreshPrLayer {framePath} {
  update
  set FrameWidth [winfo width $framePath]
  set FrameHeight [winfo height $framePath]
  $framePath configure -width 0
  update
  $framePath configure -width $FrameWidth -height $FrameHeight
  }


  canvas .c -width 100 -height 100 -bg "#800000" -borderwidth 0 -highlightthickness 0
  frame .c.f1 -width 200 -height 50 -background ""
  frame .c.f2 -width 200 -height 50 -background ""
  frame .c.f1.f1 -background "#0000FF" -width 50 -height 50 -borderwidth 0 -highlightthickness 0
  frame .c.f2.f1 -background "#FFFFFF" -width 50 -height 50 -borderwidth 0 -highlightthickness 0
  frame .c.f2.f2 -background "#00FFFF" -width 50 -height 50 -borderwidth 0 -highlightthickness 0
  pack .c -fill both -expand 1
  pack .c.f1 .c.f2 -side top -anchor w
  pack .c.f1.f1 -side left -padx 10 -pady 10 -fill both -expand 1
  pack .c.f2.f1 .c.f2.f2 -side left -padx 10 -pady 10 -fill both -expand 1


  after 2000 {
  destroy .c.f2.f1
  # Uncomment the next line to see a trick wich can refresh the transparent area (destroyed frame will disappear as it should without the trick) or just drag a window from your desktop throw the tcl one to see the problem
  #refreshPrLayer .c.f2
  }
  #####################################################


tkt_uuid: 1662959fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 37. [tk_get*File]
priority: 9 Immediate
foundin: obsolete: 8.4.14
resolution: Fixed
title: tk_getOpenFile: can't read "textList(0)": no such variable
comment:
  Steps to reproduce:

  $ mkdir empty_dir
  $ wish
  % tk_getOpenFile -initialdir empty_dir

  Click on the canvas in the file selection dialog.
  Press <Esc>.

  An error messagebox pops up:
  --------------------
  can't read "textList(0)": no such variable
      while executing
  "string range $textList($i) 0 $len0"
      (procedure "IconList_Goto" line 29)
      invoked from within
  "IconList_Goto $w $Priv(ILAccel,$w)"
      (procedure "tk::IconList_KeyPress" line 5)
      invoked from within
  "tk::IconList_KeyPress .__tk_filedialog.icons \x1b"
      (command bound to event)
  --------------------

  Observed on tk-8.4.14 (and also previous versions), running on Linux Fedora Core 5.


  Regards,
    Grigory Trenin


tkt_uuid: 1663527fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 99. Other
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: Fixed
title: typos in tksection n man pages found
comment:
  A few nitpick typos were found in a dozen or so tk man pages. I am attaching a patch to this bug report that shows where the problems are located, and my suggested fix.  I doubt I found all problems, and some of the suggestions may not consider alternative spellings.


tkt_uuid: 1667206fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 5 Medium
foundin: None
resolution: Fixed
title: tkTextBtree fails to compile
comment:
  I grabbed the tk-20070222.tar.gz file from the activestate tcl ftp area.
  I configured it with options \"'--prefix=/projects/sprs_lwv/tcl85' '--enable-shared' '--enable-symbols' '--enable-stubs' '--enable-64bit' 'CC=cc'\"



  and when I ran the compile, I get this error:
  cc -c -g  -xarch=v9   -KPIC -I/vol/tclsrcsol/tcl85/tk/unix/../unix -I/vol/tclsrc
  sol/tcl85/tk/unix/../generic -I/vol/tclsrcsol/tcl85/tk/unix/../bitmaps -I/vol/tc
  lsrcsol/tcl85/tcl/generic -I/vol/tclsrcsol/tcl85/tcl/unix -I/usr/openwin/include
   -DPACKAGE_NAME=\"tk\" -DPACKAGE_TARNAME=\"tk\" -DPACKAGE_VERSION=\"8.5\" -DPACK
  AGE_STRING=\"tk\ 8.5\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPE
  S_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 
  -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DUSE
  _THREAD_ALLOC=1 -D_REENTRANT=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_THREAD_SAFE=1 -DH
  AVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DTCL_THREADS=1 -D_REENTRANT=1 -D_POSIX_PTHREAD_
  SEMANTICS=1 -DTCL_CFG_DO64BIT=1 -DTCL_SHLIB_EXT=\".so\" -DTCL_CFG_DEBUG=1 -DTCL_
  WIDE_INT_IS_LONG=1 -DWORDS_BIGENDIAN=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=
  1 -DHAVE_PW_GECOS=1 -DHAVE_XSS=1      -DTCL_NO_DEPRECATED  -DUSE_TCL_STUBS  /vol
  /tclsrcsol/tcl85/tk/unix/../generic/tkTextBTree.c
  "/vol/tclsrcsol/tcl85/tk/unix/../generic/tkTextBTree.c", line 1816: syntax error
   before or at: register
  "/vol/tclsrcsol/tcl85/tk/unix/../generic/tkTextBTree.c", line 1816: warning: und
  efined or missing type for: register
  "/vol/tclsrcsol/tcl85/tk/unix/../generic/tkTextBTree.c", line 1818: warning: par
  ameter mismatch: 2 declared, 0 defined
  "/vol/tclsrcsol/tcl85/tk/unix/../generic/tkTextBTree.c", line 1823: undefined sy
  mbol: linePtr
  "/vol/tclsrcsol/tcl85/tk/unix/../generic/tkTextBTree.c", line 1823: warning: imp
  roper pointer/integer combination: op "=="
  "/vol/tclsrcsol/tcl85/tk/unix/../generic/tkTextBTree.c", line 1831: non-unique m
  ember requires struct/union pointer: parentPtr
  "/vol/tclsrcsol/tcl85/tk/unix/../generic/tkTextBTree.c", line 1831: left operand
   of "->" must be pointer to struct/union
  "/vol/tclsrcsol/tcl85/tk/unix/../generic/tkTextBTree.c", line 1832: warning: imp
  roper pointer/integer combination: op "!="
  "/vol/tclsrcsol/tcl85/tk/unix/../generic/tkTextBTree.c", line 1833: warning: imp
  roper pointer/integer combination: op "=="
  "/vol/tclsrcsol/tcl85/tk/unix/../generic/tkTextBTree.c", line 1848: non-unique m
  ember requires struct/union pointer: parentPtr
  "/vol/tclsrcsol/tcl85/tk/unix/../generic/tkTextBTree.c", line 1848: left operand
   of "->" must be pointer to struct/union
  cc: acomp failed for /vol/tclsrcsol/tcl85/tk/unix/../generic/tkTextBTree.c
  gmake: *** [tkTextBTree.o] Error 2


tkt_uuid: 1669387fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 03. [*button] and [label]
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: Out of Date
title: On MacOS X buttons don't show images with alpha transparency
comment:
  When you create a button on Mac with a -image that is a png image with transparency (aMSN uses TkCxImage to get this) a white button is being showed, instead of the actual image. This work normally on windows and linux. Also on Mac, when you use a label with -image it works as expected.


tkt_uuid: 1669632fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 01. Bindings
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: None
title: text widget: autoseparator placement, <Control-1> cleanup
comment:
  LIST OF BUGS/FEATURES FIXED BY THE PATCH

  A patch to lib/tk8.5/text.tcl is supplied, and each fix in the patch file is commented.  The bugs/features are labeled here by the binding, followed by a short description of how to demonstrate the bug/feature.

  (i), (iv) and (vii) are bugfixes to autoseparator placement
  (ii), (iii) fix apparent bugs where the real problem is a shaky hand; since they don't break any intended behavior they could be considered improvements
  (v), (vi) make <<Clear>> and <<Cut>> atomic operations on the Undo stack.

  (i) <Control-1>
  Insert text at position 'A'; use <Control-1> to click at 'B'; insert text at 'B'; <<Undo>>
  The insertions at both 'A' and 'B' are removed together.
  The patch inserts an autoseparator.

  General rule (obeyed elsewhere in text.tcl): an operation that moves the insert mark without making it one end of the selection must insert an autoseparator.

  (ii) <Double-Control-1>
  The patch prevents <Control-1> from becoming <Double-Button-1> if the user accidentally double clicks.

  (iii) <Control-B1-Motion>
  The patch prevents <Control-1> from becoming <B1-Motion> if the user accidentally makes a slight movement of the mouse.

  (iv) <Control-backslash>
  Insert text at position 'A'; use <Shift-Right> to create a selection to position 'B'; use <Control-backslash> to clear the selection, leaving the insert mark at 'B'; insert text at 'B'; <<Undo>>
  The insertions at both 'A' and 'B' are removed together.
  The patch inserts an autoseparator.

  General rule (obeyed elsewhere in text.tcl): an operation that clears the selection must insert an autoseparator, because the selection operation may have moved the insert mark.

  (v) <<Clear>>
  <Delete> a character at position 'A'; use <Shift-Right> to create a selection to position 'B'; use <<Clear>> to delete the selection; <Delete> another character; <<Undo>>
  All three deletions are undone.
  It might be preferable to make <<Clear>> atomic.  The patch does this.

  (For testing on non-Mac systems, use
      event add <<Clear>> <Key-F6>
  to map this binding to the F6 key)

  (vi) <<Cut>> (proc ::tk_textCut)
  Similar to <<Clear>> above: the patch makes <<Cut>> atomic.

  (vii) <<Undo>>
  (a) create a widget with -undo 1, and enter some text
  (b) click somewhere in the text.  Delete a character; type a few characters, without deleting anything or navigating away (i.e. only insert text).
  (c) click somewhere else in the text. Insert another character there.

  At this point the top operation in the Undo stack is the single inserted character, the operation before that is the group of inserted characters.

  (d) <<Undo>> - correctly undoes the last operation, but also removes the separator from the top of the Undo stack
  (e) type a character
  (f) <<Undo>> - undoes the character (e) _and_ the previous item on the Undo stack.


tkt_uuid: 1670123fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: 46. Unix Fonts
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: Out of Date
title: tkUnixFont.c fails to compile
comment:
  Platform: sparc solaris 9, sun c compiler, compiled
    with options \"'--prefix=/projects/sprs_lwv/tcl85' '--enable-shared' '--enable-symbols' '--enable-stubs' '--enable-64bit' 'CC=cc'\"


  cc -c -g  -xarch=v9   -KPIC -I/vol/tclsrcsol/tcl85/tk/unix/../unix -I/vol/tclsrc
  sol/tcl85/tk/unix/../generic -I/vol/tclsrcsol/tcl85/tk/unix/../bitmaps -I/vol/tc
  lsrcsol/tcl85/tcl/generic -I/vol/tclsrcsol/tcl85/tcl/unix -I/usr/openwin/include
   -DPACKAGE_NAME=\"tk\" -DPACKAGE_TARNAME=\"tk\" -DPACKAGE_VERSION=\"8.5\" -DPACK
  AGE_STRING=\"tk\ 8.5\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPE
  S_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 
  -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DUSE
  _THREAD_ALLOC=1 -D_REENTRANT=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_THREAD_SAFE=1 -DH
  AVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DTCL_THREADS=1 -D_REENTRANT=1 -D_POSIX_PTHREAD_
  SEMANTICS=1 -DTCL_CFG_DO64BIT=1 -DTCL_SHLIB_EXT=\".so\" -DTCL_CFG_DEBUG=1 -DTCL_
  WIDE_INT_IS_LONG=1 -DWORDS_BIGENDIAN=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=
  1 -DHAVE_PW_GECOS=1 -DHAVE_XSS=1      -DTCL_NO_DEPRECATED  -DUSE_TCL_STUBS  /vol
  /tclsrcsol/tcl85/tk/unix/../unix/tkUnixFont.c
  "/vol/tclsrcsol/tcl85/tk/unix/../unix/tkUnixFont.c", line 1409: syntax error before or at: ;
  "/vol/tclsrcsol/tcl85/tk/unix/../unix/tkUnixFont.c", line 1411: warning: undefin
  ed or missing type for: int
  "/vol/tclsrcsol/tcl85/tk/unix/../unix/tkUnixFont.c", line 1414: warning: paramet
  er mismatch: 10 declared, 0 defined
  "/vol/tclsrcsol/tcl85/tk/unix/../unix/tkUnixFont.c", line 1418: undefined symbol
  : rangeLength
  "/vol/tclsrcsol/tcl85/tk/unix/../unix/tkUnixFont.c", line 1418: undefined symbol
  : x
  "/vol/tclsrcsol/tcl85/tk/unix/../unix/tkUnixFont.c", line 1418: undefined symbol
  : y
  cc: acomp failed for /vol/tclsrcsol/tcl85/tk/unix/../unix/tkUnixFont.c
  gmake: *** [tkUnixFont.o] Error 2


  The problem appears to be the semicolons in TkpDrawCharsInContext's argument list...


tkt_uuid: 1676672fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 09. [listbox]
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: None
title: new test failures
comment:
  On Solaris 9 /CDE, these
  test failures are new since
  8.5a5.  Failures happen
  in both --enable- and --disable-xft
  configurations:

  ==== listbox-4.1 ConfigureListbox procedure FAILED
  ==== Contents of test case:

      catch {destroy .l}
      listbox .l -setgrid 1 -width 25 -height 15
      pack .l
      update
      set x [getsize .]
      .l configure -setgrid 0
      update
      list $x [getsize .]

  ---- Result was:
  25x15 300x250
  ---- Result should have been (exact matching):
  25x15 185x263
  ==== listbox-4.1 FAILED



  ==== listbox-4.6 ConfigureListbox procedure FAILED
  ==== Contents of test case:

      catch {destroy .l}

      # The following code (reset geometry, withdraw, etc.) is necessary
      # to reset the state of some window managers like olvwm under
      # SunOS 4.1.3.

      wm geom . 300x300
      update
      wm geom . {}
      wm withdraw .
      listbox .l -font $fixed -width 15 -height 20
      pack .l
      update
      wm deiconify .
      set x [getsize .]
      .l configure -setgrid 1
      update
      list $x [getsize .]

  ---- Result was:
  300x250 15x20
  ---- Result should have been (exact matching):
  115x328 15x20
  ==== listbox-4.6 FAILED

  ==== listbox-8.1 ListboxEventProc procedure FAILED
  ==== Contents of test case:

      catch {destroy .l}
      listbox .l -setgrid 1
      pack .l
      update
      set x [getsize .]
      destroy .l
      list $x [getsize .] [winfo exists .l] [info command .l]

  ---- Result was:
  20x10 300x250 0 {}
  ---- Result should have been (exact matching):
  20x10 150x178 0 {}
  ==== listbox-8.1 FAILED


tkt_uuid: 1676673fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 21. [panedwindow]
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: None
title: new test failures
comment:
  On Solaris 9 /CDE, these
  test failures are new since
  8.5a5. Failures happen
  in both --enable- and --disable-xft
  configurations:

  ==== panedwindow-29.1 resizing width FAILED
  ==== Contents of test case:
  panedwindow .p -bd 5
          frame .f1 -width 100 -height 50 -bg blue
          frame .f2 -width 100 -height 50 -bg red

          .p add .f1 -sticky news
          .p add .f2 -sticky news
          pack .p -side top -fill both -expand 1
          wm geometry . ""
          update
          # Note the width
          set a [winfo width .f2]
          # Increase the size by 10
          regexp {^(\d+)x(\d+)} [wm geometry .] -> w h
          wm geometry . [expr {$w + 10}]x$h
          update
          set b "$a [winfo width .f2]"
  ---- Result was:
  178 188
  ---- Result should have been (exact matching):
  100 110
  ==== panedwindow-29.1 FAILED



  ==== panedwindow-29.2 resizing height FAILED
  ==== Contents of test case:
  panedwindow .p -orient vertical -bd 5
          frame .f1 -width 50 -height 100 -bg blue
          frame .f2 -width 50 -height 100 -bg red

          .p add .f1 -sticky news
          .p add .f2 -sticky news
          pack .p -side top -fill both -expand 1
          wm geometry . ""
          update
          # Note the height
          set a [winfo height .f2]
          # Increase the size by 10
          regexp {^(\d+)x(\d+)} [wm geometry .] -> w h
          wm geometry . ${w}x[expr {$h + 10}]
          update
          set b "$a [winfo height .f2]"
  ---- Result was:
  128 138
  ---- Result should have been (exact matching):
  100 110
  ==== panedwindow-29.2 FAILED


tkt_uuid: 1676675fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 15. [scale]
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: None
title: new test failures
comment:
  On Solaris 9 /CDE, these
  test failures are new since
  8.5a5. Failures happen
  in both --enable- and --disable-xft
  configurations:

  ==== scale-8.2 ScaleElement procedure FAILED
  ==== Contents of test case:

      catch {destroy .s}
      scale .s -from 0 -to 100 -orient vertical -bd 1 -tick 20 -length 300
      pack .s
      .s set 30
      update
      list [.s identify 60 2] [.s identify 60 3] [.s identify 60 302]  [.s identify 60 3
  03]

  ---- Result was:
  {} trough1 {} {}
  ---- Result should have been (exact matching):
  {} trough1 trough2 {}
  ==== scale-8.2 FAILED



  ==== scale-8.3 ScaleElement procedure FAILED
  ==== Contents of test case:

      catch {destroy .s}
      scale .s -from 0 -to 100 -orient vertical -bd 1 -tick 20 -length 300
      pack .s
      .s set 30
      update
      list [.s identify 60 83] [.s identify 60 84] [.s identify 60 113]  [.s identify 60
   114]
  ---- Result was:
  slider slider trough2 trough2
  ---- Result should have been (exact matching):
  trough1 slider slider trough2
  ==== scale-8.3 FAILED


tkt_uuid: 1676677fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 16. [scrollbar]
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: None
title: new test failures
comment:
  On Solaris 9 /CDE, these
  test failures are new since
  8.5a5. Failures happen
  in both --enable- and --disable-xft
  configurations:

  ==== scrollbar-3.36 ScrollbarWidgetCmd procedure, "fraction" option FAILED
  ==== Contents of test case:

      .s fraction 4 179

  ---- Result was:
  0.760766
  ---- Result should have been (exact matching):
  1
  ==== scrollbar-3.36 FAILED



  ==== scrollbar-3.38 ScrollbarWidgetCmd procedure, "fraction" option FAILED
  ==== Contents of test case:

      .s fraction 4 178

  ---- Result was:
  0.755981
  ---- Result should have been (exact matching):
  0.993711
  ==== scrollbar-3.38 FAILED



  ==== scrollbar-3.52 ScrollbarWidgetCmd procedure, "identify" option FAILED
  ==== Contents of test case:

      .s set .3 .6
      .s identify 5 80

  ---- Result was:
  trough1
  ---- Result should have been (exact matching):
  slider
  ==== scrollbar-3.52 FAILED



  ==== scrollbar-3.53 ScrollbarWidgetCmd procedure, "identify" option FAILED
  ==== Contents of test case:

      .s identify 5 145

  ---- Result was:
  slider
  ---- Result should have been (exact matching):
  trough2
  ==== scrollbar-3.53 FAILED


  ==== scrollbar-3.54 ScrollbarWidgetCmd procedure, "identify" option FAILED
  ==== Contents of test case:

      .s identify 5 195

  ---- Result was:
  trough2
  ---- Result should have been (exact matching):
  arrow2
  ==== scrollbar-3.54 FAILED



  ==== scrollbar-6.3 ScrollbarPosition procedure FAILED
  ==== Contents of test case:

      .s identify 8 196

  ---- Result was:
  trough2
  ---- Result should have been (exact matching):

  ==== scrollbar-6.3 FAILED



  ==== scrollbar-6.20 ScrollbarPosition procedure FAILED
  ==== Contents of test case:

      .s identify 8 52

  ---- Result was:
  trough1
  ---- Result should have been (exact matching):
  slider
  ==== scrollbar-6.20 FAILED



  ==== scrollbar-6.24 ScrollbarPosition procedure FAILED
  ==== Contents of test case:

      .s identify 8 84

  ---- Result was:
  slider
  ---- Result should have been (exact matching):
  trough2
  ==== scrollbar-6.24 FAILED


  ==== scrollbar-6.29 ScrollbarPosition procedure FAILED
  ==== Contents of test case:

      .s identify 8 180

  ---- Result was:
  trough2
  ---- Result should have been (exact matching):
  arrow2
  ==== scrollbar-6.29 FAILED



  ==== scrollbar-6.30 ScrollbarPosition procedure FAILED
  ==== Contents of test case:

      .s identify 8 195

  ---- Result was:
  trough2
  ---- Result should have been (exact matching):
  arrow2
  ==== scrollbar-6.30 FAILED



  ==== scrollbar-6.34 ScrollbarPosition procedure FAILED
  ==== Contents of test case:

      .s identify 4 100

  ---- Result was:
  slider
  ---- Result should have been (exact matching):
  trough2
  ==== scrollbar-6.34 FAILED



  ==== scrollbar-6.35 ScrollbarPosition procedure FAILED
  ==== Contents of test case:

      .s identify 18 100

  ---- Result was:
  slider
  ---- Result should have been (exact matching):
  trough2
  ==== scrollbar-6.35 FAILED


tkt_uuid: 1676680fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 17. [spinbox]
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: None
title: new test failures
comment:
  On Solaris 9 /CDE, these
  test failures are new since
  8.5a5. Failures happen
  in both --enable- and --disable-xft
  configurations:

  ==== spinbox-5.8 ConfigureSpinbox procedure FAILED
  ==== Contents of test case:

      catch {destroy .e}
      spinbox .e -width 0
      pack .e
      .e insert end "0123"
      update
      .e configure -font $big
      update
      winfo geom .e

  ---- Result was:
  79x37+10+0
  ---- Result should have been (exact matching):
  79x37+0+0
  ==== spinbox-5.8 FAILED



  ==== spinbox-6.2 SpinboxComputeGeometry procedure FAILED
  ==== Contents of test case:

      catch {destroy .e}
      spinbox .e -font $fixed -bd 2 -relief raised -width 20 -justify center  -highlightthickness 3
      pack .e
      .e insert end 012\t45
      update
      list [.e index @96] [.e index @97]

  ---- Result was:
  6 6
  ---- Result should have been (exact matching):
  3 4
  ==== spinbox-6.2 FAILED



  ==== spinbox-6.3 SpinboxComputeGeometry procedure FAILED
  ==== Contents of test case:

      catch {destroy .e}
      spinbox .e -font $fixed -bd 2 -relief raised -width 20 -justify right  -highlightthickness 3
      pack .e
      .e insert end 012\t45
      update
      list [.e index @131] [.e index @132]

  ---- Result was:
  6 6
  ---- Result should have been (exact matching):
  3 4
  ==== spinbox-6.3 FAILED


tkt_uuid: 1676682fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 67. Unix Window Operations
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: None
title: new test failures
comment:
  On Solaris 9 /CDE, these
  test failures are new since
  8.5a5. Failures happen
  in both --enable- and --disable-xft
  configurations:


  ==== unixEmbed-10.2 geometry propagation in tkUnixWm.c/UpdateGeometryInfo FAILED
  ==== Contents of test case:

      deleteWindows
      frame .f1 -container 1 -width 200 -height 50
      pack .f1
      toplevel .t1 -use [winfo id .f1] -width 150 -height 80
      update
      wm geometry .t1 70x300+10+20
      update
      wm geometry .t1

  ---- Result was:
  70x250+0+0
  ---- Result should have been (exact matching):
  70x300+0+0
  ==== unixEmbed-10.2 FAILED


tkt_uuid: 1676685fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: None
title: new test failures
comment:
  On Solaris 9 /CDE, these
  test failures are new since
  8.5a5. Failures happen
  in both --enable- and --disable-xft
  configurations:

  failing tests in attached file.


tkt_uuid: 1676770fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 49. [grid]
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: Fixed
title: grid-21.7 breaks other tests
comment:
  The test failures in reports

  1676685 
  1676682
  1676680
  1676677
  1676675 
  1676673
  1676672 

  all go away if test grid-21.7
  is skipped.


tkt_uuid: 1677608fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 49. [grid]
priority: 9 Immediate
foundin: obsolete: 8.5a6
resolution: Fixed
title: grid crash due to list shimmer
comment:
  Following script crashes:

  set i {0 mm}
  grid rowconfigure . $i -minsize $i

  When a "pixels" value is pulled
  from $i, the List intrep is shimmered
  away, which invaidates the lObjv
  array.  When we next try to access it...
  CRASH!


tkt_uuid: 1677611fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 38. [tk_messageBox]
priority: 5 Medium
foundin: obsolete: 8.4.14
resolution: Fixed
title: tk_messageBox failing on OS X
comment:
  The attached file contains two calls of a tk message box which are fine on linux, windows, etc., but fail on OS X. The generated error message is empty.


tkt_uuid: 1677613fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 41. Photo Images
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: Fixed
title: confusing "options" identifier reuse
comment:
  Lines 654 and 664 of tkImgPhoto.c.

  Having both an enum and a local
  variable with the same name, "options",
  makes my head hurt.


tkt_uuid: 1678582fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 05. Canvas Items
priority: 5 Medium
foundin: None
resolution: None
title: Use native curves (where available)
comment:
  A couple of weeks ago, I upgraded my TclTkAqua installation because I needed dashed lines. I did get them, but I also got some rather disturbing sideeffects...

  (At this point, please download and unpack the attachment images.tar.gz, since the text will make a lot more sense if you can also see the images.)

  1. Before the upgrade, things looked as in CG0.png: smooth lines of constant width. Things still look this way if I set tk::mac::useCGDrawing to 0 (hence the image name), but this is hardly the way forward (I suspect I'd lose the ability to draw dashed lines, for one).

  2. What shocked me is the image CG1-AAL3.png ($tk::mac::useCGDrawing==1 and $tk::mac::CGAntialiasLimit==3, i.e., the default). where several curves seem affected by extreme scurf, in some places being three times thicker than normal. This is BAD!

  3. I then tried decreasing $tk::mac::CGAntialiasLimit to 1, which brings us to CG1-AAL1.png. This is acceptable, so it is what I use, but it is not good that one has to fiddle with such platform-specific settings in order to get an acceptable picture.

  And what causes the horrible rendering in CG1-AAL3.png?

  4. Following a hunch that the problem has to do with rounding in the rendering of curves as many small line segments, I try decreasing the -splinesteps setting to 3, resulting in CG1-AAL3-SS3.png. This looks very much like CG0.png, except for the occational pixel spur, so apparently the hunch was correct: the default rendering of curves is to blame. Turning on antialiasing can hide the problem, but Tk still sends data with a lot of noise in it to the rendering software, so it hardly qualifies as a cure.

  What could be done?

  One thing that comes to mind is to let Quartz (the Mac OS X graphics engine) do the rendering of curves, instead of insisting on doing it in Tk; there is a function CGContextAddCurveToPoint which takes the same kind of data as the postscript canvas subcommand needs, so why not take advantage of that? (It would most likely be both faster and produce higher quality pictures.) Why stick to lines (and arcs)?

  Apparently because Xlib doesn't know about them, and Tk does all its drawing through the Xlib Emulation Layer. [Sigh.] There's no technical reason for Tk's emulation to be confined to what Xlib has native operations for however, so I guess this RFE boils down to:

  * Add drawing "primitives" that deal with curves (whose segments are cubic Bezier curves), and use these when drawing -smooth canvas items. Implement as now (via XDrawLines etc.) on platforms which don't natively support curves, but take advantage of such support when available. The -splinesteps parameter could be an argument to the new drawing primitives, to be used or ignored depending on whether it makes sense for the implementation in question. *

  Another thing that would be nice is if these new drawing primitives could be relieved of the Xlib restriction that all coordinates are integers. Subpixel precision is sometimes important!

  Lars Hellström


tkt_uuid: 1683795fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 03. [*button] and [label]
priority: 5 Medium
foundin: None
resolution: None
title: -padx obscures button text on Aqua
comment:
  button .b -text Foobazzulous -padx 5 ; pack .b

  This blots out the edges of the text in the Carbon-based Aqua native version of Tk (all versions I've tried: 8.4.x, 8.5a5).  This behavior is not observed on XWindows-based implementations of Tk.

  A related concern is a cross-platform incompatibility: a small -padx is necessary in many cases on XWindows versions to avoid the text crowding against the edges of the button, however in Aqua-native such padding is unnecessary.  Not sure what to suggest here however.


tkt_uuid: 1686012fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 44. Generic Fonts
priority: 9 Immediate
foundin: obsolete: 8.5a6
resolution: Fixed
title: expanded doc needed for -font
comment:
  currently, the docs for the various tk widgets say:
  > STANDARD OPTIONS
  >      -activebackground     -borderwidth         -foreground
  >      -activeborderwidth    -cursor              -relief
  >      -activeforeground     -disabledforeground  -takefocus
  >      -background           -font

  >      See the options manual entry for details on the standard options.

  When you go to the options manual entry, you get:

    Command-Line Name: -font
    Database Name: font
    Database Class: Font
    Specifies the font to use when drawing text inside the widget. The
  value may have any of the forms accepted by
    Tk_GetFont. 


  When you go to Tk_GetFont, the details are too oriented towards the internals of the source to be helpful to someone who just wants to use the -font argument on a widget.

  Somewhere in the man pages, there should be information for someone learning to use Tk, so they know what kinds of arguments one can provide to -font . 

  Hopefully, at some point, there will also be a section in a tutorial included with Tk that talks about the "database name/database class" concept and how a programmer would make use of that.


tkt_uuid: 1686151fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 5 Medium
foundin: None
resolution: None
title: Aqua: canvas H scroll of windows misdraws
comment:
  Horizontal scrolling of a canvas containing 'window' items with text is drawn incorrectly while moving, on OS X Aqua only.  Scrolling of 'window' items containing buttons, or straight 'text' items works.  The script below demonstrates these various cases.

  eval destroy [winfo children .]
  canvas .canv -height 34 -width 250 -xscrollcommand {.scrol set}
  scrollbar .scrol -orient horizontal -command {.canv xview}
  pack .canv -in . -side top
  pack .scrol -in . -side bottom -fill x
  .canv delete all
  .canv configure -scrollregion "0 0 [expr 72 * 20] 34"
  for { set i 1 } { $i <= 20 } { incr i } {
  #    button .canv.t$i -text "Foobar $i"
      text .canv.t$i
      .canv.t$i insert end "Foobar $i"
      .canv create window [expr ($i - 1) * 72] 3 -anchor nw -window .canv.t$i
  #    .canv create text [expr ($i - 1) * 72] 3 -anchor nw -text "Foobar $i"
  }


tkt_uuid: 1686210fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 99. Other
priority: 9 Immediate
foundin: obsolete: 8.4.15
resolution: Fixed
title: editorial nits
comment:
  I'm attaching a patch file for about 8 of the .n man pages, fixing small typos either in spelling or, in at least one case, spacing.

  None of these are critical, but hopefully will contribute to improving the releases.


tkt_uuid: 1687486fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 57. [option]
priority: 5 Medium
foundin: None
resolution: None
title: tk is not robust in the face of bad xrdb settings
comment:
  % echo "*background: stupid-broken-desktop-setting" | xrdb -merge
  % wish
  Application initialization failed: this isn't a Tk applicationunknown color name "stupid-broken-desktop-setting"

  Apparently many linux desktop systems try to set xrdb entries to make old applications look a little more like other desktop applications (details on this are thin, and of course vary between different desktops).  Unfortunately, some of the time this makes all wish applications break.

  While the true blame lies at the feet of these desktop environments, it would be nice if Tk was robust in the face of this type of problem.


tkt_uuid: 1692395fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 09. [listbox]
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: None
title: Poor listbox performance in Tk 8.5a6
comment:
  The following simple script demonstrates a siginificant listbox performance regression in Tk 8.5a6:

  pack [listbox .lb]
  puts [time {
      for {set n 0} {$n < 100000} {incr n} {
          .lb insert end "This is item #$n"
      }
  }]

  On my rather slow Linux box (running SuSE Linux 10.0), this script produces the output

  1793963 microseconds per iteration

  Compare this with the time needed by Tk 8.4.13:

  1126718 microseconds per iteration

  This is an unacceptable performance regression.


tkt_uuid: 1692397fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: Wont Fix
title: Poor text widget performance in Tk 8.5a6
comment:
  The following simple script demonstrates a siginificant text widget performance regression in Tk 8.5a6:

  pack [text .t]
  puts [time {
      for {set n 1} {$n <= 100000} {incr n} {
          .t insert end "This is line #$n\n"
      }
  }]

  On my rather slow Linux box (running SuSE Linux 10.0), this script produces the output

  1580878 microseconds per iteration

  Compare this with the time needed by Tk 8.4.13:

  1238126 microseconds per iteration

  This is a rather worrying performance regression, especially taking into account that the text widget implementation has been objectified in Tk 8.5.


tkt_uuid: 1692755fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 01. Bindings
priority: 5 Medium
foundin: obsolete: 8.4.14
resolution: None
title: Focused button widgets invoked on Alt-Space
comment:
  On Windows, when an Alt-Space event occurs to show the "Windows system menu", the buttons and checkbuttons (provided they have focus) will see the space and/or Alt key events and are invoked. 

  This trivial script shows the misbehaviour. Alt-Space should never cause the checkbutton to be toggled or the button to be invoked.

  checkbutton .but1 -text "Do something but not on Alt-Space" 
  button .but2 -text "Do something but not on Alt-Space" -command exit 

  pack .but1 .but2 


tkt_uuid: 1692927fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 38. [tk_messageBox]
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: Fixed
title: tk_messageBox does not display -detail argument correctly
comment:
  On Windows XP (SP2) the following Tk command displays a dialog with the "detail" followed by a string of random characters.

  tk_messageBox -message Hello -detail "Pleased to meet you" 

  The following command, with a longer "detail" argument, displays correctly.

  tk_messageBox -message Hello -detail "Pleased to meet you and your kin" 


tkt_uuid: 1693649fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 05. Canvas Items
priority: 5 Medium
foundin: None
resolution: Fixed
title: More Canvas Text Orientations
comment:
  [Refiling of mis-filed Tcl FRQ 1689339]

  Canvas text items should have an option -rotation (0, 90, 180, 270) to specify orthogonal angles to render the text.

  Text rotated on these orientations is common in documentation tools used in many disciplines. The lack of such a feature in the Tk canvas makes it impossible to accurately provide Tk canvas representations of many datasets in engineering and business.

  A related option would also be useful -mirror (boolean) which would cause the text to be reflected. This is also common in engineering drawings where text is to be displayed as if you are looking at the page from the "back side".

  Ken
  neq-design@att.net


tkt_uuid: 1694526fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 05. Canvas Items
priority: 1 Zero
foundin: obsolete: 8.5a5
resolution: Invalid
title: Canvas text item w/explicit width wraps incorrectly
comment:
  On 8.5a5:

  canvas .c ; pack .c
  .c create text 4 4 -anchor nw -width 10 -text "This is a test."

  On MacOS X (unsure of other platforms) this produces

  This
  is
  a
  test.

  Given the width of 15 and the (reasonable) documented behavior to break only if next word would exceed line length, this should be:

  This is a
  test.


tkt_uuid: 1694821fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 35. [tk_dialog]
priority: 5 Medium
foundin: None
resolution: Invalid
title: ::tk::dialog::file fails
comment:
  For some versions it fails in linux distributions 
  called by some
  tk_getOpenFile -filetypes $types -initialdir $def
  at
  $data(typeMenuLab) configure -state normal
  with
  unknown option "-state"

  "fixing" the bug by catching this statement works.


tkt_uuid: 1695507fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 21. [panedwindow]
priority: 5 Medium
foundin: obsolete: 8.4.14
resolution: Works For Me
title: ::tk::panedwindow::Motion fails
comment:
  ::tk::panedwindow::Motion fails when there is no frame inside and mouse is moved. My current workaround solution is to catch the identify and return:

  if {[catch {set id [$w identify $x $y]}]} {return}


tkt_uuid: 1696913fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 84. Unix Build
priority: 5 Medium
foundin: obsolete: 8.5a5
resolution: None
title: "--enable-xft" - compile error / missing in README
comment:
  Three things:

  1) "--enable-xft" isn't documented in the file unix/README; I only noticed this option while reading the newsgroup comp.lang.tcl ...

  2) This option causes an error while compiling the source on "FreeBSD 6.0-RELEASE": "./configure --enable-xft" fully works without an error, but "make" fails:

  -----------------------------------------------------------------------

  ld -Bshareable -x -o libtk8.5.so tk3d.o tkArgv.o tkAtom.o tkBind.o tkBitmap.o tkClipboard.o  tkCmds.o tkColor.o tkConfig.o tkConsole.o tkCursor.o tkError.o  tkEvent.o tkFocus.o tkFont.o tkGet.o tkGC.o tkGeometry.o tkGrab.o  tkGrid.o tkMain.o tkObj.o tkOldConfig.o tkOption.o tkPack.o tkPlace.o  tkSelect.o tkStyle.o tkUndo.o tkUtil.o tkVisual.o tkWindow.o tkButton.o tkEntry.o tkFrame.o tkListbox.o  tkMenu.o tkMenubutton.o tkMenuDraw.o tkMessage.o  tkPanedWindow.o tkScale.o tkScrollbar.o tkCanvas.o tkCanvArc.o tkCanvBmap.o tkCanvImg.o  tkCanvLine.o tkCanvPoly.o tkCanvPs.o tkCanvText.o  tkCanvUtil.o tkCanvWind.o tkRectOval.o tkTrig.o tkImage.o tkImgBmap.o tkImgGIF.o tkImgPPM.o tkImgPhoto.o tkText.o tkTextBTree.o tkTextDisp.o tkTextImage.o tkTextIndex.o  tkTextMark.o tkTextTag.o tkTextWind.o  tkStubInit.o tkStubLib.o tkUnix.o tkUnix3d.o tkUnixButton.o tkUnixColor.o tkUnixConfig.o  tkUnixCursor.o tkUnixDraw.o tkUnixEmbed.o tkUnixEvent.o  tkUnixFocus.o  tkUnixRFont.o tkUnixInit.o tkUnixKey.o tkUnixMenu.o  tkUnixMenubu.o tkUnixScale.o tkUnixScrlbr.o tkUnixSelect.o  tkUnixSend.o tkUnixWm.o tkUnixXId.o -L/usr/X11R6/lib -lX11 -lXss -lXext -L/usr/X11R6/lib -lXft -lX11 -L/usr/local/lib -Wl,--rpath -Wl,/usr/local/lib -lfreetype -lz -L/usr/X11R6/lib -lfontconfig -L/usr/X11R6/lib -lXrender -lX11 -lXext   -lm -L/home/jo/tcl8.5a5/unix -ltclstub8.5   -rpath /usr/local/lib:/usr/X11R6/lib
  ld: unrecognized option '-Wl,--rpath'
  ld: use the --help option for usage information
  *** Error code 1

  Stop in /usr/home/jo/tk8.5a5/unix.

  -----------------------------------------------------------------------

  Without this option everything works.

  3) Found some referers to version 8.4:

  | jo@jeroboam ~>  grep -r "package require" tk8.5a5/ | grep "8.4"
  | tk8.5a5/library/demos/ixset:package require Tcl 8.4
  | tk8.5a5/library/demos/rmt:package require Tcl 8.4
  | tk8.5a5/library/demos/tcolor:package require Tk 8.4
  | tk8.5a5/library/demos/timer:package require Tcl 8.4
  | tk8.5a5/tests/all.tcl:package require Tcl 8.4
  | tk8.5a5/tests/constraints.tcl:package require Tcl 8.4
  | tk8.5a5/tests/constraints.tcl:package require Tk 8.4

  reported by: Joachim Moskalewski <tmp07@jmos.de>


tkt_uuid: 1697054fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 16. [scrollbar]
priority: 5 Medium
foundin: None
resolution: None
title: MS "jumping scrollbars" on Aqua violates platform UI
comment:
  If you start dragging a vertical scrollbar in a Tk Aqua application, then ªaccidentally) move the mouse away to the left or right, scrollbar will "jump" back to the undragged position.  This is UI compliant on Windows (for better or worse) but not on OS X, where the scrollbar in other apps stays dragged unless you let go the mouse button.


tkt_uuid: 1700065fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 07. [entry]
priority: 5 Medium
foundin: None
resolution: None
title: error in trace proc on textvariable doesn't trigger bgerror
comment:
  If a write trace is set on a textvariable for a entry widget, an error in this proc will not call bgerror and will be discarder.

  The same behaviour occurs on 8.4.13 and 8.5a6

  Example script:
  trace variable a w tr
  proc tr args {error $args}
  entry .e -textvariable a
  pack .e
  # typing in the entry will not give any error, a set on the var will, using after a bgerror will be shown
  after 10 {set a 4)

  ::ttk::entry does call the bgerror


tkt_uuid: 1700128fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 01. Bindings
priority: 5 Medium
foundin: None
resolution: None
title: Add in virtual desktop switch events
comment:
  Please add in a binding and/or event to show when a virtual desktop switch has happened, i.e. a switch out and a switch in.

  Thanks

    Duncs


tkt_uuid: 1704708fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 83. Mac OS X Build
priority: 9 Immediate
foundin: obsolete: 8.5a6
resolution: Fixed
title: Aqua Tk does not compile; botched macros
comment:
  The new LOG_MSG macro breaks
  the HEAD.  First few error messages
  from a default compile attempt:

  /Users/don/tk/macosx/tkMacOSXButton.c: In function `TkMacOSXInitControl':
  /Users/don/tk/macosx/tkMacOSXButton.c:817: error: parse error before ')' token
  /Users/don/tk/macosx/tkMacOSXButton.c: In function `TkMacOSXDrawControl':
  /Users/don/tk/macosx/tkMacOSXButton.c:962: error: parse error before ')' token


tkt_uuid: 1708403fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 83. Mac OS X Build
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: Fixed
title: Crash testing tk8.5a6-rc3
comment:
  I've downloaded, built (just said "make"), and tested the rc3 versions of tcl8.5a6 and tk8.5a6 today. Tcl was fine (the only test failures were in filesystem.test, regarding link normalisation), but Tk is does not seem fine. In particular, I got a crash running the tests. Crash log is attached (dunno if that is at all useful when it was I that made the build, though).

  I also had a problem that the it got hung on some choosedir and clrpick tests -- a Wish [bgerror] dialog pops up saying respectively:
  Error: can't access "::tk::dialog::file::__tk_choo...
  Error: bad window path name ".__tk__color"
  I've not seen any way out of these other than doing Ctrl-C in the terminal.

  [parray tcl_platform] reports:
  tcl_platform(byteOrder)   = bigEndian
  tcl_platform(machine)     = Power Macintosh
  tcl_platform(os)          = Darwin
  tcl_platform(osVersion)   = 7.9.0
  tcl_platform(platform)    = unix
  tcl_platform(pointerSize) = 4
  tcl_platform(threaded)    = 1
  tcl_platform(user)        = lars
  tcl_platform(wordSize)    = 4


  Skipping choosedir-* and clrpick-*, the output from all.tcl is:

  Tests running in interp:  /Installerare/Tcl/build/tk/Development/tktest
  Tests located in:  /Installerare/Tcl/tk8.5a6/tests
  Tests running in:  /Installerare/Tcl/build/tk/Development
  Temporary files stored in /Installerare/Tcl/build/tk/Development
  Test files sourced into current interpreter
  Skipping tests that match:  choosedir-* clrpick-*
  Running tests that match:  *
  Skipping test files that match:  l.*.test
  Only running test files that match:  *.test
  Tests began at Thu Apr 26 23:18:14 +0200 2007
  bell.test
  Bell should ring now ...
  bgerror.test
  bind.test


  ==== bind-13.13 Tk_BindEvent procedure: invalid key detail FAILED
  ==== Contents of test case:

      setup
      bind .b.f <Key> "lappend x Key%K"
      bind .b.f <KeyRelease> "lappend x Release%K"
      set x {}
      event gen .b.f <Key> -keycode 0
      event gen .b.f <KeyRelease> -keycode 0
      set x

  ---- Result was:
  Keya Releasea
  ---- Result should have been (exact matching):
  Key?? Release??
  ==== bind-13.13 FAILED



  ==== bind-15.7 MatchPatterns procedure, ignoring type mismatches FAILED
  ==== Contents of test case:

      setup
      bind .b.f <Double-1> {set x 1}
      set x 0
      event gen .b.f <Button-1>
      event gen .b.f <Key-Shift_L>
      event gen .b.f <ButtonRelease-1>
      event gen .b.f <Button-1>
      event gen .b.f <ButtonRelease-1>
      set x

  ---- Result was:
  0
  ---- Result should have been (exact matching):
  1
  ==== bind-15.7 FAILED

  bitmap.test
  border.test
  button.test
  canvImg.test


  ==== canvImg-4.2 ConfiugreImage procedure FAILED
  ==== Contents of test case:

      .c delete all
      .c create image 50 100 -image foo -tags i1 -anchor nw
      update
      set x {}
      set y {}
      .c itemconfigure i1 -image foo2
      update
      list $x $y [.c bbox i1]

  ---- Result was:
  {{foo free}} {{foo2 get} {foo2 display 0 0 80 60 50 100}} {50 100 130 160}
  ---- Result should have been (exact matching):
  {{foo free}} {{foo2 get} {foo2 display 0 0 80 60 30 30}} {50 100 130 160}
  ==== canvImg-4.2 FAILED



  ==== canvImg-10.1 TranslateImage procedure FAILED
  ==== Contents of test case:

      .c delete all
      .c create image 50 100 -image foo -tags image -anchor nw
      update
      set x {}
      foo changed 2 4 6 8 30 15
      update
      set x

  ---- Result was:
  {foo display 2 4 6 8 52 104}
  ---- Result should have been (exact matching):
  {foo display 2 4 6 8 30 30}
  ==== canvImg-10.1 FAILED



  ==== canvImg-11.1 TranslateImage procedure FAILED
  ==== Contents of test case:

      .c delete all
      .c create image 50 100 -image foo -tags image -anchor nw
      update
      set x {}
      foo changed 2 4 6 8 40 50
      update
      set x

  ---- Result was:
  {foo display 0 0 40 50 50 100}
  ---- Result should have been (exact matching):
  {foo display 0 0 40 50 30 30}
  ==== canvImg-11.1 FAILED



  ==== canvImg-11.3 ImageChangedProc procedure FAILED
  ==== Contents of test case:

      .c delete all
      image create test foo -variable x
      foo changed 0 0 0 0 40 50
      .c create image 50 100 -image foo -tags image -anchor nw
      .c create image 70 110 -image foo2 -anchor nw
      update
      set y {}
      image create test foo -variable x
      update
      set y

  ---- Result was:
  {foo2 display 0 0 20 40 70 110}
  ---- Result should have been (exact matching):
  {foo2 display 0 0 20 40 50 40}
  ==== canvImg-11.3 FAILED

  canvPs.test
  canvRect.test
  canvText.test


  ==== canvText-17.1 TextToPostscript procedure FAILED
  ==== Contents of test case:

      .c delete all
      .c config -height 300 -highlightthickness 0 -bd 0
      update
      .c create text 100 100 -tags test
      .c itemconfig test -font $font -text "00000000" -width [expr 3*$ax]
      .c itemconfig test -anchor n -fill black
      set x [.c postscript]
      set x [string range $x [string first "/Courier-Oblique" $x] end]

  ---- Result was:
  /Courier-Oblique findfont 12 scalefont ISOEncode setfont
  0.000 0.000 0.000 setrgbcolor AdjustColor
  100 200 [
  [(00000000)]
  ] 14 -0.5 0 0 false DrawText
  grestore
  restore showpage

  %%Trailer
  end
  %%EOF

  ---- Result should have been (exact matching):
  /Courier-Oblique findfont 12 scalefont ISOEncode setfont
  0.000 0.000 0.000 setrgbcolor AdjustColor
  100 200 [
  [(000)]
  [(000)]
  [(00)]
  ] 14 -0.5 0 0 false DrawText
  grestore
  restore showpage

  %%Trailer
  end
  %%EOF

  ==== canvText-17.1 FAILED

  canvWind.test
  canvas.test
  choosedir.test
  clipboard.test
  tkMacOSXClipboard.c:76: TkSelGetSelection(): GetScrapFlavorSize failed: -102
  tkMacOSXClipboard.c:102: TkSelGetSelection(): GetScrapFlavorSize failed: -102


  ==== clipboard-4.1 ClipboardLostSel procedure FAILED
  ==== Contents of test case:

      clipboard clear
      clipboard append "Test"
      selection clear -s CLIPBOARD
      list [catch {clipboard get} msg] $msg

  ---- Result was:
  1 {CLIPBOARD GetScrapFlavorSize failed.}
  ---- Result should have been (exact matching):
  1 {CLIPBOARD selection doesn't exist or form "STRING" not defined}
  ==== clipboard-4.1 FAILED

  tkMacOSXClipboard.c:76: TkSelGetSelection(): GetScrapFlavorSize failed: -102
  tkMacOSXClipboard.c:102: TkSelGetSelection(): GetScrapFlavorSize failed: -102


  ==== clipboard-4.2 ClipboardLostSel procedure FAILED
  ==== Contents of test case:

      clipboard clear
      clipboard append "Test"
      clipboard append -t TEST "Test2"
      selection clear -s CLIPBOARD
      list [catch {clipboard get} msg] $msg  [catch {clipboard get -t TEST} msg] $msg

  ---- Result was:
  1 {CLIPBOARD GetScrapFlavorSize failed.} 1 {CLIPBOARD selection doesn't exist or form "TEST" not defined}
  ---- Result should have been (exact matching):
  1 {CLIPBOARD selection doesn't exist or form "STRING" not defined} 1 {CLIPBOARD selection doesn't exist or form "TEST" not defined}
  ==== clipboard-4.2 FAILED

  tkMacOSXClipboard.c:76: TkSelGetSelection(): GetScrapFlavorSize failed: -102
  tkMacOSXClipboard.c:102: TkSelGetSelection(): GetScrapFlavorSize failed: -102


  ==== clipboard-4.3 ClipboardLostSel procedure FAILED
  ==== Contents of test case:

      clipboard clear
      clipboard append "Test"
      clipboard append -t TEST "Test2"
      clipboard append "Test3"
      selection clear -s CLIPBOARD
      list [catch {clipboard get} msg] $msg  [catch {clipboard get -t TEST} msg] $msg

  ---- Result was:
  1 {CLIPBOARD GetScrapFlavorSize failed.} 1 {CLIPBOARD selection doesn't exist or form "TEST" not defined}
  ---- Result should have been (exact matching):
  1 {CLIPBOARD selection doesn't exist or form "STRING" not defined} 1 {CLIPBOARD selection doesn't exist or form "TEST" not defined}
  ==== clipboard-4.3 FAILED



  ==== clipboard-6.2 Tk_ClipboardAppend procedure FAILED
  ==== Contents of test case:

      setupbg
      clipboard clear
      clipboard append -f INTEGER -t TEST "16"
      set result [dobg {clipboard get TEST}]
      cleanupbg
      set result

  ---- Result was:
  CLIPBOARD selection doesn't exist or form "TEST" not defined
  ---- Result should have been (exact matching):
  0x10
  ==== clipboard-6.2 FAILED

  clrpick.test
  cmds.test
  color.test
  config.test
  tkMacOSXScrlbr.c:130: TkMacOSXInitScrollbarMetrics(): GetThemeMetric failed: -50
  tkMacOSXScrlbr.c:139: TkMacOSXInitScrollbarMetrics(): GetThemeMetric failed: -50
  cursor.test


  ==== cursor-6.83  FAILED
  ==== Contents of test case:

      # Setting fg and bg does nothing for the none cursor
      # because it displays no fg or bg pixels.
      set results [list]
      .b configure -cursor none
      lappend results [.b cget -cursor]
      .b configure -cursor {none blue}
      lappend results [.b cget -cursor]
      .b configure -cursor {none blue green}
      lappend results [.b cget -cursor]
      .b configure -cursor {}
      lappend results [.b cget -cursor]
      set results

  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: bad cursor spec "none blue"
      (processing "-cursor" option)
      invoked from within
  ".b configure -cursor {none blue}"
      ("uplevel" body line 7)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== cursor-6.83 FAILED

  dialog.test
  embed.test
  entry.test


  ==== entry-1.33 configuration options FAILED
  ==== Contents of test case:

          .e configure $name $goodValue
          list [lindex [.e configure $name] 4] [.e cget $name]
      
  ---- Result was:
  0 0
  ---- Result should have been (exact matching):
  1 1
  ==== entry-1.33 FAILED



  ==== entry-3.65 EntryWidgetCmd procedure, "xview" widget command FAILED
  ==== Contents of test case:

      .e xview 5
      .e xview

  ---- Result was:
  0.0537634 0.27957
  ---- Result should have been (exact matching):
  0.0537634 0.268817
  ==== entry-3.65 FAILED



  ==== entry-5.7 ConfigureEntry procedure FAILED
  ==== Contents of test case:

      catch {destroy .e}
      entry .e -font $fixed -width 4 -xscrollcommand scroll
      pack .e
      .e insert end "01234567890"
      update
      .e configure -width 5
      set scrollInfo

  ---- Result was:
  0 0.454545
  ---- Result should have been (exact matching):
  0 0.363636
  ==== entry-5.7 FAILED



  ==== entry-13.10 GetEntryIndex procedure FAILED
  ==== Contents of test case:

      # On unix, when selection is cleared, entry widget's internal 
      # selection range is reset.

      list [catch {.e index sel.first} msg] $msg

  ---- Result was:
  0 1
  ---- Result should have been (exact matching):
  1 {selection isn't in widget .e}
  ==== entry-13.10 FAILED



  ==== entry-13.12 GetEntryIndex procedure FAILED
  ==== Contents of test case:

      list [catch {.e index sbogus} msg] $msg

  ---- Result was:
  1 {bad entry index "sbogus"}
  ---- Result should have been (exact matching):
  1 {selection isn't in widget .e}
  ==== entry-13.12 FAILED



  ==== entry-13.21 GetEntryIndex procedure FAILED
  ==== Contents of test case:

      .e index @1000

  ---- Result was:
  10
  ---- Result should have been (exact matching):
  9
  ==== entry-13.21 FAILED



  ==== entry-17.2 EntryUpdateScrollbar procedure FAILED
  ==== Contents of test case:

      .e delete 0 end
      .e insert 0 0123456789abcdef
      .e xview 3
      update
      set scrollInfo

  ---- Result was:
  0.1875 0.875
  ---- Result should have been (exact matching):
  0.1875 0.8125
  ==== entry-17.2 FAILED



  ==== entry-17.3 EntryUpdateScrollbar procedure FAILED
  ==== Contents of test case:

      .e delete 0 end
      .e insert 0 abcdefghijklmnopqrs
      .e xview 6
      update
      set scrollInfo

  ---- Result was:
  0.315789 0.894737
  ---- Result should have been (exact matching):
  0.315789 0.842105
  ==== entry-17.3 FAILED

  event.test


  ==== event-4.1(double-click-drag) click down, click up, click down again, then drag in a text widget FAILED
  ==== Contents of test case:

      destroy .t
      set t [toplevel .t]
      set e [text $t.e]
      pack $e
      tkwait visibility $e
      _keypress_string $e "Word select test"
      set anchor 1.8

      # Get the x,y coords of the second e in "select"
      foreach {anchor_x anchor_y} [_text_ind_to_x_y $e $anchor] break

      # Click down, release, then click down again
      event generate $e <Enter>
      event generate $e <ButtonPress-1> -x $anchor_x -y $anchor_y
      _pause 50
      event generate $e <ButtonRelease-1> -x $anchor_x -y $anchor_y
      _pause 50
      event generate $e <ButtonPress-1> -x $anchor_x -y $anchor_y
      _pause 50

      # Save the highlighted text
      set result [list]
      lappend result [_get_selection $e]

      # Insert cursor should be at beginning of "select"
      lappend result [$e index insert]

      # Move mouse one character to the left
      set current [$e index [list $anchor - 1 char]]
      foreach {current_x current_y} [_text_ind_to_x_y $e $current] break

      event generate $e <B1-Motion> -x $current_x -y $current_y
      _pause 50

      # Insert cursor should be before the l in "select"
      lappend result [$e index insert]

      # Selection should still be the word "select"
      lappend result [_get_selection $e]

      # Move mouse to the space before the word "select"
      set current [$e index [list $current - 3 char]]

      foreach {current_x current_y} [_text_ind_to_x_y $e $current] break
      event generate $e <B1-Motion> -x $current_x -y $current_y
      _pause 200

      lappend result [$e index insert]
      lappend result [_get_selection $e]

      # Move mouse to the r in "Word"
      set current 1.2
      foreach {current_x current_y} [_text_ind_to_x_y $e $current] break

      event generate $e <B1-Motion> -x $current_x -y $current_y
      _pause 50

      # Selection should now be "Word select"
      lappend result [_get_selection $e]

      # Insert cursor should be before the r in "Word"
      lappend result [$e index insert]

      set result

  ---- Result was:
  select 1.5 1.8 select 1.4 { select} {Word select} 1.2
  ---- Result should have been (exact matching):
  select 1.5 1.7 select 1.4 { select} {Word select} 1.2
  ==== event-4.1(double-click-drag) FAILED

  filebox.test


  ==== fileDialog-0.1 GetFileName: file types: MakeFilter() fails FAILED
  ==== Contents of test case:

      # MacOS type that is too long

      set res [list [catch {tk_getSaveFile -filetypes {{"foo" .foo {\0\0\0\0\0}}}} msg] $msg]
      regsub -all "\0" $res {\\0}

  ---- Result was:
  0 /Users/lars/Projekt/Tcl-projekt/Algebra/untitled
  ---- Result should have been (exact matching):
  1 {bad Macintosh file type "\0\0\0\0\0"}
  ==== fileDialog-0.1 FAILED

  Bus error


