# ticket

tkt_uuid: 462342ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 50. [pack]
priority: 5 Medium
foundin: obsolete: 8.4a4
resolution: Fixed
title: several pack-* tests fail
comment:
  $ cd tk/unix
  $ ./configure --disable-shared
  $ ./tktest ../tests/oldpack.test
  ...
  Error in startup script: bad option "e": should be top,
  bottom, left, right, expand, fill, fillx, filly, padx,
  pady, or frame
      while executing
  "pack append .pack .pack.violet top .pack.green {left
  e} \
          .pack.blue {left expand} .pack.red {left
  expand}"
      (file "../tests/oldpack.test" line 309)


  Before the evaluation fails complely, with the
  startup script error, several test errors are
  reported, see the attached file.

  Again, these errors are seen on Linux, but not
  Solaris.

  Obj-ification of [pack] ?


tkt_uuid: 587937ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 04. Canvas Basics
priority: 5 Medium
foundin: None
resolution: None
title: Don't shuffle tag list sequence
comment:
  Canvas should not shuffle the tag list sequence (on
  which I'm relying to retrieve "dynamic option"
  parameters) in dtag.

  Current code:

  for (i = itemPtr->numTags-1; i >= 0; i--) {
  if (itemPtr->tagPtr[i] == tag) {
      itemPtr->tagPtr[i] = itemPtr->tagPtr[itemPtr->numTags-1];
      itemPtr->numTags--;
  }
      }

  Rather, it should use memmove to delete the tag.


tkt_uuid: 220956ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 69. Events
priority: 6
foundin: final: 8.0.5
resolution: Invalid
title: Tcl_DeleteInterp produce an illegal Tcl_Eval during window close
comment:
  OriginalBugID: 6311 Bug
  Version: 8.0.5
  SubmitDate: '2000-09-25'
  LastModified: 
  Severity: MED
  Status: UnAssn
  Submitter: techsupp
  OS: Digital Unix
  OSVersion: 4.0f


  Name:
  Tupone Alfredo

  Comments:
  My work around will be (I hope) calling a destroy . before deleting the
      Interpreter

  ObservedBehavior:
  I got a bgError, while deleting an interpreter, because Tix, for its Balloon widget, has put some binding on the Event destroy of the window. The text on the bgError was something like "Tcl_Eval called with a deleted interpreter".


tkt_uuid: 557090ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 41. Photo Images
priority: 6
foundin: None
resolution: None
title: Allow alpha value in [image put]
comment:
  Default format handler doesn't deal with alpha value.
  I am writing a format handler, "pixel", where user can
  specify
  the following options:
    -colormodel hsv|rgb
       Color model to use for color cells 
    -packed /boolean/
       Specifies the format of each color cells. If
  false, a color
       cell is a list of 3 (or 4) values, between 0 and
  255,
       specifying the red, green, blue (and alpha)
  values,
       or hue, saturation, value (and alpha) values.
       if true, a color cell is a single integer, i,
  where
       (i >> 24) & 0xff is the alpha value,
       (i >> 16) & 0xff is the red or hue value,
       (i >>  8) & 0xff is the green or saturation value,
       (i        ) & 0xff is the blue or value
  (brightness) value.
    -alpha /boolean/
       Specifies wheter or not to use the alpha value
  when
       copying the data. If true, each color cell must
  have
       4 values. If false, each color cell must have 3 or
  4 values,
       and alpha value is set to 255.
       (another option could specify the alpha value to
  use for all pixels instead of 255).

  This new format handler allow among other things to
  specify
  alpha value at the tcl level.
  Perhaps we could also allow alpha specification in the
  default
  format handler, with a syntax like #rrggbb@aa.


tkt_uuid: 608698ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 8
foundin: obsolete: 8.4.0
resolution: Fixed
title: SC_PATH_TCLCONFIG favors betas
comment:
  When no --with-tcl= option is given to configure,
  and both tcl8.4.0 and tcl8.4b1 source distros are
  siblings of the unpacked Tk source distro, then
  unix/configure will happily point the compiler to
  tcl8.4b1/generic/tcl.h which does not work.

  Seems that as long as Tk and Tcl get released
  in lock step, the matching version of Tcl should
  get a preferred status in the search path.

  Even if we break away from that, it would be
  good for stable distros to be preferred over alpha
  and beta ones.


tkt_uuid: 3512824fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 5 Medium
foundin: obsolete: 8.6b2
resolution: Duplicate
title: Tk and dual/multihead on windows
comment:
  Hi...

  As already posted to the mailinglist 
  (see: https://sourceforge.net/mailarchive/message.php?msg_id=29056120)

  Tk on windows appears to have a problem with screen dimensions on dual/multihead
  system. This is the bug report as suggested by Jan Nijtmans.

  Thanks,

  Roland


tkt_uuid: 3291543fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 05. Canvas Items
priority: 5 Medium
foundin: None
resolution: Fixed
title: tk crash with polygon dchars
comment:
  This short snippet causes a crash:
  =====
   canvas .a
   pack .a
   .a create polygon 0 0 0 10 10 0
   .a dchars 1 2 end
   .a coords
  =====
  When I run it I get "alloc: invalid block: 0x595020: b0 0".  Interactively it does not crash immediately, but does a few commands later.


tkt_uuid: 220597ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 2
foundin: obsolete: 8.2
resolution: Fixed
title: raise a mainwindow works different on winnt/95 or win98
comment:
  OriginalBugID: 2851 Bug
  Version: 8.2
  SubmitDate: '1999-09-21'
  LastModified: '1999-12-14'
  Severity: SER
  Status: Released
  Submitter: techsupp
  ChangedBy: hobbs
  OS: Other
  OSVersion: winnt win98 win95
  Machine: NA
  FixedDate: '1999-12-14'
  FixedInVersion: 8.2.1


  Name:
  Thomas Schwarze

  ReproducibleScript:
  I have observed that on WinNT/95 the code:
      
        wm withdraw .
        wm deiconify .
      
      raises a mainwindow to the top of the screen, on win98 it doesnt !!!
      The only q.'n.d. solution for win98 is:
        
        wm deiconify .
        wm iconify .
        wm deiconify .
      
      looks a little bit strange, but works.

  ObservedBehavior:
  see 6)

  DesiredBehavior:
  see 6)



  8.2.1 should have fixed this to make the various Windows
  versions always raise the toplevel to the top. 
  -- 12/14/1999 hobbs


tkt_uuid: 2817539fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 59. [tk_focus*]
priority: 5 Medium
foundin: None
resolution: None
title: focus problems during startup of wish application in windows
comment:
  Take any simple Tk application, like --> pack [button .b1 -text "Exit" -command exit] 
  run with 
  wish85.exe simple.tcl 
  When the application starts up, it does not have the system focus.  Before manually focusing the app (with a mouse click), if I press Alt-Tab (Windows task switcher), I see 2 "Tk" tasks.  One is my application, the other is labeled "Console".  But I never asked for a console in my app.  Also, 
  there is no visible console window on the screen, nor is there a console on my task bar or in the Windows "Close Program" dialog. 
  - If I either Alt-Tab my way to the app (which focuses it), or if I mouse click on the app to focus it, the "Console" task goes away and the application reacts normally.  Basically, once the app *is* focused once, all is normal.  It just doesn't receive focus by default for some reason and has this weird "Console" task hanging around until it is focused. 
  I have temporarily fixed the problem by placing a "focus -force ." in my application code, which does seem to work. 

  This happens on Windows 98/NT/XP
  On Vista you still get the focus problem, but you don't get the extra "console" icon in the windows task switcher window.

  It only happens when you run from wish.  Running from tclsh it works fine.


tkt_uuid: 1871101fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 47. Win Fonts
priority: 9 Immediate
foundin: obsolete: 8.5.0
resolution: Fixed
title: Vista Large DPI setting blurred
comment:
  Right Clicking on the Vista Desktop and activating the Personalize menu item provides access to the Personalization GUI. 

  There on the left hand side there is an entry Adjust font size (DPI). In the "Custom DPI..." Window setting, entering a value of 150% and not activating the "Use Windows XP style DPI scaling" causes all TK GUIs (8.4 and 8.5) to be blurred.

  I've provided an attachment from 8.5 showing the blurred 150% dpi.


tkt_uuid: 733581ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 53. [selection]
priority: 5 Medium
foundin: None
resolution: Wont Fix
title: XSetSelectionOwner called with CurrentTime
comment:
  Hello, 
   
  This is a bug report for tk-8.3.4.  According to the
  Inter-client 
  communication conventions manual (ICCCM, version 2.0), 
   
    The timestamp passed to XSetSelectionOwner must come
  from an event received from the X server. 
   
  Violating this rule could cause race conditions.  The
  routine Tk_OwnSelection (from generic/TkSelect.c)
  violates that rule: 
  it passes CurrentTime, instead. 

  Submitted by Glenn Ammons (ammons@cs.wisc.edu).

  --glenn


tkt_uuid: 572948ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 5 Medium
foundin: None
resolution: None
title: UpdateGeometryInfo/transient crash
comment:
  Here are some test cases and a patch for crashing
  in the Win32 version of the wm command. It seems
  an idle time UpdateGeometryInfo is not getting
  canceled when the window is destroyed. The window
  has to be a transient so that a call to UpdateWrapper
  happens during destruction of the master. That
  UpdateWrapper call will clear the update pending
  bit but it does not cancel the actual callback.
  I think the patch included fixes the problem but
  I can't tell if it breaks anything else since
  TIP 47 has hosed the test results.


tkt_uuid: 664781ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 07. [entry]
priority: 3 Low
foundin: obsolete: 8.4.1
resolution: Fixed
title: SGI warning: EntrySetValue
comment:
  cc-1552 cc: WARNING File =
  /home/fs3c/dgp/tk8.4.1/unix/../generic/tkEntry.c, Line
  = 2512
    The variable "code" is set but never used.

        int code, valueLen, malloced = 0;
            ^


tkt_uuid: 3028676fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 70. Event Loop
priority: 7 High
severity: Minor
foundin: current: 8.6.0
resolution: Wont Fix
title: Cocoa event loop won't let external events through
comment:
  I've got a program where I've chopped up a long running computation into smaller pieces, using the

    after 0 [after idle {next_iteration}]

  idiom for scheduling the next chunk of work while allowing the GUI to stay responsive; I believe this is the recommended way to do this.

  Unfortunately my program, which has worked well on my old PPC macs, does not seem to work on my new Intel mac: although the GUI is being updated in response to changes in e.g. label -textvariable values, I'm no longer getting any response to pressing buttons when the computation is running. Since this includes buttons I'd press to control the program, it makes it pretty useless!

  Instructions to see the problem:

  1. Start wish from a terminal.
  2. [source] the attached beachball-bug.tcl.
  -> This will create a window "Control panel" with three buttons "Halt", "Pause", and "Run", and two labels (each displaying the number 0).
  3. Press "Run".
  -> The left label will start to count upwards, slowing down as it goes. The right label will mostly say 1 but sometimes 0.
  4. Press "Pause"
  -> What should happen is that the counting stops and the right label changes to 2; an [after info] command (that may be typed at the prompt in the terminal) should confirm nothing is happening.
  ->< However, what rather happens is that the "Pause" button becomes highlighted and *stays highlighted*, while the counting continues unaffected. The mouse pointer will soon turn into the spinning beach ball above wish windows, confirming that wish is not processing any events. At this stage, you may type one (1) command at the terminal and have wish evaluate it; if you make this command "after cancel [after info]" then you can still stop the counting, but otherwise there's no way of stopping it short of killing the wish process.

  I see this problem for:
  * Tk 8.6b1.2 that I've compiled myself from sources checked out from CVS.
  * Tk 8.5.7 from /System/Library/Frameworks/Tk.framework/..., that I suppose Apple compiled.

  I don't see this problem for:
  * Tk 8.4.19 from /System/Library/Frameworks/Tk.framework/..., that I again suppose Apple compiled.
  * Tk 8.5.6 that I compiled on my old mac; this is a PPC executable, but it runs (I suppose) using Rosetta.

  The problematic wishes all seem to be 64-bit executables (tcl_platform(wordSize) is 8) whereas the working ones are 32-bit (tcl_platform(wordSize) is 4). I suppose this could mean the faulty/working distinction is rather one of Cocoa/Carbon, but I don't know if there is some other way to check if the 8.4.19 is Carbon or Cocoa.


tkt_uuid: 1759972fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 18. [text]
priority: 5 Medium
foundin: None
resolution: None
title: New tag option -selectforeground
comment:
  Existing tag options include

  -background color
  -foreground color
  -bgstipple bitmap
  -fgstipple bitmap

  To assist with syntax highlighting I would like this tag option:
  -selectforeground color

  For completeness these options could also be considered:
  -selectbackground color
  -selectbgstipple bitmap
  -selectfgstipple bitmap

  Widget Configuration
  Different colors are permitted for -foreground and -selectforeground in the widget configuration.  Often the -foreground and -selectbackground colors are dark, and the -selectforeground color is white: the text color is inverted when text is selected.

  Tag Configuration
  Tag -foreground colors are widely used, e.g. for syntax highlighting, and it would aid readability when using a light -background and a dark -selectbackground (or vice versa) if the text color could be changed when it is selected.


tkt_uuid: 220551ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 42. Photo Image|GIF
priority: 2
foundin: final: 8.1.1
resolution: Fixed
title: GIF that freezes Tk
comment:
  OriginalBugID: 2327 Bug
  Version: 8.1.1
  SubmitDate: '1999-07-06'
  LastModified: '1999-12-14'
  Severity: CRIT
  Status: Released
  Submitter: techsupp
  ChangedBy: hobbs
  OS: Other
  OSVersion: NetBSD-1.4/i386
  Machine: NA
  FixedDate: '1999-12-14'
  FixedInVersion: 8.2.2


  Name:
  Hume Smith

  ObservedBehavior:
  The image at http://www.FurNation.com/bucky/yarr/menu/Ky-butts.gif
      causes my Tk to freeze.  GIMP and giftopnm can handle it.

  DesiredBehavior:
  No image should be able to freeze the image system.



  This does not freeze 8.2.2 on Solaris of NT.  It does take about
  8 seconds to load in, but it doesn't freeze. 
  -- 12/14/1999 hobbs


tkt_uuid: 413735ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 70. Event Loop
priority: 5 Medium
foundin: obsolete: 8.4a4
resolution: Fixed
title: Test event-click-drag-1.2 fails
comment:
  On Solaris 8 (SunOS 5.8) with CDE:

  ==== event-click-drag-1.2  click and drag in an entry
  widget, this
                              tests tkEntryMouseSelect in
  entry.tcl  FAILED
  ...
  ---- Result was:
  {A Tcl/Tk selection test!} 6 18 {Tk selection} 4 {l/Tk
  selection}
  ---- Result should have been:
  {A Tcl/Tk selection test!} 6 18 {Tk selection} 2
  {Tcl/Tk selection}
  ==== event-click-drag-1.2 FAILED


tkt_uuid: 220412ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 54. [console]
priority: 2
foundin: obsolete: 8.0p2
resolution: Fixed
title: tkconsole fails to return result from ConsoleCmd
comment:
  OriginalBugID: 973 Bug
  Version: 8.0p2
  SubmitDate: '1998-12-15'
  LastModified: '1999-02-04'
  Severity: LOW
  Status: Released
  Submitter: welch
  ChangedBy: stanton
  OS: Windows 95
  OSVersion: 4.0 sr4
  Machine: X86
  FixedDate: '1999-02-04'
  FixedInVersion: 8.0.5


  Name:

  tom wilkason


  CustomShell:

  None


  ReproducibleScript:

  Run the script from the tk console window


  proc {CheckConsole} {} {

     global  tcl_platform

     if {$tcl_platform(platform) == "windows" } {

        set ConsoleState [console eval {wm state .}]    ;# need updated tkconsole.c

        set Children [winfo children .]   ;# Null for none

        set TopState [wm state .]         ;# withdrawn for hidden

        if {$Children =="" && $TopState=="withdrawn" && $ConsoleState=="withdrawn"} {


           exit

        }

        after 1000 CheckConsole

     }

  }

  wm withdraw .

  CheckConsole

  console hide


  ObservedBehavior:

  You would expect the wish application to terminate because all the windows are withdrawn. (look in the task manager and wish80.exe is still there). However it doesn't terminate because the console eval {wm state .} command is not returning withdrawn. With the patch below applied, the console eval command returns the result of the command passed to it (not just this example).


  DesiredBehavior:

  When the console window is truly withdrawn the console eval {wm state .} command should return withdrawn and the script above will terminate wish80.exe.


  Patch:

  ********

    Tcl_Eval(info->consoleInterp, "wm deiconify .");

        } else if ((c == 'e') && (strncmp(argv[1], "eval", length)) == 0) {

    if (argc == 3) {

  407c407,412

  <     Tcl_Eval(info->consoleInterp, argv[2]);

  ---

  >          if (Tcl_Eval(info->consoleInterp, argv[2]) == TCL_ERROR) {

  >             Tcl_AppendResult(interp,"Eval error: ",consoleInterp->result, (c

  >             return TCL_ERROR;

  >          } else {

  >             Tcl_AppendResult(interp,consoleInterp->result, (char *) NULL);

  >          }

    } else {

        Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],

        " eval command\"", (char *) NULL);


  PatchFiles:

  TkConsole.c


tkt_uuid: 220626ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 85. Win Build
priority: 2
foundin: obsolete: 8.3b1
resolution: Fixed
title: Better support for compilation as static library on Windows
comment:
  OriginalBugID: 3647 RFE
  Version: 8.3b1
  SubmitDate: '1999-11-23'
  LastModified: '2000-03-31'
  Severity: MED
  Status: Released
  Submitter: techsupp
  ChangedBy: hobbs
  OS: All Windows
  FixedDate: '2000-03-31'
  FixedInVersion: 8.3.1


  Name:

  Jan Nijtmans



  CVS:

  6 nov 1999



  Comments:

  This patch is supplied with Wrap 0.3, which requires those modifications.



  DesiredBehavior:

  - The function TkWinXInit() should be called when Tk is

    compiled as a static library.

  - The function TkWinGetPlatformId should be moved from

    TkWin32Dll.c to TkWinX.c. Otherwise when creating a

    static library we don't have the possibility to leave

    out DllMain, because TkWinGetPlatformId will be left

    out together with it.

  - It is not necessary to have both a DllMain and a

    DllEntryPoint function. With a proper macro both

    functions can be merged in a single one which works

    on VC++, Borland and (as extra bonus) with gcc as well.



  Patch:

  *** generic/tkWindow.c.origWed Apr 21 23:53:28 1999

  --- generic/tkWindow.cSat Sep 25 19:39:12 1999

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

  *** 21,26 ****

  --- 21,29 ----

    #if !defined(__WIN32__) && !defined(MAC_TCL)

    #include "tkUnixInt.h"

    #endif

  + #if defined(__WIN32__)

  + #include "tkWinInt.h"

  + #endif

    

    

    typedef struct ThreadSpecificData {

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

  *** 2709,2714 ****

  --- 2712,2727 ----

        Tcl_DString class;

        ThreadSpecificData *tsdPtr;

        

  + #if defined(__WIN32__) && defined(STATIC_BUILD) && !defined(NO_STATIC_INIT)

  +     /*

  +      * If we are in a statically linked executable, then we need to

  +      * explicitly initialize the Windows function tables here since

  +      * DllMain() will not be invoked.

  +      */

  + 

  +     TkWinXInit(GetModuleHandle(NULL));

  + #endif

  + 

        /*

         * Ensure that we are getting the matching version of Tcl.  This is

         * really only an issue when Tk is loaded dynamically.

  *** win/tkWin32Dll.c.origFri Apr 16 03:51:48 1999

  --- win/tkWin32Dll.cSat Sep 25 19:33:35 1999

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

  *** 13,26 ****

    

    #include "tkWinInt.h"

    

  ! static int tkPlatformId;

    

  - /*

  -  * The following declaration is for the VC++ DLL entry point.

  -  */

  - 

  - BOOL APIENTRYDllMain _ANSI_ARGS_((HINSTANCE hInst,

  -     DWORD reason, LPVOID reserved));

    

    /*

     *----------------------------------------------------------------------

  --- 13,22 ----

    

    #include "tkWinInt.h"

    

  ! #if defined(_MSC_VER) || defined(__GNUC__)

  ! #define DllEntryPoint DllMain

  ! #endif

    

    

    /*

     *----------------------------------------------------------------------

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

  *** 32,63 ****

     *routine.

     *

     * Results:

  !  *See DllMain.

  !  *

  !  * Side effects:

  !  *See DllMain.

  !  *

  !  *----------------------------------------------------------------------

  !  */

  ! 

  ! BOOL APIENTRY

  ! DllEntryPoint(hInst, reason, reserved)

  !     HINSTANCE hInst;/* Library instance handle. */

  !     DWORD reason;/* Reason this function is being called. */

  !     LPVOID reserved;/* Not used. */

  ! {

  !     return DllMain(hInst, reason, reserved);

  ! }

  ! 

  ! /*

  !  *----------------------------------------------------------------------

  !  *

  !  * DllMain --

  !  *

  !  *DLL entry point.

  !  *

  !  * Results:

  !  *TRUE on sucess, FALSE on failure.

     *

     * Side effects:

     *None.

  --- 28,34 ----

     *routine.

     *

     * Results:

  !  *TRUE on success, FALSE otherwise.

     *

     * Side effects:

     *None.

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

  *** 66,77 ****

     */

    

    BOOL APIENTRY

  ! DllMain(hInstance, reason, reserved)

  !     HINSTANCE hInstance;

  !     DWORD reason;

  !     LPVOID reserved;

    {

  -     OSVERSIONINFO os;

    

        /*

         * If we are attaching to the DLL from a new process, tell Tk about

  --- 37,47 ----

     */

    

    BOOL APIENTRY

  ! DllEntryPoint (

  !     HINSTANCE hInstance,/* Library instance handle. */

  !     DWORD reason,/* Reason this function is being called. */

  !     LPVOID reserved)/* Not used. */

    {

    

        /*

         * If we are attaching to the DLL from a new process, tell Tk about

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

  *** 80,119 ****

         */

        

        if (reason == DLL_PROCESS_ATTACH) {

  - os.dwOSVersionInfoSize = sizeof(os);

  - GetVersionEx(&os);

  - tkPlatformId = os.dwPlatformId;

  - 

            TkWinXInit(hInstance);

        } else if (reason == DLL_PROCESS_DETACH) {

            TkWinXCleanup(hInstance);

        }

        return(TRUE);

    }

  - 

  - /*

  -  *----------------------------------------------------------------------

  -  *

  -  * TkWinGetPlatformId --

  -  *

  -  *Determines whether running under NT, 95, or Win32s, to allow 

  -  *runtime conditional code.

  -  *

  -  * Results:

  -  *The return value is one of:

  -  *    VER_PLATFORM_WIN32sWin32s on Windows 3.1. 

  -  *    VER_PLATFORM_WIN32_WINDOWSWin32 on Windows 95.

  -  *    VER_PLATFORM_WIN32_NTWin32 on Windows NT

  -  *

  -  * Side effects:

  -  *None.

  -  *

  -  *----------------------------------------------------------------------

  -  */

  - 

  - int

  - TkWinGetPlatformId()

  - {

  -     return tkPlatformId;

  - }

  - 

  --- 50,58 ----

  *** win/tkWinX.c.origFri Jul  9 04:10:07 1999

  --- win/tkWinX.cSat Sep 25 19:33:35 1999

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

  *** 26,31 ****

  --- 26,32 ----

     */

    

    int tkpIsWin32s = -1;

  + static int tkPlatformId;

    

    /*

     * Declarations of static variables used in this file.

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

  *** 142,148 ****

    

        info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

        GetVersionEx(&info);

  !     tkpIsWin32s = (info.dwPlatformId == VER_PLATFORM_WIN32s);

    

        if (childClassInitialized != 0) {

    return;

  --- 143,150 ----

    

        info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

        GetVersionEx(&info);

  !     tkPlatformId = info.dwPlatformId;

  !     tkpIsWin32s = (tkPlatformId == VER_PLATFORM_WIN32s);

    

        if (childClassInitialized != 0) {

    return;

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

  *** 1132,1132 ****

  --- 1134,1161 ----

    }

  + 

  + /*

  +  *----------------------------------------------------------------------

  +  *

  +  * TkWinGetPlatformId --

  +  *

  +  *Determines whether running under NT, 95, or Win32s, to allow 

  +  *runtime conditional code.

  +  *

  +  * Results:

  +  *The return value is one of:

  +  *    VER_PLATFORM_WIN32sWin32s on Windows 3.1. 

  +  *    VER_PLATFORM_WIN32_WINDOWSWin32 on Windows 95.

  +  *    VER_PLATFORM_WIN32_NTWin32 on Windows NT

  +  *

  +  * Side effects:

  +  *None.

  +  *

  +  *----------------------------------------------------------------------

  +  */

  + 

  + int

  + TkWinGetPlatformId()

  + {

  +     return tkPlatformId;

  + }

  +



  PatchFiles:

  tkWindow.c tkWin32Dll.c tkWinX.c





  The TkWinXInit was added to tkWinInit.c:TkpInit where is can be
  safely called without the #def's.  The tkPlatformId was moved
  to tkWin32Dll.c, but I didn't change the DllEntryPoint (Tcl
  uses the same thing, and it works just fine). 
  -- 03/31/2000 hobbs


tkt_uuid: 220526ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 41. Photo Images
priority: 2
foundin: obsolete: 8.1
resolution: Fixed
title: Initialization of unused field in Tk_PhotoBlock
comment:
  OriginalBugID: 2068 RFE
  Version: 8.1
  SubmitDate: '1999-05-14'
  LastModified: '1999-06-30'
  Severity: LOW
  Status: Released
  Submitter: pat
  ChangedBy: redman
  OS: Linux
  OSVersion: 4.2
  Machine: Other
  FixedDate: '1999-06-30'
  FixedInVersion: 8.2b1


  Name:

  Jan Nijtmans



  DesiredBehavior:

  In Tk8.0.3 an additional field was added to the Tk_PhotoBlock

      strucure at my request, but so far is isn't used. If this field

      would be initialized to 0 (in 4 places), it could be used

      by extension (e.g. Img) to detect whether Tk has support for

      transparency or not.



  Patch:

  *** generic/tkImgGIF.c.origFri May 14 10:33:54 1999

  --- generic/tkImgGIF.cFri May 14 10:36:27 1999

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

  *** 263,268 ****

  --- 263,269 ----

        block.offset[0] = 0;

        block.offset[1] = 1;

        block.offset[2] = 2;

  +     block.offset[3] = 0;

        nBytes = height * block.pitch;

        block.pixelPtr = (unsigned char *) ckalloc((unsigned) nBytes);

    

  *** generic/tkImgPPM.c.origFri May 14 10:34:01 1999

  --- generic/tkImgPPM.cFri May 14 10:37:20 1999

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

  *** 183,188 ****

  --- 183,189 ----

    block.offset[1] = 1;

    block.offset[2] = 2;

        }

  +     block.offset[3] = 0;

        block.width = width;

        block.pitch = block.pixelSize * fileWidth;

    

  *** generic/tkImgPhoto.c.origFri May 14 10:33:46 1999

  --- generic/tkImgPhoto.cFri May 14 10:35:54 1999

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

  *** 802,807 ****

  --- 802,808 ----

    block.offset[0] = 0;

    block.offset[1] = 1;

    block.offset[2] = 2;

  + block.offset[3] = 0;

    Tk_PhotoPutBlock((ClientData)masterPtr, &block,

    options.toX, options.toY, options.toX2 - options.toX,

    options.toY2 - options.toY);

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

  *** 4173,4177 ****

  --- 4174,4179 ----

        blockPtr->offset[0] = 0;

        blockPtr->offset[1] = 1;

        blockPtr->offset[2] = 2;

  +     blockPtr->offset[3] = 0;

        return 1;

    }



  PatchFiles:

  tkImgGIF.c tkImgPPM.c tkImgPhoto.c





  Applied the patch. 
  -- 06/30/1999 redman


tkt_uuid: 220064ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 85. Win Build
priority: 1 Zero
foundin: obsolete: 8.3b1
resolution: Duplicate
title: Menu items check-marks are initally drawn incompletely.
comment:
  OriginalBugID: 4175 Bug
  Version: 8.3b1
  SubmitDate: '2000-02-14'
  LastModified: '2000-02-22'
  Severity: LOW
  Status: Closed
  Submitter: techsupp
  ChangedBy: hobbs
  RelatedBugIDs: 4178
  OS: Windows 98
  Machine: Micron P2-450, 256MB RAM, Guillemot Prophet DDR GeForce video ca
  ClosedDate: '2000-02-22'


  Name:
  Brian Schmidt

  Extensions:
  Tk

  CustomShell:
  none

  ReproducibleScript:
  Run the Widget demonstration, Menu demonstration, and bring up the Cascades - Check buttons menu.

  ObservedBehavior:
  Tcl/Tk 8.3, menus with checkbuttons on them (check-marks next to the menu items), check-marks are initally drawn incompletely.  Just a couple specks.  However, when the mouse passes over that menu item, the check-mark is redrawn correctly.

  This is with Tcl/Tk 8.3 final, your version list on this form only has 8.3b1.

  DesiredBehavior:
  Correctly formed check-marks when menu first displayed.


tkt_uuid: 3259766fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 01. Bindings
priority: 7 High
foundin: obsolete: 8.5.9
resolution: Duplicate
title: Doubleclick events lost in Korean Windows
comment:
  If you install and select the Korean language on Windows, then binding an event for doubleclick (any button) does not work.

  I found this discussed at http://wiki.tcl.tk/12731 but without any solution so far. I can add some more details.

  You do not need a Korean version of Windows to reproduce the bug. I took an ordinary Windows XP SP3 and added the Korean language by going Control Panel -> Date, Time, Language and Regional Options -> Add Other Languages -> Language tab -> Details. Then in the Installed Services pane, hit Add and select Korean from the 'Input language' pulldown menu in the popup box. The 'Keyboard layout/IME' pulldown will also show 'Korean' -- leave this there and keep hitting OK till all dialogues are gone. You can now click on the language selector in the toolbar that normally says 'EN" (or whatever your default language is) and select 'KO' -- you will then see the bug. Note that it sporadically reverts to the default language.

  The other interesting thing is that the bug does not apply to canvas items. It seems to apply to all widgets, but try this:
  pack [canvas .c]
  .c create rectangle 100 100 300 200 -fill orange
  bind .c <Double-1> {puts PING}
  .c bind 1 <Double-1> {puts PONG}

  Now with your language set to EN you get PING if you doubleclick on the canvas background, and PONG PING if you doubleclick on the rectangle. But set the language to KO and you get nothing for a doubleclick on the background, and PONG for a doubleclick on the rectangle.

  Please fix this quickly, it is annoying our Korean resellers!


tkt_uuid: 3021044fffffffffffffffffffffffffffffffff
type: Patch
status: Open
subsystem: 48. Geometry Management
priority: 5 Medium
foundin: None
resolution: None
title: Partial fix for Bug#3020550
comment:
  An attempt to fix Bug #3020550, limited to [grid]-related code (other geometry managers are probably affected, and fixable using the same approach).

  The patch introduces a new internal Tk function, TkGetWindowSpecificData (added into tkInt stub table). It maintains a linked list of data blocks associated with each TkWindow, where each module (e.g. grid geometry manager) can store its own data related to a window; all data blocks in the chain are freed (Tcl_EventuallyFree'd with a specified freeProc) at the end of Tk_DestroyWindow, when _really_ no one should reference TkWindow any more. 

  Tk/generic/tkGrid.c is modified so it doesn't use hash table for tkwin-to-Gridder* mapping, but gets a Gridder with TkGetWindowSpecificData. The most visible part of #3020550, that is, recreating Gridders for tkwins that are then invalidated, goes away with this change automatically.

  As of handling [grid] operations for dead windows, e.g. called by <Destroy> bindings, this patch doesn't generate errors on them, even on configuring/adding dead windows (or _into_ dead masters). It tries to behave as if destroyed windows were alive and about to die: e.g. if any window is gridded into a dead master, it is detached from its previous master and ends up unmapped. As Gridder* structure now remains valid when <Destroy> bindings are called, and freed only at the very end of Tk_DestroyWindow, I needed only a few `ifs' added to avoid breaking things with dead windows: we just have to prevent relinking slaves and masters if either of them is dead, and avoid using null tkwin from a dead Gridder in Tk window operations.

  I chose this approach instead of complaining about dead windows because there is probably a lot of code expecting this behavior (_surely_ a lot of code expect [grid forget] to succeed). Without this patch, such code got an obscure reusing-dead-Gridders bug along with `succeeding' grid operations, but I decided it not to be a reason to _start_ generating errors in these cases.

  I'm asking anyone interested to test this patch and review the code. If this patch is accepted, I'm going to modify tkPack.c and tkPlace.c so they use TkGetWindowSpecificData instead of tkwin-keyed hash table too.


tkt_uuid: 220848ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 69. Events
priority: 5 Medium
foundin: obsolete: 8.0p2
resolution: Fixed
title: memory leaked when you go out a script TK
comment:
  OriginalBugID: 2197 Bug
  Version: 8.0p2
  SubmitDate: '1999-06-08'
  LastModified: 
  Severity: MED
  Status: UnAssn
  Submitter: techsupp
  OS: Linux
  Machine: Other


  Name:
  bruno Trement

  ObservedBehavior:
  in tkBindFree the bindInfoPtr is not completely released see structure
      BindInfo
      the structure DisplayFocusInfo is alocated by static DisplayFocusInfo *
      FindDisplayFocusInfo(mainPtr, dispPtr)but is not released.

  DesiredBehavior:
  no memory leaked


tkt_uuid: 3588636fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 11. Aqua Menus
priority: 5 Medium
foundin: None
resolution: None
title: bg change fg sometimes in Aqua menus
comment:
  As of Tcl/Tk 8.5 the background option for menus affects the *foreground* color, not the background. Even stranger, it only affects the foreground color if foreground is not set. Once foreground is set the background is ignored.

  Here is demo code:

  tk_optionMenu .om var One Two Three
  pack .om
  .om.menu configure -bg "green"

  At this point observe that the menu has green foreground text (and the normal white background).

  .om.menu configure -fg "red"

  Now change the foreground and observe that the text takes on the desired foreground color.

  .om.menu configure -bg "green"

  Now change the background and observe that the new color is ignored.

  I doubt that the background color can be set on Aqua. If that is so, then please fix Aqua Tk so that menu ignores the background option. It should never be used to change the foreground color!


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: 220877ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 38. [tk_messageBox]
priority: 5 Medium
foundin: None
resolution: Duplicate
title: Timeout on tk_messageBox
comment:
  OriginalBugID: 3432 RFE
  Version: 8.2.1
  SubmitDate: '1999-11-05'
  LastModified: '2000-06-19'
  Severity: LOW
  Status: UnAssn
  Submitter: techsupp
  ChangedBy: ericm
  OS: Windows NT


  Name:
  Allen Flick

  Comments:
  My apologies for sending the entire file.  I'm new to NT & don't know how to do a diff within NT.

  DesiredBehavior:
  Focusing on the tk_messageBox as my choice, our testing needs here sometimes require that the test technician be notified of
  something that is NOT critical to continuing on with the test suite, and the technician is off doing another task. Therefore, 
  not wanting the test suite to lock up until the technician returns, I have taken the liberty to modify tk_messageBox to suit that
  need by adding a -wait argument.  All seems to work just fine, therefore I'm submitting it for possible permanent inclusion
  in future releases.

  Patch:
  # msgbox.tcl --
  #
  #Implements messageboxes for platforms that do not have native
  #messagebox support.
  #
  # RCS: @(#) $Id: msgbox.tcl,v 1.5 1999/04/16 01:51:26 stanton Exp $
  #
  # Copyright (c) 1994-1997 Sun Microsystems, Inc.
  #
  # See the file "license.terms" for information on usage and redistribution
  # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  #
  # tkMessageBox --
  #
  #Pops up a messagebox with an application-supplied message with
  #an icon and a list of buttons. This procedure will be called
  #by tk_messageBox if the platform does not have native
  #messagebox support, or if the particular type of messagebox is
  #not supported natively.
  #
  #This procedure is a private procedure shouldn't be called
  #directly. Call tk_messageBox instead.
  #
  #See the user documentation for details on what tk_messageBox does.
  #
  proc tkMessageBox {args} {
      global tkPriv tcl_platform

      set w tkPrivMsgBox
      upvar #0 $w data

      #
      # The default value of the title is space (" ") not the empty string
      # because for some window managers, a 
      #wm title .foo ""
      # causes the window title to be "foo" instead of the empty string.
      #
      set specs {
          {-default "" "" ""    }
          {-icon    "" "" "info"}
          {-message "" "" ""    }
          {-parent  "" "" .     }
          {-title   "" "" " "   }
          {-type    "" "" "ok"  }
          {-wait    "" "" "0"   }
      }

      tclParseConfigSpec $w $specs "" $args

      if {$data(-wait) < 0} {
          error "bad -wait value \"$data(-wait)|': must be positive integer."
      }
      if {[lsearch {info warning error question} $data(-icon)] == -1} {
  error "bad -icon value \"$data(-icon)\": must be error, info, question, or warning"
      }
      if {![string compare $tcl_platform(platform) "macintosh"]} {
        switch -- $data(-icon) {
            "error"     {set data(-icon) "stop"}
            "warning"   {set data(-icon) "caution"}
            "info"      {set data(-icon) "note"}
  }
      }

      if {![winfo exists $data(-parent)]} {
  error "bad window path name \"$data(-parent)\""
      }

      set data_default [string compare $data(-default) ""]

      switch -- $data(-type) {
  abortretryignore {
      set buttons {
  {abort  -width 6 -text Abort -under 0}
  {retry  -width 6 -text Retry -under 0}
  {ignore -width 6 -text Ignore -under 0}
      }
            if {!$data_default && $data(-wait)} {
                set data(-default) "ignore"
            }
  }
  ok {
      set buttons {
  {ok -width 6 -text OK -under 0}
      }
            if { !$data_default } {
  set data(-default) "ok"
      }
  }
  okcancel {
      set buttons {
  {ok     -width 6 -text OK     -under 0}
  {cancel -width 6 -text Cancel -under 0}
      }
            if {!$data_default && $data(-wait)} {
                set data(-default) "cancel"
            }
  }
  retrycancel {
      set buttons {
  {retry  -width 6 -text Retry  -under 0}
  {cancel -width 6 -text Cancel -under 0}
      }
            if {!$data_default && $data(-wait)} {
                set data(-default) "cancel"
            }
  }
  yesno {
      set buttons {
  {yes    -width 6 -text Yes -under 0}
  {no     -width 6 -text No  -under 0}
      }
            if {!$data_default && $data(-wait)} {
                set data(-default) "no"
            }
  }
  yesnocancel {
      set buttons {
  {yes    -width 6 -text Yes -under 0}
  {no     -width 6 -text No  -under 0}
  {cancel -width 6 -text Cancel -under 0}
      }
            if {!$data_default && $data(-wait)} {
                set data(-default) "cancel"
            }
  }
  default {
      error "bad -type value \"$data(-type)\": must be abortretryignore, ok, okcancel, retrycancel, yesno, or yesnocancel"
  }
      }

      if {[string compare $data(-default) ""]} {
  set valid 0
  foreach btn $buttons {
      if {![string compare [lindex $btn 0] $data(-default)]} {
  set valid 1
  break
      }
  }
  if {!$valid} {
      error "invalid default button \"$data(-default)\""
  }
      }

      # 2. Set the dialog to be a child window of $parent
      #
      #
      if {[string compare $data(-parent) .]} {
  set w $data(-parent).__tk__messagebox
      } else {
  set w .__tk__messagebox
      }

      # 3. Create the top-level window and divide it into top
      # and bottom parts.

      catch {destroy $w}
      toplevel $w -class Dialog
      wm title $w $data(-title)
      wm iconname $w Dialog
      wm protocol $w WM_DELETE_WINDOW { }
      wm transient $w $data(-parent)
      if {![string compare $tcl_platform(platform) "macintosh"]} {
  unsupported1 style $w dBoxProc
      }

      frame $w.bot
      pack $w.bot -side bottom -fill both
      frame $w.top
      pack $w.top -side top -fill both -expand 1
      if {[string compare $tcl_platform(platform) "macintosh"]} {
  $w.bot configure -relief raised -bd 1
  $w.top configure -relief raised -bd 1
      }

      # 4. Fill the top part with bitmap and message (use the option
      # database for -wraplength and -font so that they can be
      # overridden by the caller).

      option add *Dialog.msg.wrapLength 3i widgetDefault
      if {![string compare $tcl_platform(platform) "macintosh"]} {
  option add *Dialog.msg.font system widgetDefault
      } else {
  option add *Dialog.msg.font {Times 18} widgetDefault
      }

      label $w.msg -justify left -text $data(-message)
      pack $w.msg -in $w.top -side right -expand 1 -fill both -padx 3m -pady 3m
      if {[string compare $data(-icon) ""]} {
  label $w.bitmap -bitmap $data(-icon)
  pack $w.bitmap -in $w.top -side left -padx 3m -pady 3m
      }

      # 5. Create a row of buttons at the bottom of the dialog.

      set i 0
      foreach but $buttons {
  set name [lindex $but 0]
  set opts [lrange $but 1 end]
        if {![llength $opts]} {
      # Capitalize the first letter of $name
            set capName [string toupper  [string index $name 0]][string range $name 1 end]
      set opts [list -text $capName]
  }

        eval button [list $w.$name] $opts [list -command [list set tkPriv(button) $name]]

  if {![string compare $name $data(-default)]} {
      $w.$name configure -default active
  }
        pack $w.$name -in $w.bot -side left -expand 1 -padx 3m -pady 2m

  # create the binding for the key accelerator, based on the underline
  #
  set underIdx [$w.$name cget -under]
  if {$underIdx >= 0} {
      set key [string index [$w.$name cget -text] $underIdx]
            bind $w <Alt-[string tolower $key]>  [list $w.$name invoke]
            bind $w <Alt-[string toupper $key]>  [list $w.$name invoke]
  }
  incr i
      }

      # 6. Create a binding for <Return> on the dialog if there is a
      # default button.

      if {[string compare $data(-default) ""]} {
        bind $w <Return> [list tkButtonInvoke $w.$data(-default)]
      }

      # 7. Withdraw the window, then update all the geometry information
      # so we know how big it wants to be, then center the window in the
      # display and de-iconify it.

      wm withdraw $w
      update idletasks
      set x [expr {[winfo screenwidth $w]/2 - [winfo reqwidth $w]/2  - [winfo vrootx [winfo parent $w]]}]
      set y [expr {[winfo screenheight $w]/2 - [winfo reqheight $w]/2  - [winfo vrooty [winfo parent $w]]}]
      wm geom $w +$x+$y
      wm deiconify $w

      # 8. Set a grab and claim the focus too.

      set oldFocus [focus]
      set oldGrab [grab current $w]
      if {[string compare $oldGrab ""]} {
  set grabStatus [grab status $oldGrab]
      }
      grab $w
      if {[string compare $data(-default) ""]} {
  focus $w.$data(-default)
      } else {
  focus $w
      }

      # 9. Wait for the user to respond, or simulate a user response
      # after the designated wait time. Then restore the focus and
      # return the index of the selected button.  Restore the focus
      # before deleting the window, since otherwise the window manager
      # may take the focus away so we can't redirect it.  Finally,
      # restore any grab that was in effect.

      if { $data(-wait) } {
          after $data(-wait) {set tkPriv(button) $data(-default)}
      }

      tkwait variable tkPriv(button)
      catch {focus $oldFocus}
      destroy $w
      if {[string compare $oldGrab ""]} {
        if {![string compare $grabStatus "global"]} {
      grab -global $oldGrab
  } else {
      grab $oldGrab
  }
      }
      return $tkPriv(button)
  }

  PatchFiles:
  msgbox.tcl



  Can we support timeouts like this with the NT dialogs?  The patch shown will only affect UNIX/Macintosh.

  - eric

  -- 06/19/2000 ericm


tkt_uuid: 483387ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 46. Unix Fonts
priority: 6
foundin: obsolete: 8.3.2
resolution: None
title: BadFont error using multiple X servers
comment:
  The script below documents and demonstrates the
  problem.  I've worked around this in my environment, so
  it isn't urgent for me, but it would be nice if it
  could be fixed or documented as a limitation.

  Ken Fitch


  #
  #       This tk/tcl script demonstrates the X BadFont
  error thrown when
  #       we set up a toplevel for display on an X server
  that is different
  #       from the X server derived from "-display" or
  the 
  #       DISPLAY environment
  #       variable.
  #
  #       Using multiple screens on a single X server
  host seems to be OK
  #               
  #       This problem was seen on a Solaris system
  running Tk/Tcl 8.3.2
  #
  #       To test on your system:
  #       
  #               - you need X server access to some
  other machine on your  
  #                 network
  #
  #               - invoke as "wish <this script>"
  #                       (it should exit normally)
  #
  #               - invoke as "wish <this script>
  -display  <remote_X_server>:0.0"
  #                       (it should throw a BadFont
  error)
  #       
  #       Alternatively, you can edit the X_screen line
  to use a remote X server
  #       and omit the "-display" stuff.  The key is to
  get the "." window and the
  #       ".my_toplevel" windows to be rendered on
  different hosts.
  #
  ##################################################################################
  #
  #       I'm not sure if there's an easy (or hard) fix
  for this or not.  This does 
  #       not seem to me to be a common case, so it may
  be sufficient to simply
  #       document the behavior.  I have no idea what
  would happen on a non-Unix system.
  #
  #       It would be nice if the code could detect the
  situation, and at least 
  #       circumvent the X error(s).
  #
  #


  set X_screen ":0.0"


  eval font create symbolic_font 

  set window  [toplevel .my_toplevel -screen $X_screen] 
  button $window.button  -text "Touch here"  -font
  symbolic_font



  puts "default     window screen: [winfo screen .]"
  puts "my_toplevel window screen: [winfo screen
  .my_toplevel]"

  puts "about to delete named font symbolic_font ..."
  font delete symbolic_font 
  update

  puts "about to create named font symbolic_font ..."
  font create symbolic_font 
  update
  puts "taking a nap ..."
  after 3000
  puts "exiting normally"
  exit


tkt_uuid: 2739360fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 37. [tk_get*File]
priority: 9 Immediate
foundin: None
resolution: Accepted
title: improved icons for unix file dialogs
comment:
  This patch adds png icons to the unix file dialogs in the same way it's already done for tk_messageBox.
  The source of the icons is the same (http://tango.freedesktop.org/Tango_Desktop_Project , version 0.8.90) and the COPYING file says "The icons in this repository are herefore released into the Public Domain." .
  The only custom icon is the "updir" image, which is simply a composite of the actions/go-up.png and places/folder.png stock icons.


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: 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: 960391ffffffffffffffffffffffffffffffffff
type: Patch
status: Open
subsystem: 09. [listbox]
priority: 5 Medium
foundin: None
resolution: None
title: Improved binding for listboxes in extended selection mode
comment:
  Improved binding for listboxes in extended selection mode
  =========================================================

  A typical usage of a listbox in extended selection mode
  is the extending of the selection by pressing the
  <Shift> button in combination with hitting the <Up> an
  <Down> arrow keys or pressing the <B1> mouse button.
  The listbox behaviour for these actions is defined in
  the proc tk::ListBoxMotion, which can be found in the
  file listbox.tcl in the Tk library.

  Especially for this specific behaviour, the revised
  proc tk::ListBoxMotion below exhibits considerable
  improvements in execution speed and display handling.

  The revised proc has also been submitted as a patch to
  sourceforge. I post it here to c.l.t for those among
  the newsgroup readers who want to try it in an early stage.


  Sincerely,

  Erik Leunissen
  --------------



  Summary of improvements
  =======================
  a. Changing the selection on various incontiguous
  selected/deselected ranges with <Shift-B1>:
     Reduction of execution time in the order of 25 - 33%
  (1.33 - 1.5 times faster)


  b. Changing (extending/reducing) the selection by a
  single item through <Shift-Up>, <Shift-Down> or
  dragging the mouse one item with <Shift-B1> pressed:
     Reduction of execution time in the order of 50 - 70%
  (2 - 3.5 times faster)


  c. As in b. but for the special case that the action
  doesn't change the selection state of the item under
  the pointer:
     Reduction of execution time in the order of 99 -
  99.3% (100 - 150 times faster)


  With respect to cases b and c:
  Using the standard Tk bindings for listboxes in
  combination with hardware (CPU and video card) that is
  nothing special, an item immediately adjacent to the
  item that to be (de)selected could be seen to flicker
  for a moment. With the revised code, the flicker is gone.

  Erik Leunissen
  ===========


tkt_uuid: 749018ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.5a0
resolution: Invalid
title: text.test fails
comment:
   This test fails on Tru64Unix 5.1A with tcl8.4.3/tk-cvs
   but NOT tcl8.4.3/tk8.4.3(maybe it's expected when
   messing up versions). But in case of tcl8.4.3/tk8.4.3
  text-15.2 was failing(so that is fixed in cvs).



  ==== text-6.14 TextWidgetCmd procedure, "compare"
  option FAILED
  ==== Contents of test case:

      list [catch {.t co 1.0 z 1.2} msg] $msg

  ---- Result was:
  1 {bad option "co": must be bbox, cget, compare,
  configure, debug, delete, dlineinfo, dump, edit, get,
  image, index, insert, mark, scan, search, see, tag,
  window, xview, or yview}
  ---- Result should have been (exact matching):
  1 {ambiguous option "co": must be bbox, cget, compare,
  configure, debug, delete, dlineinfo, dump, edit, get,
  image, index, insert, mark, scan, search, see, tag,
  window, xview, or yview}
  ==== text-6.14 FAILED


tkt_uuid: 2912473fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 01. Bindings
priority: 9 Immediate
foundin: obsolete: 8.5.8
resolution: Fixed
title: Tk cannot be used on X11 displays whose names contain "::"
comment:
  Detailed problem description AND PATCHES are in forum thread: http://sourceforge.net/mailarchive/forum.php?thread_name=1260173691.4656.89.camel%40tinygod3&forum_name=tcl-core

  Quote:

  "I recently discovered a bug in Tk with X11 display strings. If the
  display string contains "::" then Tk cannot load, because it uses the
  display name as a variable name and this produces an error about the
  parent namespace not being defined. This happened to me when trying to
  use a Tk app (Mentor Graphics ModelSim) over XVnc, where the display
  string was "::1:1.0". At least one other person has reported the same
  problem: http://ubuntu-ky.ubuntuforums.org/showthread.php?p=8255492.
  (That post suggests that this has only recently become a problem,
  probably because until now display names never contained "::".)"


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: 1866095fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 74. Application Embedding
priority: 9 Immediate
foundin: obsolete: 8.5.1
resolution: Fixed
title: TK_LIBS needs update
comment:
  When embedding Tk and linking to
  libtk.a, C programs need an updated
  value for TK_LIBS to be sure they
  link against the -lXft used by
  Tk 8.5.


tkt_uuid: 3529745fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 9 Immediate
foundin: obsolete: 8.6b2
resolution: Fixed
title: trunk build broken
comment:
  Starting with checkin 578f0bf246 Tk does not build on unix.

  gcc -O2  -pipe    -Wl,--export-dynamic  tkAppInit.o -L/home/dgp/fossil/tk/unix -ltk8.6 \
                  -L/home/dgp/fossil/tcl-only/unix -ltcl8.6  -lpthread -lXft -lXrender -lfontconfig -lfreetype -lX11   -L/usr/lib64 -lX11 -lXss -lXext -ldl -lz  -lpthread -lieee -lm  -Wl,-rpath,/home/dgp/x86_64/linuxoldld/lib:/usr/lib64 -o wish
  /home/dgp/fossil/tk/unix/libtk8.6.a(tkStubInit.o):(.data.rel.ro+0xc58): undefined reference to `TkClipBox'
  /home/dgp/fossil/tk/unix/libtk8.6.a(tkStubInit.o):(.data.rel.ro+0xc60): undefined reference to `TkCreateRegion'
  /home/dgp/fossil/tk/unix/libtk8.6.a(tkStubInit.o):(.data.rel.ro+0xc68): undefined reference to `TkDestroyRegion'
  /home/dgp/fossil/tk/unix/libtk8.6.a(tkStubInit.o):(.data.rel.ro+0xc70): undefined reference to `TkIntersectRegion'
  /home/dgp/fossil/tk/unix/libtk8.6.a(tkStubInit.o):(.data.rel.ro+0xc78): undefined reference to `TkRectInRegion'
  /home/dgp/fossil/tk/unix/libtk8.6.a(tkStubInit.o):(.data.rel.ro+0xc80): undefined reference to `TkSetRegion'
  /home/dgp/fossil/tk/unix/libtk8.6.a(tkStubInit.o):(.data.rel.ro+0xc88): undefined reference to `TkUnionRectWithRegion'
  /home/dgp/fossil/tk/unix/libtk8.6.a(tkStubInit.o):(.data.rel.ro+0xd58): undefined reference to `TkSubtractRegion'

  Shoved broken commits to a mistake branch to preserve bisectability of
  the trunk.


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: 582799ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 44. Generic Fonts
priority: 5 Medium
foundin: obsolete: 8.4b2
resolution: Fixed
title: tk test suite no longer operational
comment:
  Before the CVS snapshot available on activestate's ftp
  site today, July 17, 2002, Tk's make test worked
  relatively well.

  Today however it fails miserably.

  Platform: SPARC Solaris 2.6
  Sun's C compiler.

  Tcl/Tk CVS snapshot

  fresh copy of tcl configured, make, test, and installed
  successfully.

  fresh copy of tk configured:
  $ vol/tclsrcsol/tcl84/tk/unix/configure 
  --prefix=/usr/tcl84 --enable-symbols --enable-shared
  $ make all
  $ make test
  Tests running in interp: 
  /vol/tclsrcsol/tcl84/tk/unix/tktest
  Tests located in:  /vol/tclsrcsol/tcl84/tk/tests
  Tests running in:  /vol/tclsrcsol/tcl84/tk/unix
  Temporary files stored in /vol/tclsrcsol/tcl84/tk/unix
  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 Wed Jul 17 08:34:38 EDT 2002
  bell.test
  Bell should ring now ...
  A core file was created!
  bgerror.test
  A core file was created!
  bind.test
  no fontsLeft
  Abort - core dumped
  make: *** [test] Error 134

  Unfortunately, the core file left is one caused by the
  new intentional panic created by last nite's changes.  


tkt_uuid: 814810ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 7 High
foundin: obsolete: 8.4.4
resolution: Fixed
title: Update idletasks does not redraw labels, Mac Aqua
comment:
  The "update idletasks" command does not redraw changed
  label
  text in Aqua Tk 8.4.4.  Although this is not required
  behaviour it
  is the suggested use of "update idletasks" described in
  the Tcl
  update manual page.

  "If the idletasks keyword is specified as an argument
  to the command, then no new events or errors are
  processed; only idle callbacks are invoked. This causes
  operations that are normally deferred, such as display
  updates and window layout calculations, to be performed
  immediately.

  The update idletasks command is useful in scripts where
  changes have been made to the application's state and
  you want those changes to appear on the display
  immediately, rather than waiting for the script to
  complete. Most display updates are performed as idle
  callbacks, so update idletasks will cause them to run."

  The following example,

  label .l -text "hello"
  .l configure -text {making progress} ; update idletasks
  ; for {set i 0} {$i<10000000} {incr i} {}

  does not redraw the label under Aqua Tk until after the
  for loop
  terminates.  On Linux, Windows, SGI and HP Alpha the redraw
  occurs before the for loop terminates.  We use "update
  idletasks"
  to provide progress messages during time consuming
  operations.


tkt_uuid: 2804935fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 05. Canvas Items
priority: 8
foundin: None
resolution: Fixed
title: MODULE_SCOPE harms easy extension of canvas
comment:
  The Tk canvas has a standard API for adding new item types via Tk_CreateItemType(). For consistency purposes options like -width all allow a variety of units, such as -width 10, -width 10in, -width 10cm, etc.  This is implemented in the pixelOption struct using TkPixelParseProc and TkPixelPrintProc functions.

  From 8.5 onwards however these are defined as MODULE_SCOPE in tkInt.h.

  Hence Tk packages attempting to extend the canvas no longer link if they were modelled on the same methods as employed in the Tk core. The work around is trivial of course (cut and paste the code to duplicate it in the package itself), but I'd suggest for the purposes of making standardisation easy that these functions are made public again.

  In my own code the 4 I use are (from my link lines):

  ../lib/linux-x86_64-binaries/libtk_utils.so: undefined reference to `TkOrientPrintProc'
  ../lib/linux-x86_64-binaries/libtk_utils.so: undefined reference to `TkOrientParseProc'
  ../lib/linux-x86_64-binaries/libtk_utils.so: undefined reference to `TkPixelParseProc'
  ../lib/linux-x86_64-binaries/libtk_utils.so: undefined reference to `TkPixelPrintProc'

  I expect there are some others which could usefully be made public too.

  James


tkt_uuid: 220190ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 1 Zero
foundin: obsolete: 8.1
resolution: Invalid
title: during uncompress of tar.Z file, 'broken pipe error'
comment:
  OriginalBugID: 2043 Bug
  Version: 8.1
  SubmitDate: '1999-05-10'
  LastModified: '1999-06-29'
  Severity: LOW
  Status: Closed
  Submitter: pat
  ChangedBy: redman
  OS: HP-UX
  Machine: Other
  FixedInVersion: NA
  ClosedDate: '1999-06-29'


  Name:
  YekSoon... Lok

  ReproducibleScript:
  uncompress < file.tar.Z | tar xvf -

  ObservedBehavior:
  uncompress halfway then meet with broken pipe error

  DesiredBehavior:
  uncompress fully with tk8.1 direcotry created successffully



  Bad download. 
  -- 06/29/1999 redman


tkt_uuid: 681692ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 01. Bindings
priority: 5 Medium
foundin: None
resolution: Remind
title: Map <Button-4/5> to <MouseWheel> on UNIX
comment:
  Currently on UNIX, mousewheel events are mapped to
  mouse buttons 4 and 5. On Windows, there is a separate
  <MouseWheel> event. I understand that historically,
  buttons 4 and 5 are used on UNIX, but in the interests
  of hiding platform-specific details, it would useful to
  be able to portably register interest in mousewheel
  events, without having to work out how those are
  conveyed on a particular platform.
  To this end, I propose adding a simple mapping to Tks
  script library so that button 4/5 events also generate
  an appropriate <MouseWheel> event. This can be done
  easily in two lines of code:

  bind all <Button-4> {event generate %W <MouseWheel>
  -delta 1}
  bind all <Button-5> {event generate %W <MouseWheel>
  -delta -1}

  This seems to get things working on my Linux box. I
  haven't looked at the delta values on Windows, so they
  may need some tweaking (finding a suitable default
  value, and working out whether up is negative or positive).
  I think this is a small change, but one which does
  quite a lot in hiding platform specific details, in a
  backwards-compatible way.


tkt_uuid: 2441988fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 53. [selection]
priority: 5 Medium
foundin: obsolete: 8.6b2
resolution: Fixed
title: [selection handle] errors are silently discarded
comment:
  If the command registered by [selection handle] returns an error, the error is silently discarded.  The background error handler does not see it.


tkt_uuid: 220888ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 04. Canvas Basics
priority: 5 Medium
foundin: None
resolution: None
title: Feature to rearrange canvas items within a scroll command.
comment:
  OriginalBugID: 3994 RFE
  Version: 8.3b1
  SubmitDate: '2000-01-10'
  LastModified: '2000-01-25'
  Severity: SER
  Status: UnAssn
  Submitter: techsupp
  ChangedBy: hobbs
  OS: All


  Name:

  Sebastian Wangnick


  DesiredBehavior:

  I manage a canvas where certain items are tagged as being window-relative, i.e., are located at, say, 60% of the canvas width and 5% of the canvas height. I wish to keep them at their position by intercepting the canvas xscrollcommand and yscrollcommand (which are guaranteed to be called whenever anything occurs that could change the display in a scrollbar, such as a change in the total size of the widget's contents).

  However, with the current canvas implementation this leads to flicker because the scroll commands are called only AFTER the canvas has already been redrawn (with my window-relative items at the wrong position).

  I therefore plea to move, within DisplayCanvas, the call to CanvasUpdateScrollbars from its position at the end of the procedure to the start, between the check for tkwin NULL and the check for Tk_IsMapped. This works excellent for me, and shouldn't really break anyones code.


  Patch:

  *** tkCanvas.c.orig     Wed Dec 22 03:13:44 1999

  --- tkCanvas.c  Mon Jan 10 08:57:45 2000

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

  *** 2210,2215 ****

  --- 2210,2219 ----

          return;

        }


  +     if (canvasPtr->flags & UPDATE_SCROLLBARS) {

  +       CanvasUpdateScrollbars(canvasPtr);

  +     }

  + 

        if (!Tk_IsMapped(tkwin)) {

          goto done;

        }

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

  *** 2405,2413 ****

        canvasPtr->flags &= ~(REDRAW_PENDING|BBOX_NOT_EMPTY);

        canvasPtr->redrawX1 = canvasPtr->redrawX2 = 0;

        canvasPtr->redrawY1 = canvasPtr->redrawY2 = 0;

  -     if (canvasPtr->flags & UPDATE_SCROLLBARS) {

  -       CanvasUpdateScrollbars(canvasPtr);

  -     }

    }


    /*

  --- 2409,2414 ----


  PatchFiles:

  tkCanvas.c


tkt_uuid: 3235256fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 13. Win Menus
priority: 9 Immediate
foundin: None
resolution: Fixed
title: Menus stop working (Windows only)
comment:
  Source the attached file into wish (any version from 8.4.13+). It will create a lot of menus (but will not error). Now all menus on all toplevels will fail to show cascade menus (they select other menus instead). This only happens on Windows (XP64 tested).


tkt_uuid: 3421715fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 88. Themed Tk
priority: 5 Medium
foundin: obsolete: 8.5.10
resolution: None
title: ttk::sizegrip too small on Win7
comment:
  Probably related to previous issues with sawn-off menubutton indicators and perhaps scrollbar widths being too narrow. 
  The sizegrip is so small its barely visible on Win7. Thanks!


tkt_uuid: 853414ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 01. Bindings
priority: 5 Medium
foundin: obsolete: 8.5a0
resolution: None
title: Document undefined bindings
comment:
  The `bind` man page has always said, "Some of the
  substitutions are only valid for certain types of
  events; if they are used for other types of events the
  value substituted is undefined."  Donal has been
  tightening this up lately (8.4?), so that now invalid
  substitutions are guaranteed to yield {???} (true?).  I
  ask that we upgrade the documentation to reflect this.

  Donal believes Joe English is likely to be in a good
  position to review the idea.


tkt_uuid: 481255ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 41. Photo Images
priority: 5 Medium
foundin: obsolete: 8.4.2
resolution: Fixed
title: palette 2 doesn't work for windows
comment:
  When you want to create a black and white photo using the -palette 2 option, you got a corrupted image.

  But -palette 1 and -palette 3 work for windows and -palette 2 works for linux.


tkt_uuid: 3545457fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 12. Unix Menus
priority: 8
severity: Minor
foundin: obsolete: 8.4.19
resolution: Fixed
title: Crash on packing a menubutton with Tk 8.4.19
comment:
  Crash on packing a menubutton with Tk 8.4.19 (core-8-4-branch)

  Test case:

  menubutton .mb
  pack .mb  ;  # crash!


  Happens with 8.4 only, not with 8.5 or trunk.

  The issue is missing initialization of variables width and height inTkpDisplayMenuButton in file unix/tkUnixMenubu.c

  This problem has been fixed on 2007-04-25 19:08 by:
    9c8837c194 * unix/tkUnixMenubu.c (TkpDisplayMenuButton): init width/height to 0
  but apparently only in the trunk (of this time, which is now core-8-5-branch).


tkt_uuid: 220117ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 31. Cursor Names
priority: 1 Zero
foundin: None
resolution: Invalid
title: A window's -cursor command doesn't report valid options
comment:
  OriginalBugID: 945 Bug
  Version: 8.0.4
  SubmitDate: '1998-12-14'
  LastModified: '1999-09-15'
  Severity: MED
  Status: Closed
  Submitter: pat
  ChangedBy: hobbs
  OS: Solaris
  OSVersion: 2.6
  Machine: Other
  ClosedDate: '1999-09-15'


  Name:
  Larry W. Virden

  Extensions:
  none

  CustomShell:
  none

  ReproducibleScript:
  . configure -cursor something



  ObservedBehavior:
  bad cursor spec "something"



  DesiredBehavior:
  bad cursor spec "something": must be "arrow",
  "gumby", "right hand", ...

  where the list is the list appropriate
  for the platform.





  Anytime an argument or command requires a fixed value, and an incorrect value is provided, the list of correct values should be reported to the user.
  --
  The list of possible cursors is *very* long, plus there are the
  other variants of how to write a cursor.  One should read the docs
  to properly take care of this.  The error message is clear enough
  about where they are doing something wrong. 
  -- 09/15/1999 hobbs


tkt_uuid: 220470ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 37. [tk_get*File]
priority: 2
foundin: obsolete: 8.1b2
resolution: Fixed
title: "Save" Button in tk_getSaveFile wrongly displays "Open"
comment:
  OriginalBugID: 1640 Bug
  Version: 8.1b2
  SubmitDate: '1999-03-26'
  LastModified: '1999-04-05'
  Severity: MED
  Status: Released
  Submitter: pat
  ChangedBy: stanton
  OS: HP-UX
  OSVersion: 10.20
  Machine: Other
  FixedDate: '1999-04-05'
  FixedInVersion: 8.1b3


  Name:
  Frank J. Leitner

  ReproducibleScript:
      tk_getSaveFile has a button which by default displays "Save". It changes
      to "Open" whenever you highlight a Directory, which is expected
      behavior:
      you want to open (enter) that directory. Selecting a file makes the
      button
      display "Save" again. Use this with a default filename:
        tk_getSaveFile -initialfile abc
      or select a file before entering a new directory. The key is: something
      needs to be in the "File name:" entry field before entering a directory
      to make the problem appear.
      



  ObservedBehavior:
      The button initially displays "Save" without any file being highlighted,
      but after changing the directory, it sticks to "Open" which is wrong in
      this case: pressing the button has the semantics of "Save".
      



  DesiredBehavior:
      The text on the button should match its current function.
      



  Patch:
  *** tkfbox.tcl.orig     Fri Mar 26 11:50:43 1999
  --- tkfbox.tcl  Fri Mar 26 12:31:10 1999
  ***************
  *** 1075,1080 ****
  --- 1075,1088 ----
        #
        cd $appPWD
    
  +     # Restore the Open/Save Button
  +     #
  +     if {![string compare $data(type) open]} {
  +         $data(okBtn) config -text "Open"
  +     } else {
  +         $data(okBtn) config -text "Save"
  +     }
  + 
        # turn off the busy cursor.
        #
        $data(ent) config -cursor $entCursor




  PatchFiles:
      library/tkfbox.tcl
      





      This is basically a rebuild with a more detailed description of
      bug id 1369 (same problem, tk 8.0.3). This patch is still in
      "Contributed" state, but IMHO should be re-considered for the 8.1
      final release.
      
  applied patch
  04/05/1999 20:15 - stanton -


tkt_uuid: 2844964fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 03. [*button] and [label]
priority: 5 Medium
foundin: obsolete: 8.6b1
resolution: Invalid
title: (also tcl 2844962) Tcl_UpdateLinkedVar doesn't trigger widge
comment:
  Also tested in 8.5.7, same behavior.
  Also tried ENTRY widgets

  OS Platform & Version WinXP with SP3

  Problem Behavior
  Updates to linked C variables do not trigger widget updates.

  If I update a Tcl variable that is tied to a widget, the widget is
  automatically updated, presumably via hooks similar to the trace mechanism.
  Unfortunately, this does not seem to occur if the variables are tied to C
  variables. Calling Tcl_UpdateLinkedVar() *does* update the Tcl-side, since
  the following proc demonstrates the updates are occurring by displaying the
  Tcl-side values every two seconds when called via "Update 2000":

  proc Update {interval} {
  if {$::Thresh} {
  puts "***************************************************************"
  puts "Red: $::RMax"
  puts "Green: $::GMax"
  puts "Blue: $::BMax"
  puts "Interval $interval"
  update
  }
  after $interval "Update $interval"
  }

  Even though the Tcl variables reflect the updates, the widget values DO NOT
  refresh until I manipulate the widget window (e.g. resize).

  Below are the pertinent code snippets. I originally tried defining
  R/G/BMax as longs, and using them directly, but it occurred to me that
  perhaps the update needed to have string variables since the widgets use
  "-textvariable" options. Changing the code to the below code had the same
  behavior. I also tried calling Tcl_InvalidateStringRep() in the same C
  routine which calls Tcl_UpdateLinkedVar() with no changes to behavior.

  ***tcl***
  label .v2.lrmax.rMax -textvariable ::RMax
  label .v2.lgmax.gMax -textvariable ::GMax
  label .v2.lbmax.bMax -textvariable ::BMax

  ***init***
  sRMax = Tcl_Alloc(256);
  sGMax = Tcl_Alloc(256);
  sBMax = Tcl_Alloc(256);
  Tcl_LinkVar(theInterp, "::RMax", (char *) &sRMax,
  TCL_LINK_STRING | TCL_LINK_READ_ONLY);
  Tcl_LinkVar(theInterp, "::GMax", (char *) &sGMax,
  TCL_LINK_STRING | TCL_LINK_READ_ONLY);
  Tcl_LinkVar(theInterp, "::BMax", (char *) &sBMax,
  TCL_LINK_STRING | TCL_LINK_READ_ONLY);

  ***update***
  sprintf(sRMax, "%lu", RMax);
  Tcl_UpdateLinkedVar(mainInterp, "::RMax");
  sprintf(sGMax, "%lu", GMax);
  Tcl_UpdateLinkedVar(mainInterp, "::GMax");
  sprintf(sBMax, "%lu", BMax);
  Tcl_UpdateLinkedVar(mainInterp, "::BMax");


tkt_uuid: 220832ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 11. Aqua Menus
priority: 5 Medium
foundin: obsolete: 8.0.4
resolution: None
title: Mac Menu: popup position incorrect when at bottom of screen
comment:
  OriginalBugID: 1553 Bug
  Version: 8.0.4
  SubmitDate: '1999-03-19'
  LastModified: '2000-02-10'
  Severity: MED
  Status: UnAssn
  Submitter: pat
  ChangedBy: hobbs
  OS: Macintosh
  OSVersion: 8.1
  Machine: Power PC


  Name: Alexander Schliep

  ReproducibleScript:
  MacTcl/Tk 8.0.4
  Run widget demo, Menu Button Demonstration, move dialog so that
  the button labeled 'one' is close to bottom of the screen, click it. 

  ObservedBehavior:
  The popup menu is displayed at the top of the screen

  DesiredBehavior:
  The popup menu is displayed above (or close by) the button labeled 'one'


tkt_uuid: 574326ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 22. Style Engine
priority: 5 Medium
foundin: obsolete: 8.4a5
resolution: Fixed
title: compiler warning
comment:
  cc -c -O  -KPIC -I/local/src/tk/unix
  -I/local/src/tk/unix/../generic
  -I/local/src/tk/unix/../bitmaps
  -I/local/src/tcl/generic -I/usr/openwin/include
  -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1
  -DTCL_WIDE_INT_TYPE=long\ long -DHAVE_STRUCT_DIRENT64=1
  -DHAVE_STRUCT_STAT64=1 -DHAVE_TYPE_OFF64_T=1
  -D_REENTRANT=1 -D_POSIX_PTHREAD_SEMANTICS=1
  -DSTDC_HEADERS=1 -DHAVE_SYS_TIME_H=1
  -DTIME_WITH_SYS_TIME=1 -DHAVE_PW_GECOS=1     
  -DTCL_NO_DEPRECATED -DUSE_TCL_STUBS 
  /local/src/tk/unix/../generic/tkStyle.c
  "/local/src/tk/unix/../generic/tkStyle.c", line 15:
  warning: invalid white space character in directive


tkt_uuid: 2965133fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 83. Mac OS X Build
priority: 8
foundin: obsolete: 8.6b1
resolution: None
title: Directory or list thereof (Was: Garbage in -install_name)
comment:
  When I build current Tk HEAD (just cd tk/macosx; make test) on this PPC G4 machine running OS X 10.5.8, I get the somewhat curious error

  dyld: Library not loaded: /Library/Frameworks/Tk.framework/Versions/8.6:NONE/Tk

  as soon as it's trying to start tktest. That ":NONE" looks rather suspicious, don't you think?

  As far as I can tell, the problem is that LIB_RUNTIME_DIR is being set up as a colon-separated list of directories, which is then copied to DYLIB_INSTALL_DIR, which in turn is treated as just one directory. Makefile.in sets it up thus:

    DYLIB_INSTALL_DIR= ${LIB_RUNTIME_DIR}

  and this variable is only used in configure.in, thus:

    TK_SHLIB_LD_EXTRAS="${TK_SHLIB_LD_EXTRAS}"' -install_name "${DYLIB_INSTALL_DIR}"/${TK_LIB_FILE}'

  But configure.in also contains commands (probably conditionalised) such as

    LIB_RUNTIME_DIR="${LIB_RUNTIME_DIR}:${TCL_EXEC_PREFIX}/lib"

    LIB_RUNTIME_DIR="${LIB_RUNTIME_DIR}:${x_libraries}"

  that treat LIB_RUNTIME_DIR very much as a list of paths.

  There is probably also a secondary bug that NONE is being treated as a path, when it really is some kind of null (=no data), but working out what goes wrong there likely requires some understanding of configurations for other platforms, so I won't form any opinion on that.

  FWIW, manually editing the build/tk/*/Makefile to remove the second components from the two definitions of LIB_RUNTIME_DIR (one near the top, one in the tktest target instructions) made the Development test succeed, although the Deployment tktest crashes:
  /bin/sh: line 1: 53644 Bus error               ./tktest /Users/lars/Projekt/Tcl-projekt/Tcl/tk/unix/../tests/all.tcl -geometry +0+0
  make[2]: *** [test-classic] Error 138
  make[1]: *** [test-tk] Error 2
  make: *** [test-deploy] Error 2
  But maybe it's better to leave that be until the makefile issue has been sorted out (I'm happy that I could install the Development variant).


tkt_uuid: 220920ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 83. Mac OS X Build
priority: 5 Medium
foundin: obsolete: 8.3.1
resolution: Fixed
title: Tk WindowsLib not loaded properly (8.3.1)
comment:
  OriginalBugID: 5762 Bug
  Version: 8.3.1
  SubmitDate: '2000-05-31'
  LastModified: 
  Severity: SER
  Status: UnAssn
  Submitter: techsupp
  OS: Macintosh
  OSVersion: 8.1
  Machine: PowerMac 8200/120


  Name:
  Raphael Leplae

  Extensions:
  itcl3.1, itk3.1,iwidgets3.0.0, QuickTimeTcl2.1, Tclapplescript1.1.shlb

  CustomShell:
  executed in Tclsh:

  ReproducibleScript:
  Dble clicking on TkCon, Widget or Wish icons generate the error message.

  ObservedBehavior:
  Error message: The application "..." could not be started because WindowsLib could not be loaded.


tkt_uuid: 223112ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 10. Generic Menus
priority: 7 High
foundin: obsolete: 8.2.2
resolution: None
title: tkMenuFind doesn't locate cloned menubars
comment:
  [I hesitate to report this, but I'll be damned if I can make it work.  Nor can I find a related bug report].

  Consider the following simple example:

  % wish
     canvas .c -width 256 -height 256
     pack .c
     bind .c <KeyPress-a> {puts "Is RB out of line here?"}

  Pressing the "a" key does not invoke the callback script, under RH 6.2, Tcl/Tk 8.2.2.  More elaborate keyboard bindings also fail.

  I have been unable to make *any* keyboard-oriented events work under this environment, to include "underlined" menu items, menu accelerator commands, etc.  Could be indicative of a larger problem.

  Have been unable to verify other platforms; same phenomena occurs on an IRIX 6.5 client, but the constant is still the stock RH 6.2 X server (XFree86 3.3.??).

  I appreciate any feedback, even if it goes something like: "Look nimrod, you're obviously confused, and the proper way to accomplish this is...."


tkt_uuid: 2819620fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 66. Aqua Window Operations
priority: 7 High
foundin: None
resolution: Fixed
title: Improvements in Aqua ttk theme
comment:
  This patch to ttkMacOSXTheme.c: makes two improvements to the Aqua ttk theme:

  1. It fixes the "selected" state of the ttk::treeview column header to render in standard "Aqua" blue only. Previously the "selected" state rendered in the "Aqua" blue and also drew an "up" arrow without a corresponding "down" arrow if the column header were clicked on. This change allows the appropriate  up/down arrow to be implemented at the script level, if necessary. The result is a more-native appearance under Aqua. 

  2. It modernizes the appearance of the notebook tab under Aqua, cf http://www.codebykevin.com/mac-tabs.png, to use the style that became the system standard in Mac OS X 10.3, released in 2003. Previously the notebook tabs were drawn with an older style that is no longer widely used. 


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: 446624ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 84. Unix Build
priority: 5 Medium
foundin: None
resolution: Out of Date
title: patch for FreeBSD 2
comment:
  This patch corresponds to the patch submitted for Tcl
  bug #446622.

  --- aclocal.m4.old      Tue Jul 31 16:56:23 2001
  +++ aclocal.m4  Tue Jul 31 16:57:05 2001
  @@ -1102,6 +1102,14 @@
                  fi
              fi
          fi
  +
  +       AC_MSG_CHECKING(for brk declaration in
  unistd.h)
  +       AC_EGREP_HEADER(brk, unistd.h, [
  +           AC_DEFINE(BRK_DECLARED)
  +           AC_MSG_RESULT(yes)
  +       ], [
  +           AC_MSG_RESULT(no)
  +       ])
       fi
   
       # Step 5: disable dynamic loading if requested via
  a command-line switch.


tkt_uuid: 220612ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 2
foundin: obsolete: 8.2.1
resolution: Fixed
title: make install permission fix
comment:
  OriginalBugID: 3367 RFE
  Version: 8.2.1
  SubmitDate: '1999-11-05'
  LastModified: '2000-01-12'
  Severity: LOW
  Status: Released
  Submitter: techsupp
  ChangedBy: hobbs
  RelatedBugIDs: 3366 3389
  OS: IRIX
  OSVersion: 6.5
  FixedDate: '2000-01-12'
  FixedInVersion: 8.3b2


  Name:
  Albert Chin

  DesiredBehavior:
  While doing a 'make install', if the build was done on an NFS mounted
      partition and the 'make install' is being run as root, the execute bit
      on several files is changed (like install-sh). Rather than outright
      changing the permission, it would be wiser to test if this was needed
      first. The patch below fixes this.

  Patch:
  ftp://ftp.thewrittenword.com/incoming/pub/tk8.2.1.patch

  PatchFiles:
  unix/Makefile.in



  fixed in 8.3b2. 
  -- 01/12/2000 hobbs


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: 220406ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 38. [tk_messageBox]
priority: 2
foundin: obsolete: 8.0.3
resolution: Fixed
title: Hardcoded non-system-default font in msgbox.tcl
comment:
  OriginalBugID: 912 RFE
  Version: 8.0.3
  SubmitDate: '1998-12-04'
  LastModified: '1999-08-15'
  Severity: MED
  Status: Released
  Submitter: welch
  ChangedBy: hobbs
  OS: HP-UX
  OSVersion: 10.20
  Machine: Other
  FixedDate: '1999-08-15'
  FixedInVersion: 8.2


  Name:

  Akos Polster


  Extensions:

  [incr Tcl], TclX


  CustomShell:

  No.


  DesiredBehavior:

  Remove the explicit font specification

  from msgbox.tcl


  Patch:

  *** msgbox.tcl.old      Tue Nov 17 12:52:07 1998

  --- msgbox.tcl.new      Tue Nov 17 12:52:52 1998

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

  *** 161,169 ****


        option add *Dialog.msg.wrapLength 3i widgetDefault

        label $w.msg -justify left -text $data(-message)

  -     catch {$w.msg configure -font \

  -               -Adobe-Times-Medium-R-Normal--*-180-*-*-*-*-*-*

  -     }

        pack $w.msg -in $w.top -side right -expand 1 -fill both -padx 3m -pady 3m

        if {$data(-icon) != ""} {

          label $w.bitmap -bitmap $data(-icon)

  --- 161,166 ----


  PatchFiles:

  library/msgbox.tcl




  This has been changed to use the option databases *Dialog.msg.font
  value, which is a new Tk8 font style value. 
  -- 08/15/1999 hobbs


tkt_uuid: 872299ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.5a0
resolution: Fixed
title: Access violation in tkBTreeFindPixelLine
comment:
  I got an access violation in tkTextBTree.c Line 1013
  tkBTreeFindPixelLine
  (nodePtr == NULL)

  after playing around in the debugger I recognized that

  nodePtr->numPixels == 0.

  so 'pixelsLef't is not decremented

  this code is called quit often until it crashes. But
  never nodePtr->numPixels was 0.

  The application is quit complex - so I did not know what
  tcl-code is actually called at this time.

  Here is the call-stack:

  TkBTreeFindPixelLine(TkTextBTree_ * 0x0c69ad48, int 0,
  int * 0x04252c80) line 1013 + 23 bytes
  TkTextMakePixelIndex(TkText * 0x0c69a8c0, int 0,
  TkTextIndex * 0x04252cac) line 323 + 20 bytes
  TkTextYviewCmd(TkText * 0x0c69a8c0, Tcl_Interp *
  0x04877c70, int 4, Tcl_Obj * const * 0x042530e0) line
  5211 + 28 bytes
  TextWidgetObjCmd(void * 0x0c69a8c0, Tcl_Interp *
  0x04877c70, int 4, Tcl_Obj * const * 0x042530e0) line
  1309 + 21 bytes
  TclEvalObjvInternal(Tcl_Interp * 0x04877c70, int 4,
  Tcl_Obj * const * 0x042530e0, const char * 0x0c5a71d0,
  int 57, int 0) line 3143 + 25 bytes
  Tcl_EvalEx(Tcl_Interp * 0x04877c70, const char *
  0x0c5a71d0, int 57, int 262144) line 3639 + 39 bytes
  Tcl_EvalObjEx(Tcl_Interp * 0x04877c70, Tcl_Obj *
  0x0c2e9c50, int 262144) line 3872 + 21 bytes
  Tcl_EvalObjCmd(void * 0x00000000, Tcl_Interp *
  0x04877c70, int 4, Tcl_Obj * const * 0x0487b59c) line
  681 + 18 bytes
  TclEvalObjvInternal(Tcl_Interp * 0x04877c70, int 4,
  Tcl_Obj * const * 0x0487b59c, const char * 0x00000000,
  int 0, int 0) line 3143 + 25 bytes
  TclExecuteByteCode(Tcl_Interp * 0x04877c70, ByteCode *
  0x0c514b40) line 1537 + 27 bytes
  TclCompEvalObj(Tcl_Interp * 0x04877c70, Tcl_Obj *
  0x053c8b50) line 1005 + 13 bytes
  Tcl_EvalObjEx(Tcl_Interp * 0x04877c70, Tcl_Obj *
  0x053c8b50, int 0) line 3884 + 13 bytes


tkt_uuid: 499168ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 17. [spinbox]
priority: 6
foundin: obsolete: 8.4a4
resolution: Fixed
title: Extra step when double clicking spinbox.
comment:
  When clicking twice on a spinbox's up or down arrow, the
  value might change three steps if you click fast enough.

  It seems that the doubleclick binding in ::tk::spinbox::MouseSelect
  invokes the arrow which gives the extra value change. 
  My guess is that it should do the same as the ButtonPress binding
  in ::tk::spinbox::ButtonDown does and leave the invoking to the
  ButtonRelease event.


tkt_uuid: 1098779fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 48. Geometry Management
priority: 5 Medium
foundin: obsolete: 8.4.9
resolution: Fixed
title: TkParsePadAmount does not properly handle lists
comment:
  TkParsePadAmount manually parses through -padx/-pady
  values as a string, and fails to properly handle
  whitespace in the process, rather than treating the
  argument as a list object.  This results in 'bad screen
  distance ""' errors if you do e.g.:

  pack $w -pady { 5 0 }

  ...or...

  pack $w -pady [list 5 0]

  ...instead of...

  pack $w -pady {5 0}

  Attached is a patch to correct the problem versus head,
  which should also be safe for 8.4 (TkParsePadAmount is
  the same in the two branches).


tkt_uuid: 664788ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 42. Photo Image|GIF
priority: 3 Low
foundin: obsolete: 8.4.1
resolution: Fixed
title: SGI warning: ZeroDataBlock
comment:
  cc-1552 cc: WARNING File =
  /home/fs3c/dgp/tk8.4.1/unix/../generic/tkImgGIF.c, Line
  = 742
    The variable "ZeroDataBlock" is set but never used.

    static int ZeroDataBlock = 0;
               ^


tkt_uuid: 220341ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 44. Generic Fonts
priority: 2
foundin: obsolete: 8.1a2
resolution: Fixed
title: change in font configuration nolonger redisplays all widgets using this font
comment:
  OriginalBugID: 560 Bug
  Version: 8.1a2
  SubmitDate: '1998-04-14'
  LastModified: '1999-03-29'
  Severity: LOW
  Status: Released
  Submitter: hershey
  ChangedBy: stanton
  RelatedBugIDs: 1144
  OS: All
  OSVersion: NA
  Machine: NA
  FixedDate: '1999-03-29'
  FixedInVersion: 8.1b3


  Hello,

  In Tk8.0 a configuration of a font triggered a redisplay
  of all widgets using this font. This doesn't work for me
  with Tk8.1a2 (on Linux and WinNT).

  An example script, which works with Tk8.0, but fails with Tk8.1:

  font create f -family Helvetica -size 8
  button .b -font f -text "Helvetica 8" -command exit]
  pack .b
  after 2000 {
      font configure f -family Times -size 12
      .b configure -text "Times 12"
  }

  Thanks in advance, Krischan
  --
  Christian Krone, SQL Datenbanksysteme GmbH
  Mail mailto:krischan@sql.de


  Tested.  This is a bug.  The behavior is different between 8.0 and 8.1.  03/25/1999 10:43 - surles -

  This has been fixed 
  03/29/1999 19:58 - stanton -


tkt_uuid: 220908ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 5 Medium
foundin: obsolete: 8.3
resolution: Fixed
title: Clicking application windows fails to raise dialogs when a g
comment:
  OriginalBugID: 5040 RFE
  Version: 8.3
  SubmitDate: '2000-04-12'
  LastModified: '2000-09-06'
  Severity: MED
  Status: UnAssn
  Submitter: shawn
  ChangedBy: hobbs
  RelatedBugIDs: 4609
  OS: Windows NT


  When a dialog has a local grab and the window is hidden clicking in other toplevel windows doesn't raise the dialog.  I understand that this is that this is by design - as I understand it from reading the help.  It would be nice however if a mouse event(click - I am thinking - possibly enter) in other parts of the application would raise the application.  

  to reproduce: 

  Run tkerror at the command line in an interactive shell - Hide the popup dialog.  Click on the main window for the application - nothing happens.  

  I expect the dialog to raise.


tkt_uuid: 525778ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 99. Other
priority: 5 Medium
foundin: obsolete: 8.4a4
resolution: Duplicate
title: No flush of stdout on [exit]
comment:
  First noticed this problem as the absence
  of a summary at the end of the Tk test suite
  on Solaris CDE.  The stdout channel (stderr too)
  is not being flushed on [exit] from wish.

  # FILE: test.tcl
  for {set i 0} {$i < [lindex $argv 0]} {incr i} {
    puts $i
  }
  exit

  $ wish8.3 test.tcl 5
  0
  1
  2
  3
  4
  $ wish8.4 test.tcl 5
  <no output>

  $ wish8.3 test.tcl 500
  0
  ...
  499
  $ wish8.4 test.tcl 500
  0
  ...
  474
  $


  Very strange.


tkt_uuid: 2546779fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 88. Themed Tk
priority: 9 Immediate
foundin: obsolete: 8.5.2
resolution: Fixed
title: ttk::notebook getting an error when disabling tabs.
comment:
  When i'am disabling all displayed tabs of a notebook widget i get the following error:

  bad window path name ""
  bad window path name ""
      while executing
  "winfo viewable $w"
      (procedure "ttk::takesFocus" line 3)
      invoked from within
  "ttk::takesFocus $w"
      (procedure "ttk::focusFirst" line 2)
      invoked from within
  "ttk::focusFirst [$w select]"
      (procedure "ActivateTab" line 7)
      invoked from within
  "ActivateTab $w $index"
      (procedure "ttk::notebook::Press" line 4)
      invoked from within
  "ttk::notebook::Press .nb 32 12 "
      (command bound to event)

  I was using this code:

  ttk::notebook .nb
  ttk::frame .nb.1
  ttk::frame .nb.2
  grid .nb -in . -row 0 -column 0
  .nb add .nb.1 -text "Test"
  .nb add .nb.2 -text "Test2"
  .nb tab .nb.1 -state disabled
  .nb tab .nb.2 -state disabled

  If one of the tabs stays enabled the error doesn't appear.:

  ttk::notebook .nb
  ttk::frame .nb.1
  ttk::frame .nb.2
  grid .nb -in . -row 0 -column 0
  .nb add .nb.1 -text "Test"
  .nb add .nb.2 -text "Test2"
  .nb tab .nb.1 -state disabled

  Best regards


tkt_uuid: 1042414fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 61. Safe Tk
priority: 5 Medium
foundin: obsolete: 8.5a2
resolution: Duplicate
title: safe-2.1 fails on Windows - VC++
comment:
  ==== 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 pw
  d selection socket source tk_chooseColor
  tk_chooseDirectory tk_getOpenFile tk_ge
  tSaveFile tk_messageBox toplevel wm
  ---- Result should have been (exact matching):
  bell cd clipboard encoding exec exit fconfigure file
  glob grab load menu open pw
  d selection send socket source tk_chooseColor
  tk_chooseDirectory tk_getOpenFile
  tk_getSaveFile tk_messageBox toplevel wm
  ==== safe-1.2 FAILED


tkt_uuid: 589853ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 23. Option Parsing
priority: 5 Medium
foundin: obsolete: 8.4b2
resolution: Fixed
title: direct interp->result access
comment:
  Tk_ConfigureValue directly read/writes
  to the interp->result field of a Tcl_Interp,
  and directly sets the interp->freeProc
  field as well.

  Such use of Tcl has been deprecated
  for > 5 years.  Tk should stop doing this.


tkt_uuid: 659497ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 20. [tk_optionMenu]
priority: 5 Medium
foundin: None
resolution: None
title: hardcoded 2 pixel borders
comment:
  in tk_optionMenu{} (optMenu.tcl file), border width and
  highlight thickness are hardcoded to 2 (ugly) pixels,
  thus preventing setting an application wide 1 pixel
  border width for widgets, using the option command.
  (bug present in both 8.3 and 8.4 releases)

  Jean-Luc Fontaine (jfontain@free.fr)


tkt_uuid: 3543420fffffffffffffffffffffffffffffffff
type: Bug
status: Pending
subsystem: 88. Themed Tk
priority: 5 Medium
foundin: obsolete: 8.5.11
resolution: None
title: Toggle.TButton style doesn't work on Windows
comment:
  I need a toggle button for an expansion dialog (i.e., you click the button and it stays down and the dialog expands to show more widgets; you click the button again and it comes up and the dialog contracts to show fewer widgets). See the OpenOffice Find dialog for an example.

  This is easy to achieve by creating a custom style. However, it only seems to work on Linux, it does not work on Windows. Attatched is some code that illustrates the point (in Python 3/tkinter).


tkt_uuid: 456761ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 85. Win Build
priority: 5 Medium
foundin: None
resolution: Accepted
title: static build support for Tk makefile.vc
comment:
  This patch adds support for static builds to
  makefile.vc.  (The current cygwin Makefile supports
  static builds, but the current makefile.vc does not.)

  The changes were patterned after ideas from the cygwin
  Makefile, the FreeWrap makefile.vc, and the incrTcl
  makefile.vc.

  Compilation tests were performed for both dynamic and
  static builds on Windows 95, NT, 98, 2000, and Me.  The
  test suite was run for both dynamic and static builds
  on Windows NT and 2000.  No problems were observed.

  This patch also updates mkd.bat and rmd.bat as follows:
   * replaced unreliable directory test with standard
  method
   * simplified mkd code
   * replaced rmd code (which prompted user) with simpler
  method


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: 2791352fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 46. Unix Fonts
priority: 7 High
foundin: obsolete: 8.5.7
resolution: Fixed
title: font specification error
comment:
  As raised on c.l.t by Adrian Davis:

  It seems there may be a (minor) bug setting the font for a (Tk/ttk)
  label widget, which causes an "expected integer ..." error.

  It appears to happen only in a very specific circumstance...

  When all of the following are true:-

  *) The "-family" option name contains a hyphen/dash.
  *) The "-family" option appears first in the list.
  *) All of the "-size", "-weight", "-slant", "-underline" and "-overstrike" options are specified.

  For Example...

  .mylabel configure -font {-family sans-serif -size 12 -weight bold -slant roman -underline 0 -overstrike 0}

  ...Doesn't work. But...

  .mylabel configure -font {-family times -size 12 -weight bold -slant roman -underline 0 -overstrike 0}

  .mylabel configure -font {-size 12 -family sans-serif -weight bold -slant roman -underline 0 -overstrike 0}

  .mylabel configure -font {-family sans-serif -size 12 -weight bold -slant roman -underline 0}

  ...All work Ok.

  I found this using Tcl/Tk 8.5.7 on Solaris 10.

  This has been reproduced under WinXP using ActiveTcl 8.5.3 and Ubuntu
  using ActiveTcl 8.6b1.1

  (See thread: http://groups.google.co.uk/group/comp.lang.tcl/browse_thread/thread/aa2a4f206c139c42?hl=en#)

  WORKAROUND: Make sure that the "-family" option doesn't appear first
  in the list.

  Best Regards,
     =Adrian=


tkt_uuid: 1175092fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 49. [grid]
priority: 5 Medium
foundin: obsolete: 8.5a3
resolution: Fixed
title: OS X Grid Bug
comment:
  The following code will render .l2 badly, as if it were constrained 
  down to the width of .l4.  It will also get the same rendering error if 
  you explicitly specify row, column, and columnspan for each label.

  label .l1 -text {Left}
  label .l2 -text {Right}
  label .l3 -text {Bottom} -width 20
  label .l4 -text {.}

  grid columnconfig . 0 -weight 1
  grid .l1 .l2  -
  grid .l3  -  .l4


tkt_uuid: 579879ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 41. Photo Images
priority: 5 Medium
foundin: None
resolution: Fixed
title: Photo Masters: use Tcl_AttemptAlloc()?
comment:
  Photo masters should use Tcl_AttemptAlloc(),
  particularly when the amount of memory being asked for
  is large (perhaps over 1MB as an arbitrary threshold?)
  as the failure to allocate a large chunk of memory
  doeesn't mean that Tcl can't recover from the problem
  by reporting an error message back to the script level.


tkt_uuid: 444900ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 10. Generic Menus
priority: 5 Medium
foundin: obsolete: 8.4a3
resolution: Works For Me
title: menu index command changed
comment:
  Under some circumstances, I'm running into:

     Tcl_AppendStringsToObj called with shared object

  when trying to invoke mnemonics (Alt-<letter>) in a UNIX GUI.  I've tracked this down to 
  tkMenuFind which includes the code:

      set last [$child index last]
      for {set i [$child cget -tearoff]} {$i <= $last} {incr i} {

  It appears that in Tk 8.2, [$m index last] returns 0 for an empty menu.  In Tk 8.4, it returns 
  "none".  Whatever the value of -tearoff (0 or 1), it's less than "none" so the loop is executed at 
  least once.  Then in the loop body

   set char2 [string index [$child entrycget $i -label] \
  [$child entrycget $i -underline]]

  Causes the Tcl_AppendStringToObj error noted above.


tkt_uuid: 1088808fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 36. [tk_chooseDirectory]
priority: 2
foundin: obsolete: 8.5a3
resolution: None
title: Aqua: test failures
comment:
  ==== choosedir-1.2 tk_chooseDirectory command FAILED
  ==== Contents of test case:

      list [catch {tk_chooseDirectory -foo bar} msg] $msg

  ---- Result was:
  1 {bad option "-foo": must be -initialdir, -message,
  -mustexist, -parent, or -title}
  ---- Result should have been (exact matching):
  1 {bad option "-foo": must be -initialdir, -mustexist,
  -parent, or -title}
  ==== choosedir-1.2 FAILED

  then the following tests all block,
  demaning interactivity, even asking
  for things the dialog doesn't appear
  to support:

  choosedir-2.1 through choosdir-4.2

  then


  ==== choosedir-4.3 tk_chooseDirectory, -initialdir {}
  FAILED
  ==== Contents of test case:

      catch {unset ::tk::dialog::file::__tk_choosedir}
      ToPressButton $parent ok
      tk_chooseDirectory  -title "Press OK"  -parent
  $parent -initialdir ""

  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: bad directory ""
      while executing
  "tk_chooseDirectory  -title "Press OK"  -parent $parent
  -initialdir """
      ("uplevel" body line 4)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== choosedir-4.3 FAILED

  then more blocking in choosedir-5.1.


tkt_uuid: 220541ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 75. wish
priority: 2
foundin: obsolete: 8.1
resolution: Fixed
title: dir hangs tk in Win98
comment:
  OriginalBugID: 2266 Bug
  Version: 8.1
  SubmitDate: '1999-06-21'
  LastModified: '1999-07-01'
  Severity: CRIT
  Status: Released
  Submitter: techsupp
  ChangedBy: foster
  OS: Windows 98
  Machine: X86
  FixedDate: '1999-06-29'
  FixedInVersion: 8.2b1


  Name:
  Michael F. Ellis

  CustomShell:
  None

  ReproducibleScript:
  ## Put this script in a file.
      ## Run by double-click in Explorer.
      proc hang {} {
      set list [exec command /c dir]
      }
      
      button .hangme -text "Click to hang" -command hang
      pack .hangme

  ObservedBehavior:
  Hangs when button is pushed. Requires CTRL-ALT-DEL to kill process.
      Can get same result by typing "dir" in wish Console.
      No problem in tclsh.
      
      Apologies if this is a well-known problem, but a web search on "Tk win98
      dir" turned up no problem reports.



  Fixed in 8.2b1 (formerly 8.1.2) 
  -- 06/29/1999 redman


tkt_uuid: 3404622fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 07. [entry]
priority: 5 Medium
foundin: None
resolution: None
title: bordercolor - option for entry
comment:
  A "-relief solid" - entry has always a black border.
  I would like to have a command-line-option / option-database-option to configure the color.


tkt_uuid: 910127ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 32. Key Symbols
priority: 8
foundin: obsolete: 8.4.5
resolution: Duplicate
title: certain characters cannot be inserted into an entry
comment:
  Dear Team,

  The odoubleacute and udoubleacute symbols cannot be 
  inserted into, say, a text or an entry. These symbols 
  can be generated with any standard distribution using 
  "setxkbmap hu", by pressing '[' or '\'.

  Here is a testprogram:

  wish8.4 [~]entry .e
  .e
  wish8.4 [~]pack .e
  wish8.4 [~]bind .e <Key> {puts "%K, %A, %N"}

  After pressing these keys, the output is:

  odoubleacute, {}, 501
  udoubleacute, {}, 507
  Shift_L, {}, 65505
  Odoubleacute, {}, 469
  Udoubleacute, {}, 475

  I tested it with a Mandrake 9.2 install, and with a 
  cygwin XFree86 server.

  Is it the problem of tk, or the problem of X?

  (There are other hungarian keyboard layouts, which use 
  latin2-encoding instead of unicode, and there these two 
  keys generate otilde and uumlaut keysyms, which are 
  happily accepted by tk, but not, for example, by 
  StarOffice. :((  )


tkt_uuid: 3529786fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 63. Tk_Win Functions
priority: 5 Medium
foundin: obsolete: 8.5.11
resolution: Invalid
title: deadlock between SetFocus and ReadFile
comment:
  My app is a Tcl/Tk front end to a spawned child process. The child is connected to the parent wish process via pipes for stdout and stderr. stdout is fconfigured as nonblocking. fileevents are created to monitor the stdout/err channels and trigger callbacks that read the output and put it in to a scrolling text widgets. The app has one main window and a separate toplevel for a terminal, where the stdout/err output is displayed. The terminal toplevel is transient for the main window and always in front.

  So the deadlock occurs when the child process is writing a lot of output down stdout. Everything works fine until I click on the terminal window or somehow cause the focus to shift to it. This triggers a WM_SETFOCUS and WM_ACTIVATE messages to be sent. I believe it is during the processing of these that the deadlock occurs. When the deadlock happens the main thread is nearly always stuck under a SetFocus call or DispatchMessage. The pipereader thread is  stuck under ReadFile. Both threads stacks end at a call to KeWaitForMultipleObjects, so I'm guessing they are waiting for locks from each other.

  I've attached the full stacks for the main thread in the SetFocus case and DispatchMessage case, and the stack for the pipereader thread.

  I've been trying to spot the cause of the deadlock for days now under the debugger. I can't see what could be shared between the two threads to cause the deadlock. I know I haven't attached enough to reproduce this, but my app is rather large and it would take a while to cut it down. At the moment I'm happy to try to locate and fix this deadlock myself, but i've really run out of places to look. Hopeing someone could point me at a few things that might be behind this.

  I've also reproduced this using a 8.3 build of Tcl/Tk so it looks like it may have been here for a while. 

  It is timing related because if I slow down the output from the child process then I can't trigger the deadlock.

  Thanks
  Mark


tkt_uuid: 1797555fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 10. Generic Menus
priority: 8
foundin: obsolete: 8.4.16
resolution: None
title: DestroyMenuEntry writes into freed memory
comment:
  Our application has a couple of semi-dynamic menus that are updated (destroyed and recreated) when the user opens and closes data files.  When ever the menu is updated, I get the enclosed error that is shown by valgrind.  We're using Tcl/Tk via Python, so my next step is to come up with a Tcl-only test case, but in case I don't, here's a record of the bug (the line numbers refer to the 8.4.15 release):

  Invalid read of size 4 
     at 0x5449FA2: DestroyMenuEntry (tkMenu.c:1469)
     by 0x5584B77: Tcl_EventuallyFree (tclPreserve.c:302)
     by 0x544D548: DeleteMenuCloneEntries (tkMenu.c:3498)
     by 0x5448DC4: MenuWidgetObjCmd (tkMenu.c:813)
     by 0x5513DEB: TclEvalObjvInternal (tclBasic.c:3190)
     by 0x5514049: Tcl_EvalObjv (tclBasic.c:3306)
     by 0x484F0C5: Tkapp_Call (_tkinter.c:1314)
     by 0x810221C: PyCFunction_Call (methodobject.c:108)
     by 0x80B453E: PyEval_EvalFrame (ceval.c:3563)
     by 0x80B59D4: PyEval_EvalCodeEx (ceval.c:2736)
     by 0x80B36B5: PyEval_EvalFrame (ceval.c:3656)
     by 0x80B59D4: PyEval_EvalCodeEx (ceval.c:2736)
   Address 0x6142DF8 is 0 bytes inside a block of size 16 free'd 
     at 0x40050FF: free (vg_replace_malloc.c:233)
     by 0x5510BCB: TclpFree (tclAlloc.c:702)
     by 0x55195AC: Tcl_Free (tclCkalloc.c:1160)
     by 0x544D4CA: TkFreeMenuReferences (tkMenu.c:3460)
     by 0x5449E55: UnhookCascadeEntry (tkMenu.c:1380)
     by 0x5449F98: DestroyMenuEntry (tkMenu.c:1467)
     by 0x5584B77: Tcl_EventuallyFree (tclPreserve.c:302)
     by 0x544D548: DeleteMenuCloneEntries (tkMenu.c:3498)
     by 0x5448DC4: MenuWidgetObjCmd (tkMenu.c:813)
     by 0x5513DEB: TclEvalObjvInternal (tclBasic.c:3190)
     by 0x5514049: Tcl_EvalObjv (tclBasic.c:3306)
     by 0x484F0C5: Tkapp_Call (_tkinter.c:1314)

  Invalid write of size 4 
     at 0x5449FAC: DestroyMenuEntry (tkMenu.c:1470)
     by 0x5584B77: Tcl_EventuallyFree (tclPreserve.c:302)
     by 0x544D548: DeleteMenuCloneEntries (tkMenu.c:3498)
     by 0x5448DC4: MenuWidgetObjCmd (tkMenu.c:813)
     by 0x5513DEB: TclEvalObjvInternal (tclBasic.c:3190)
     by 0x5514049: Tcl_EvalObjv (tclBasic.c:3306)
     by 0x484F0C5: Tkapp_Call (_tkinter.c:1314)
     by 0x810221C: PyCFunction_Call (methodobject.c:108)
     by 0x80B453E: PyEval_EvalFrame (ceval.c:3563)
     by 0x80B59D4: PyEval_EvalCodeEx (ceval.c:2736)
     by 0x80B36B5: PyEval_EvalFrame (ceval.c:3656)
     by 0x80B59D4: PyEval_EvalCodeEx (ceval.c:2736)
   Address 0x6142DF8 is 0 bytes inside a block of size 16 free'd 
     at 0x40050FF: free (vg_replace_malloc.c:233)
     by 0x5510BCB: TclpFree (tclAlloc.c:702)
     by 0x55195AC: Tcl_Free (tclCkalloc.c:1160)
     by 0x544D4CA: TkFreeMenuReferences (tkMenu.c:3460)
     by 0x5449E55: UnhookCascadeEntry (tkMenu.c:1380)
     by 0x5449F98: DestroyMenuEntry (tkMenu.c:1467)
     by 0x5584B77: Tcl_EventuallyFree (tclPreserve.c:302)
     by 0x544D548: DeleteMenuCloneEntries (tkMenu.c:3498)
     by 0x5448DC4: MenuWidgetObjCmd (tkMenu.c:813)
     by 0x5513DEB: TclEvalObjvInternal (tclBasic.c:3190)
     by 0x5514049: Tcl_EvalObjv (tclBasic.c:3306)
     by 0x484F0C5: Tkapp_Call (_tkinter.c:1314)


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: 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: 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: 220654ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 06. Canvas Postscript
priority: 2
foundin: obsolete: 8.2
resolution: Fixed
title: seg fault on command "$canvas postscript"
comment:
  OriginalBugID: 4028 Bug
  Version: 8.2
  SubmitDate: '2000-01-17'
  LastModified: '2000-01-17'
  Severity: CRIT
  Status: Released
  Submitter: techsupp
  ChangedBy: hobbs
  OS: Linux
  Machine: PC Celeron 333Mhz
  FixedDate: '2000-01-17'
  FixedInVersion: 8.3b2


  Name: Enrico Carniani

  ReproducibleScript:
  canvas .c
  ...
  update
  .c postscript -file a.ps

  ObservedBehavior:
  Sorry, no stack trace... The application crashes.
  In tk8.0, produced an empty postscript file.
  I haven't tried other previous versions.

  DesiredBehavior:
  I'd like the command to work...


  This does not core in Tk8.3b2 on Linux, so it was either fixed in
  the interim, or there is some other magic in the "..." that causes
  the crash. 
  -- 01/17/2000 hobbs


tkt_uuid: 3117468fffffffffffffffffffffffffffffffff
type: Bug
status: Pending
subsystem: 01. Bindings
priority: 9 Immediate
foundin: obsolete: 8.5.9
resolution: Works For Me
title: Malformed %A substition under solaris.
comment:
  %A substitution in bind scripts is broken.
  For example, character å becomes å5þpNþ(converted to hex: E5 35 FE 70 06 4E FE 01).
  In Unicode å is denoted by U+00E5.
  The garbage is different depending on the previously entered character (å is substituted correctly when it is the first character sent to the wish process).

  This behavior can be seen in Tcl/Tk 8.5.9, but not in 8.5.8.

  This is similar to 3080953, but this is seen under solaris as well.

  System information:
  $ uname -a
  SunOS simx 5.10 Generic_137138-09 i86pc i386 i86pc Solaris
  $ locale
  LANG=en_US.ISO8859-1
  LC_CTYPE="en_US.ISO8859-1"
  LC_NUMERIC="en_US.ISO8859-1"
  LC_TIME="en_US.ISO8859-1"
  LC_COLLATE=sv_SE.ISO8859-1
  LC_MONETARY="en_US.ISO8859-1"
  LC_MESSAGES="en_US.ISO8859-1"
  LC_ALL=


tkt_uuid: 3020677fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 75. wish
priority: 5 Medium
foundin: obsolete: 8.6b1.1
resolution: Fixed
title: wish can't link reg1.2
comment:
  Tk cvs head
  ms vc++2010
  ms vista sp2

  When building wish, the linker can't find the reg package lib file. rule.vc has the wrong version (1.2) - tcl cvs head builds 1.3

  Index: rules.vc
  ===================================================================
  RCS file: /cvsroot/tktoolkit/tk/win/rules.vc,v
  retrieving revision 1.25
  diff -r1.25 rules.vc
  562c562
  < TCLREGLIB     = "$(_TCLDIR)\lib\tclreg12$(SUFX:t=).lib"
  ---
  > TCLREGLIB     = "$(_TCLDIR)\lib\tclreg13$(SUFX:t=).lib"
  575c575
  < TCLREGLIB     = "$(_TCLDIR)\win\$(BUILDDIRTOP)\tclreg12$(SUFX:t=).lib"
  ---
  > TCLREGLIB     = "$(_TCLDIR)\win\$(BUILDDIRTOP)\tclreg13$(SUFX:t=).lib"


tkt_uuid: 220961ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 5 Medium
foundin: obsolete: 8.3.2
resolution: Fixed
title: Error in generated Makefile.
comment:
  OriginalBugID: 6362 Bug
  Version: 8.3.2
  SubmitDate: '2000-10-16'
  LastModified: 
  Severity: CRIT
  Status: UnAssn
  Submitter: techsupp
  OS: AIX
  OSVersion: 4.3.3
  Machine: IBM RS6000


  Name:
  Joachim Zaers

  Extensions:
  NA

  CustomShell:
  NA

  ReproducibleScript:
  I finally made it to compile the latest stable release under AIX 4.3.3 with gcc-2.95.2. Hurrah!
  But the Makefile for Tk as some faults in the usage of the -Wl, switch of the gcc.
  When using ldAIX.sh we not need that flag to signal that the following option is a linker option.
  There is no gcc running. On the other hand the gcc likes to have this flag when compiling and linking
  the executables.

  ObservedBehavior:
  Well, it did not built.

  Patch:
  *** Makefile    Mon Oct 16 21:03:46 2000
  --- Makefile.save       Mon Oct 16 19:23:33 2000
  ***************
  *** 197,205 ****

    # Libraries to use when linking.  This definition is determined by the
    # configure script.
  ! LIBS =  $(X11_LIB_SWITCHES) -ldl -Wl,-bI:/usr/local/LTA-DEV/src/tcl8.3.2/unix/lib.exp -L/usr/local/LTA-DEV/src/tcl8.3.2/unix -lm -lc
    WISH_LIBS = $(TCL_LIB_SPEC)  $(X11_LIB_SWITCHES) -ldl -Wl,-bI:/usr/local/LTA-DEV/src/tcl8.3.2/unix/lib.exp -L/usr/local/LTA-DEV/src/tcl8.3.2/unix -lm -lc

    # The symbol below provides support for dynamic loading and shared
    # libraries.  See configure.in for a description of what it means.
    # The values of the symbolis normally set by the configure script.
  --- 197,207 ----

    # Libraries to use when linking.  This definition is determined by the
    # configure script.
  ! LIBS =  $(X11_LIB_SWITCHES) -ldl -bI:/usr/local/LTA-DEV/src/tcl8.3.2/unix/lib.exp -L/usr/local/LTA-DEV/src/tcl8.3.2/unix -lm -lc
    WISH_LIBS = $(TCL_LIB_SPEC)  $(X11_LIB_SWITCHES) -ldl -Wl,-bI:/usr/local/LTA-DEV/src/tcl8.3.2/unix/lib.exp -L/usr/local/LTA-DEV/src/tcl8.3.2/unix -lm -lc

  +
  +
    # The symbol below provides support for dynamic loading and shared
    # libraries.  See configure.in for a description of what it means.
    # The values of the symbolis normally set by the configure script.
  ***************
  *** 391,397 ****

    wish: $(WISH_OBJS) $(TK_LIB_FILE) $(TK_STUB_LIB_FILE)
          $(CC)  $(WISH_OBJS)  !               -bI:/usr/local/LTA-DEV/src/tk8.3.2/unix/lib.exp  $(WISH_LIBS) $(TK_CC_SEARCH_FLAGS) -o wish

    # This rule is executed if the user tried to run tktest without first
  --- 393,399 ----

    wish: $(WISH_OBJS) $(TK_LIB_FILE) $(TK_STUB_LIB_FILE)
          $(CC)  $(WISH_OBJS)  !               -Wl,-bI:/usr/local/LTA-DEV/src/tk8.3.2/unix/lib.exp  $(WISH_LIBS) $(TK_CC_SEARCH_FLAGS) -o wish

    # This rule is executed if the user tried to run tktest without first
  ***************                                    
  *** 402,413 ****

    tktest: ${TCL_BIN_DIR}/tcltest $(TKTEST_OBJS) $(TK_LIB_FILE)
          ${CC}  $(TKTEST_OBJS)  !               -bI:/usr/local/LTA-DEV/src/tk8.3.2/unix/lib.exp  $(WISH_LIBS) $(TK_CC_SEARCH_FLAGS) -o tktest

    xttest: test.o tkTest.o tkSquare.o $(TK_LIB_FILE)
          ${CC}  test.o tkTest.o tkSquare.o  !               -bI:/usr/local/LTA-DEV/src/tk8.3.2/unix/lib.exp  $(WISH_LIBS) $(TK_LD_SEARCH_FLAGS) -lXt -o xttest

    # Note, in the target below TCL_LIBRARY needs to be set or else
  --- 404,415 ----

    tktest: ${TCL_BIN_DIR}/tcltest $(TKTEST_OBJS) $(TK_LIB_FILE)
          ${CC}  $(TKTEST_OBJS)  !               -Wl,-bI:/usr/local/LTA-DEV/src/tk8.3.2/unix/lib.exp  $(WISH_LIBS) $(TK_CC_SEARCH_FLAGS) -o tktest

    xttest: test.o tkTest.o tkSquare.o $(TK_LIB_FILE)
          ${CC}  test.o tkTest.o tkSquare.o  !               -Wl,-bI:/usr/local/LTA-DEV/src/tk8.3.2/unix/lib.exp  $(WISH_LIBS) $(TK_LD_SEARCH_FLAGS) -lXt -o xttest

    # Note, in the target below TCL_LIBRARY needs to be set or else

  PatchFiles:
  The patch is between the generated Makefile and the changed Makefile
      which allowed a clean
      build.


tkt_uuid: 220131ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 16. [scrollbar]
priority: 1 Zero
foundin: obsolete: 8.0.3
resolution: Invalid
title: Timing problems displaying MS Windows scrollbars with correct configured width
comment:
  OriginalBugID: 1382 Bug
  Version: 8.0.3
  SubmitDate: '1999-03-02'
  LastModified: '1999-10-22'
  Severity: LOW
  Status: Closed
  Submitter: pat
  ChangedBy: hobbs
  OS: Windows NT
  OSVersion: 4.0
  Machine: NA
  FixedInVersion: NA
  ClosedDate: '1999-10-22'


  From: "Phil Quackenbush" <QUACKENB@qwpage.com>

  Timing problems displaying MS Windows scrollbars with correct 
  configured width.

  7.  Instruction on how to reproduce the problem including a short test
      script.

  set testVariable {The rain in Spain falls mainly on the plain.}
  toplevel ._test
  entry ._test._entry
  scrollbar ._test._scrollbar
  ._test._entry configure -textvariable testVariable
  ._test._scrollbar configure -orient horizontal -width 3c
  pack ._test._entry -fill x
  pack ._test._scrollbar -fill x
  wm geometry ._test 433x95+0+0

  # believe it or not, sometimes the statement commented out below 
  # works, sometimes it doesn't!
  # with no delay or short delays the scrollbar remains skinny
  # if the delay is lengthened past 15-25, or whatever (? - timing not 
  # consistent), it usually works
  # at some point past this it always works

  #after 25 {wm geometry ._test 433x94+0+0}
  # or... (it doesn't matter, either one will do)
  #after idle {after 25 {wm geometry ._test 433x94+0+0}}

  8.  Described the undesired behavior you observed

  MS Windows scrollbar sits dead at some predefined default width, 
  until some delay has occurred, and then a whack to the geometry of 
  the toplevel sets the scrollbar to the correct height.

  Originally I had the script in 2 parts in 2 files and would source 
  them from the console (and hence the "human" delay in between).  Then 
  I caused the delay with the after command so I could play with it, 
  and submit a single script.

  9.  Described the behavior you expect to see

  I expect to see the scrollbar appear with the correct width in the 
  first place.

  10. If you have created a patch, please include it in the email or
      provide a URL of a patch file and list affected files.


  This is a minor programming error.  The user requires an
  'update idletasks' or 'update' following the wm geometry call. 
  -- 10/22/1999 hobbs


tkt_uuid: 220471ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 2
foundin: final: 8.0.5
resolution: Fixed
title: Crash when backward regexp search in text widget
comment:
  OriginalBugID: 1642 Bug
  Version: 8.0.5
  SubmitDate: '1999-03-26'
  LastModified: '1999-04-19'
  Severity: CRIT
  Status: Released
  Submitter: pat
  ChangedBy: rjohnson
  OS: Other
  OSVersion: HP-UX / Sun Solaris / Windows NT
  Machine: NA
  FixedDate: '1999-04-19'
  FixedInVersion: 8.1


  Name:
  Stephan Uyttebroeck

  ReproducibleScript:
      text .t
      pack .t
      .t insert end "line 1\n"
      .t insert end "line 2\n"
      .t insert end "line 3\n"
      .t insert end "line 4\n"
      .t insert end "line 5\n"
      tkTextSetCursor .t 3.0
      .t search -backward -regexp "\$" insert 1.0
      
      



  ObservedBehavior:
      The wish executable crashes.
      
      



  DesiredBehavior:
      2.6
      





      It crashed with versions 8.0.4 and 8.0.5 on Unix and NT.
      With 8.1b2 it doesn't crash, but it doesn't return the position of the
      match

      The forward search works (.t search -forward -regexp "\$" insert end)

  This crashes in 8.1b3.
  04/16/1999 13:48 - stanton -

  This as looping into empty memory.  It's been fixed to do the right thing.  04/19/1999 18:05 - rjohnson -


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: 1871848fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 28. Utility Functions
priority: 5 Medium
foundin: None
resolution: Fixed
title: ::tk::UnderlineAmpersand reviewed
comment:
  the proc ::tk::UnderlineAmpersand  in tk.tcl
  seems to handle this case wrong:

  ::tk::UnderlineAmpersand "a&&a&b"
  a&ab 4

  So here is my patch (cvs, core-8-5-0 branch). It includes also an -exact option for a switch.


tkt_uuid: 1822410fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 76. Widget Tour
priority: 5 Medium
foundin: obsolete: 8.5b2
resolution: Fixed
title: Listbox demo and window resizing
comment:
  The Tk Widget demo "Listbox demonstration (well-known sayings)" has a listbox that does not stretch horizontally when the window size changes. This is awkward, since you cannot make the listbox wide enough to read all the text without scrolling.

  The simple solution is to change line 33 to:

   pack $w.frame -side top -expand yes -fill both

  And then, the -sticky options in lines 43 and 44 are too general. They do behave correctly, so this is no error, but what is meant, is probably:

   grid $w.frame.yscroll -row 0 -column 1 -rowspan 1 -columnspan 1 -sticky ns
   grid $w.frame.xscroll -row 1 -column 0 -rowspan 1 -columnspan 1 -sticky ew


tkt_uuid: 2168768fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 37. [tk_get*File]
priority: 9 Immediate
foundin: None
resolution: Fixed
title: tk_get*File -typevariable should be global
comment:
  The tk_get*File -typevariable is currently not well resolved. On Windows, when giving a non-qualified variable name, it reads from a local variable, but it writes back to a global variable with the same name. On Linux, it always tries to access a local variable, but of course this fails during a callback (i.e. when clicking "Open"), with the following message:
  bad level "4"
      while executing
  "upvar 4 $data(-typevariable) initialTypeName"

  The attached patch fixes this by always accessing a global variable for -typevariable.

  On Windows, it also fixes another bug with -filetypes (filterIndex was not properly initalized in tkWinDialog.c).


tkt_uuid: 220373ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 38. [tk_messageBox]
priority: 5 Medium
foundin: obsolete: 8.2.1
resolution: Fixed
title: bug in msgbox.tcl
comment:
  OriginalBugID: 644 Bug
  Version: 8.0
  SubmitDate: '1998-05-25'
  LastModified: '1999-08-14'
  Severity: LOW
  Status: Released
  Submitter: hershey
  ChangedBy: hobbs
  OS: All
  OSVersion: NA
  Machine: NA
  FixedDate: '1999-08-14'
  FixedInVersion: 8.2


  The documentation for tk_messageBox -icon (7.6) says that

  - icon
  Specifies an icon to display. Icon must be one of the
  following: error, info, question or warning. If this option is not specified, then no icon will be displayed.

  However, for both 7.6 and 8.0, the default icon is info.  It looks 
  like "" would be acceptable except in line 51 of 8.0 version which
  checks for the possible values but not for "".  Inserting "" in that
  lsearch line gives no icon at all (which is what I am looking for).

  So something should be changed, although I am not sure which is the
  desired default: info or nothing.

  Thank you

  Bob Johnson
  johnsonb@gav.gat.com



  This was a documentation error, as info was always programmed
  as the default icon.  It is possible to not have a default
  icon by changing tkMessageBox on Unix and Tk_MessageBoxObjCmd
  on Windows (no ORing of the icon flag will cause no icon to
  be displayed).  I would have to check on the Mac.  You could
  make an RFE of this if you like. 
  -- 08/14/1999 hobbs


tkt_uuid: 2046267fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 88. Themed Tk
priority: 3 Low
foundin: None
resolution: None
title: Ttk::button -takefocus option influences <Button-1>
comment:
  A ttk::button which has -takefocus 1, will get the focus on a <ButtonPress-1> event. This is inconsistent with normal -takefocus behaviour, which only governs keyboard traversal with <Tab>.

  Even if this is intentional for ttk, it is inconsistent with the ttk documentation which says:

  -takefocus: Determines whether the window accepts the focus during keyboard traversal. Either 0, 1, a command prefix (to which the widget path is appended, and which should return 0 or 1), or the empty string. See options(n) in the Tk reference manual for the full description.

  Note that fixing this would also fix #1904322 and #1936220.

  See also http://wiki.tcl.tk/20050.


tkt_uuid: 220508ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 2
foundin: obsolete: 8.1b3
resolution: Fixed
title: Docs missing for Tk_HWNDToWindow API
comment:
  OriginalBugID: 1869 Bug
  Version: 8.1b3
  SubmitDate: '1999-04-16'
  LastModified: '2000-04-24'
  Severity: MED
  Status: Released
  Submitter: surles
  ChangedBy: ericm
  OS: All
  OSVersion: NA
  Machine: NA
  FixedDate: '2000-04-24'
  FixedInVersion: 8.3.1


  .

  I added a man page for this API for 8.3.1.

  - eric
   
  -- 04/24/2000 ericm


tkt_uuid: 1884975fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 01. Bindings
priority: 5 Medium
foundin: obsolete: 8.5.0
resolution: None
title: Bindings not created for a TK app on linux
comment:
  If you build and run the attached program (tkw.cxx) on Linux with version 8.5.0 then the number of bindings displayed for the listbox is incorrectly 0.

  The same program builds and runs correctly on version 8.5.0 on WinXP and 8.4.16 on Linux. The script tkw.tcl runs correctly when run as a script.

  Files:
  Makefile - edit for your setup
  tkw.cxx  - simple C++ program
  tkw.tcl  - the test script


tkt_uuid: 2496018fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 74. Application Embedding
priority: 9 Immediate
foundin: obsolete: 8.5.5
resolution: Fixed
title: Tk needs config option to disable use of XScreenSaver ext.
comment:
  From John Stone johns@ks.uiuc.edu (developer of VMD).

  When developing applications that embed Tcl/Tk interpreters, it is desirable to reduce or restrict the number of dependencies the application has on various system-dependent shared libraries.  This is particularly the case for applications intended for end users that are not technically inclined or are otherwise unable to deal with missing shared libraries or mismatched library versions, etc.  Beginning with Tcl/Tk 8.5.x, it seems that the configure script now detects and enables the use of the XScreenSaver extension by default, and there does not appear to be a mechanism for disabling this behavior 
  (e.g. no option such as --disable-xscreensaver).
  Since not all host machines have the Xss shared libs installed and/or may not have a compatible version, it would be very helpful to add a new configure option to disable this feature at compile time.


tkt_uuid: 966845ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.5a2
resolution: Fixed
title: textDisp-16.16 fails
comment:
  Starting with revision 1.41
  of tkTextDisp.c, I see:

  ==== textDisp-16.16 TkTextYviewCmd procedure, "moveto"
  option FAILED
  ==== Contents of test case:

      set count [expr {5 * $bigHeight + 150 * $fixedHeight}]
      set extra [expr {0.04 * double($fixedDiff * 150) /
  double($count)}]
      .t yview moveto [expr {.754 - $extra}]
      .t index @0,0

  ---- Result was:
  151.80
  ---- Result should have been (exact matching):
  151.60
  ==== textDisp-16.16 FAILED


tkt_uuid: 2053879fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 88. Themed Tk
priority: 5 Medium
foundin: obsolete: 8.6a3
resolution: Fixed
title: image in a tag isn't used for items in ttk::treeview
comment:
  Shouldn't the inserted item in the following code have an image ?

  """
  package require Tk

  image create photo test1 -file test1.gif
  ttk::treeview .t
  .t tag configure imgtest -image test1
  .t insert {} end -text test -tags imgtest
  pack .t
  """

  The "imgtest" tag should provide the "test1" image to that item, since that item has no image directly associated with it.


tkt_uuid: 220784ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 40. Bitmap Images
priority: 5 Medium
foundin: None
resolution: Duplicate
title: rotated text in bitmaps (with patch)
comment:
  OriginalBugID: 971 RFE
  Version: 8.0.4
  SubmitDate: '1998-12-15'
  LastModified: '2000-01-12'
  Severity: SER
  Status: Assigned
  Submitter: welch
  ChangedBy: hobbs
  RelatedBugIDs: 2652
  OS: Linux-Red Hat
  Machine: Other


  Name:

  D. Richard Hipp


  DesiredBehavior:

  I need to display changing text on a canvas at orientations other than

  horizontal.  The BLT "bitmap" command creates a bitmap containing rotated

  text, but the bitmap cannot be freed.  Since my text is constantly changing,

  this would cause a resource leak.


  I have patched the bitmap-image command of Tk8.0.4 to provide extra options

  as follows:  -text, -font, -rotate and -justify.  If no -data or -file arguments

  are given, then a bitmap is generated that contains the given text at the

  given rotation.  This solves my problem.


  Patch:

  *** tkImgBmap.cTue Dec  8 10:43:23 1998

  --- tkImgBmap.c.origMon Sep 14 14:23:12 1998

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

  *** 1,26 ****

  - /*

  - ** This file is a combination of the original Tk8.0 "bitmap" image

  - ** code with the "bitmap" command from BLT.  The BLT code comes with

  - ** the following copyright:

  - **

  - ** Copyright (C) 1993-1997 by AT&T Bell Laboratories.

  - ** Permission to use, copy, modify, and distribute this software

  - ** and its documentation for any purpose and without fee is hereby

  - ** granted, provided that the above copyright notice appear in all

  - ** copies and that both that the copyright notice and warranty

  - ** disclaimer appear in supporting documentation, and that the

  - ** names of AT&T Bell Laboratories any of their entities not be used

  - ** in advertising or publicity pertaining to distribution of the

  - ** software without specific, written prior permission.

  - ** 

  - ** AT&T disclaims all warranties with regard to this software, including

  - ** all implied warranties of merchantability and fitness.  In no event

  - ** shall AT&T be liable for any special, indirect or consequential

  - ** damages or any damages whatsoever resulting from loss of use, data

  - ** or profits, whether in an action of contract, negligence or other

  - ** tortuous action, arising out of or in connection with the use or

  - ** performance of this software. 

  - */

    /* 

     * tkImgBmap.c --

     *

  --- 1,3 ----

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

  *** 59,68 ****

        char *maskData;/* Data for bitmap's mask (suitable for

     * input to XCreateBitmapFromData).

     * Malloc'ed. */

  -     Tk_Font tkfont;/* Font used for rendering text */

  -     Tk_Justify justify;/* Justification for text rendering */

  -     char *string;/* Text used to generate the bitmap */

  -     double rotate;              /* Rotation angle for text. */

        Tk_Uid fgUid;/* Value of -foreground option (malloc'ed). */

        Tk_Uid bgUid;/* Value of -background option (malloc'ed). */

        char *fileString;/* Value of -file option (malloc'ed). */

  --- 36,41 ----

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

  *** 142,162 ****

    (char *) NULL, Tk_Offset(BitmapMaster, fileString), TK_CONFIG_NULL_OK},

        {TK_CONFIG_UID, "-foreground", (char *) NULL, (char *) NULL,

    "#000000", Tk_Offset(BitmapMaster, fgUid), 0},

  -     {TK_CONFIG_FONT, "-font", (char *) NULL, (char *) NULL,

  - "{Helvetica -12}", Tk_Offset(BitmapMaster, tkfont), 0},

  -     {TK_CONFIG_JUSTIFY, "-justify", (char *) NULL, (char *) NULL,

  - "left", Tk_Offset(BitmapMaster, justify), 0},

        {TK_CONFIG_STRING, "-maskdata", (char *) NULL, (char *) NULL,

    (char *) NULL, Tk_Offset(BitmapMaster, maskDataString),

    TK_CONFIG_NULL_OK},

        {TK_CONFIG_STRING, "-maskfile", (char *) NULL, (char *) NULL,

    (char *) NULL, Tk_Offset(BitmapMaster, maskFileString),

    TK_CONFIG_NULL_OK},

  -     {TK_CONFIG_DOUBLE, "-rotate", (char *)NULL, (char *) NULL,

  - "0.0", Tk_Offset(BitmapMaster, rotate), 0},

  -     {TK_CONFIG_STRING, "-text", (char *)NULL, (char *) NULL,

  - (char *) NULL, Tk_Offset(BitmapMaster, string),

  - TK_CONFIG_NULL_OK},

        {TK_CONFIG_END, (char *) NULL, (char *) NULL, (char *) NULL,

    (char *) NULL, 0, 0}

    };

  --- 115,126 ----

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

  *** 184,191 ****

     * Prototypes for procedures used only locally in this file:

     */


  - static PixmapComposeBitmapFromText _ANSI_ARGS_((Tk_Window tkwin,

  -     char *string, BitmapMaster *masterPtr));

    static intImgBmapCmd _ANSI_ARGS_((ClientData clientData,

        Tcl_Interp *interp, int argc, char **argv));

    static voidImgBmapCmdDeletedProc _ANSI_ARGS_((

  --- 148,153 ----

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

  *** 239,248 ****

        masterPtr->width = masterPtr->height = 0;

        masterPtr->data = NULL;

        masterPtr->maskData = NULL;

  -     masterPtr->tkfont = NULL;

  -     masterPtr->justify = TK_JUSTIFY_LEFT;

  -     masterPtr->string = NULL;

  -     masterPtr->rotate = 0.0;

        masterPtr->fgUid = NULL;

        masterPtr->bgUid = NULL;

        masterPtr->fileString = NULL;

  --- 201,206 ----

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

  *** 382,388 ****

        XGCValues gcValues;

        GC gc;

        unsigned int mask;

  -     Pixmap oldMask;


        /*

         * For each of the options in masterPtr, translate the string

  --- 340,345 ----

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

  *** 423,441 ****

    RootWindowOfScreen(Tk_Screen(instancePtr->tkwin)),

    masterPtr->data, (unsigned) masterPtr->width,

    (unsigned) masterPtr->height);

  -     } else if (masterPtr->string != NULL) {

  - instancePtr->bitmap = ComposeBitmapFromText(

  - instancePtr->tkwin, masterPtr->string, masterPtr);

        }


  !     /*

  !      * Careful:  We have to allocate a new mask Pixmap before deleting

  !      * the old one.  Otherwise, The XID allocator will always return

  !      * the same XID for the new Pixmap as was used for the old Pixmap.

  !      * And that will prevent the mask from changing in the GC below.

  !      */

  !     oldMask = instancePtr->mask;

  !     instancePtr->mask = None;

        if (masterPtr->maskData != NULL) {

    instancePtr->mask = XCreateBitmapFromData(

    Tk_Display(instancePtr->tkwin),

  --- 380,391 ----

    RootWindowOfScreen(Tk_Screen(instancePtr->tkwin)),

    masterPtr->data, (unsigned) masterPtr->width,

    (unsigned) masterPtr->height);

        }


  !     if (instancePtr->mask != None) {

  ! Tk_FreePixmap(Tk_Display(instancePtr->tkwin), instancePtr->mask);

  ! instancePtr->mask = None;

  !     }

        if (masterPtr->maskData != NULL) {

    instancePtr->mask = XCreateBitmapFromData(

    Tk_Display(instancePtr->tkwin),

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

  *** 443,453 ****

    masterPtr->maskData, (unsigned) masterPtr->width,

    (unsigned) masterPtr->height);

        }

  -     if (oldMask != None) {

  - Tk_FreePixmap(Tk_Display(instancePtr->tkwin), oldMask);

  -     }


  !     if (instancePtr->bitmap != None) {

    gcValues.foreground = instancePtr->fg->pixel;

    gcValues.graphics_exposures = False;

    mask = GCForeground|GCGraphicsExposures;

  --- 393,400 ----

    masterPtr->maskData, (unsigned) masterPtr->width,

    (unsigned) masterPtr->height);

        }


  !     if (masterPtr->data != NULL) {

    gcValues.foreground = instancePtr->fg->pixel;

    gcValues.graphics_exposures = False;

    mask = GCForeground|GCGraphicsExposures;

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

  *** 1118,1470 ****

        } else {

    return buffer;

        }

  - }

  - 

  - /* From BLT:

  - */

  - #define BLT_RND(x)     ((int)((x) + (((x)<0.0) ? -0.5 : 0.5)))

  - #define BLT_FMOD(x,y)  ((x)-(((int)((x)/(y)))*y))

  - 

  - /*

  -  * -----------------------------------------------------------------

  -  *

  -  * Blt_GetBoundingBox

  -  *

  -  * Computes the size the bounding box of a rotated rectangle, given

  -  *by the width, height, and rotation.  The rectangle corners are

  -  *simply rotated and the min and max x,y coordinates are determined.

  -  *      The rectangle is centered at 0,0.  Point 0 is at -w/2, -h/2.

  -  *Point 1 is at w/2, -h/2, etc.

  -  *

  -  *  0 ------- 1

  -  *  |         |

  -  *  |    x    |

  -  *  |         |

  -  *  3 ------- 2

  -  *

  -  * Results:

  -  *The width and height of the bounding box containing the

  -  *rotated rectangle are returned.

  -  *

  -  * -----------------------------------------------------------------

  -  */

  - static void

  - Blt_GetBoundingBox(width, height, theta, rotWPtr, rotHPtr, pointArr)

  -     int width, height;/* Unrotated region */

  -     double theta;/* Rotation of box */

  -     int *rotWPtr, *rotHPtr;/* Rotated bounding box region */

  -     XPoint *pointArr;/* Points of the rotated box */

  - {

  -     register int i;

  -     double sinTheta, cosTheta;

  -     double maxX, maxY;

  -     register double x, y;

  -     struct { double x,y; } corner[4];

  - 

  -     /*

  -      * Set the four corners of the rectangle whose center is the origin

  -      */

  -     corner[1].x = corner[2].x = (double)width * 0.5;

  -     corner[0].x = corner[3].x = -corner[1].x;

  -     corner[2].y = corner[3].y = (double)height * 0.5;

  -     corner[0].y = corner[1].y = -corner[2].y;

  - 

  -     theta = (-theta / 180.0) * M_PI;

  -     sinTheta = sin(theta), cosTheta = cos(theta);

  -     maxX = maxY = 0.0;

  - 

  -     /*

  -      * Rotate the four corners and find the maximum X and Y coordinates

  -      */

  -     for (i = 0; i < 4; i++) {

  - x = (corner[i].x * cosTheta) - (corner[i].y * sinTheta);

  - y = (corner[i].x * sinTheta) + (corner[i].y * cosTheta);

  - if (x > maxX) {

  -     maxX = x;

  - }

  - if (y > maxY) {

  -     maxY = y;

  - }

  - if (pointArr != NULL) {

  -     pointArr[i].x = BLT_RND(x);

  -     pointArr[i].y = BLT_RND(y);

  - }

  -     }

  - 

  -     /*

  -      * By symmetry, the width and height of the bounding box are

  -      * twice the maximum x and y coordinates.

  -      */

  -     *rotWPtr = (int)((maxX + maxX) + 0.5);

  -     *rotHPtr = (int)((maxY + maxY) + 0.5);

  - }

  - 

  - /*

  -  * -----------------------------------------------------------------

  -  *

  -  * Blt_RotateBitmap --

  -  *

  -  *Creates a new bitmap containing the rotated image of the given

  -  *bitmap.  We also need a special GC of depth 1, so that we do

  -  *not need to rotate more than one plane of the bitmap.

  -  *

  -  * Results:

  -  *Returns a new bitmap containing the rotated image.

  -  *

  -  * -----------------------------------------------------------------

  -  */

  - static Pixmap

  - Blt_RotateBitmap(display, draw, bitmapGC, srcBitmap, srcWidth, srcHeight,

  -     theta, rotWPtr, rotHPtr)

  -     Display *display;/* X display */

  -     Drawable draw;/* Root window drawable */

  -     GC bitmapGC;/* GC created from bitmap where fg=1,bg=0 */

  -     Pixmap srcBitmap;/* Source bitmap to be rotated */

  -     int srcWidth, srcHeight;/* Width and height of the source bitmap */

  -     double theta;/* Right angle rotation to perform */

  -     int *rotWPtr, *rotHPtr;

  - {

  -     Pixmap destBitmap;

  -     int destWidth, destHeight;

  -     register int dx, dy;/* Destination bitmap coordinates */

  -     register int sx, sy;/* Source bitmap coordinates */

  -     unsigned long pixel;

  - #ifndef__WIN32__

  -     XImage *src, *dest;

  - #else

  - #   undef XPutPixel

  - #   undef XGetPixel

  - #   define XGetPixel(P,X,Y) GetPixel(P, X, Y)

  - #   define XPutPixel(d,x,y,c) SetPixel(d,x,y,c)

  -     unsigned long fg = bitmapGC->foreground;

  -     unsigned long bg = bitmapGC->background;

  -     TkWinDCState DCs, DCd;

  -     HDC src, dest;

  - #endif /* !__WIN32__ */

  - 

  -     /*

  -      * Create a bitmap and image big enough to contain the rotated text

  -      */

  -     Blt_GetBoundingBox(srcWidth, srcHeight, theta, &destWidth, &destHeight,

  - (XPoint *)NULL);

  -     destBitmap = Tk_GetPixmap(display, draw, destWidth, destHeight, 1);

  -     XSetForeground(display, bitmapGC, 0);

  -     XFillRectangle(display, destBitmap, bitmapGC, 0, 0, destWidth, destHeight);

  - #ifndef__WIN32__

  -     src = XGetImage(display, srcBitmap, 0, 0, srcWidth, srcHeight, 1, ZPixmap);

  -     dest = XGetImage(display, destBitmap, 0, 0, destWidth, destHeight, 1,

  - ZPixmap);

  - #else

  -     src = TkWinGetDrawableDC(display, srcBitmap, &DCs);

  -     dest = TkWinGetDrawableDC(display, destBitmap, &DCd);

  - #endif

  - 

  -     theta = BLT_FMOD(theta, 360.0);

  -     if (BLT_FMOD(theta, (double)90.0) == 0.0) {

  - int quadrant;

  - 

  - /*

  -  * Handle right-angle rotations specially

  -  */

  - quadrant = (int)(theta / 90.0);

  - for (dx = 0; dx < destWidth; dx++) {

  -     for (dy = 0; dy < destHeight; dy++) {

  - switch (quadrant) {

  -     case 3:/* 270 degrees */

  - sx = dy;

  - sy = destWidth - dx - 1;

  - break;

  -     case 2:/* 180 degrees */

  - sx = destWidth - dx - 1;

  - sy = destHeight - dy - 1;

  - break;

  -     case 1:/* 90 degrees */

  - sx = destHeight - dy - 1;

  - sy = dx;

  - break;

  -     default:

  -     case 0:/* 0 degrees */

  - sx = dx;

  - sy = dy;

  - break;

  - }

  - pixel = XGetPixel(src, sx, sy);

  - if (pixel) {

  -     XPutPixel(dest, dx, dy, pixel);

  - }

  -     }

  - }

  -     } else {

  - double radians, sinTheta, cosTheta;

  - double srcX, srcY;/* Center of source rectangle */

  - double destX, destY;/* Center of destination rectangle */

  - double transX, transY;

  - double rotX, rotY;

  - 

  - radians = (theta / 180.0) * M_PI;

  - sinTheta = sin(radians);

  - cosTheta = cos(radians);

  - 

  - /*

  -  * Coordinates of the centers of the source and destination rectangles

  -  */

  - srcX = srcWidth * 0.5;

  - srcY = srcHeight * 0.5;

  - destX = destWidth * 0.5;

  - destY = destHeight * 0.5;

  - 

  - /*

  -  * Rotate each pixel of dest image, placing results in source image

  -  */

  - for (dx = 0; dx < destWidth; dx++) {

  -     for (dy = 0; dy < destHeight; dy++) {

  - 

  - /* Translate origin to center of destination image */

  - transX = dx - destX;

  - transY = dy - destY;

  - 

  - /* Rotate the coordinates about the origin */

  - rotX = (transX * cosTheta) - (transY * sinTheta);

  - rotY = (transX * sinTheta) + (transY * cosTheta);

  - 

  - /* Translate back to the center of the source image */

  - rotX += srcX;

  - rotY += srcY;

  - 

  - sx = BLT_RND(rotX);

  - sy = BLT_RND(rotY);

  - 

  - /*

  -  * Verify the coordinates, since the destination image can be

  -  * bigger than the source

  -  */

  - 

  - if (   (sx >= srcWidth) || (sx < 0)

  -     || (sy >= srcHeight) || (sy < 0)) {

  -     continue;

  - }

  - pixel = XGetPixel(src, sx, sy);

  - if (pixel) {

  -     XPutPixel(dest, dx, dy, pixel);

  - }

  -     }

  - }

  -     }

  - 

  - #ifndef__WIN32__

  -     /* Write the rotated image into the destination bitmap */

  -     XPutImage(display, destBitmap, bitmapGC, dest, 0, 0, 0, 0, destWidth,

  - destHeight);

  - 

  -     /* Clean up temporary resources used */

  -     XDestroyImage(src);

  -     XDestroyImage(dest);

  - #else /* __WIN32__ */

  - #   undef XPutPixel

  - #   undef XGetPixel

  -     TkWinReleaseDrawableDC(srcBitmap, src, &DCs);

  -     TkWinReleaseDrawableDC(destBitmap, dest, &DCd);

  - #endif /* __WIN32__ */

  - 

  -     *rotWPtr = destWidth;

  -     *rotHPtr = destHeight;

  - 

  -     return destBitmap;

  - }

  - 

  - /*

  -  *----------------------------------------------------------------------

  -  *

  -  * ComposeBitmapFromText --

  -  *

  -  *This procedure generates a bitmap contain an image of text.

  -  *

  -  *Most of the code in this procedure is adapted from the

  -  *Blt_CreateTextBitmap() function of BLT.

  -  *

  -  * Results:

  -  *The handle for the generated bitmap.

  -  *

  -  * Side effects:

  -  *None.

  -  *

  -  *----------------------------------------------------------------------

  -  */

  - static Pixmap

  - ComposeBitmapFromText(tkwin, string, masterPtr)

  -     Tk_Window tkwin;

  -     char *string;

  -     BitmapMaster *masterPtr;

  - {

  -     int width, height;/* Width and height of text bounding box */

  -     Pixmap bitmap;

  -     XGCValues gcValues;

  -     unsigned long gcMask;

  -     GC bitmapGC;

  -     Window root;

  -     Display *display;

  -     Tk_TextLayout layout;

  - #ifdef__WIN32__

  - #   define BITMAPFGCOL PALETTERGB(255,255,255)

  - #   define BITMAPBGCOL PALETTERGB(0,0,0)

  - #   ifdef _WINNT

  - #define TEXTMASKDEPTH Tk_Depth(tkwin)

  - #   else

  - #define TEXTMASKDEPTH 1

  - #   endif

  - #else

  - #   define TEXTMASKDEPTH 1

  - #   define BITMAPFGCOL 1

  - #   define BITMAPBGCOL 0

  - #endif

  - 

  -     layout = Tk_ComputeTextLayout(

  -                   masterPtr->tkfont,

  -                   string,

  -                   -1,

  -                   0,

  -                   masterPtr->justify,

  -                   0,

  -                   &width,

  -                   &height);

  -     display = Tk_Display(tkwin);

  -     root = RootWindow(display, Tk_ScreenNumber(tkwin));

  - 

  -     /*

  -      * Create a temporary bitmap and draw the text string into it.

  -      */

  -     bitmap = Tk_GetPixmap(display, root, width, height, TEXTMASKDEPTH);

  -     gcValues.font = Tk_FontId(masterPtr->tkfont);

  -     gcValues.foreground = BITMAPBGCOL;

  -     gcValues.background = BITMAPBGCOL;

  -     gcMask = (GCFont | GCForeground | GCBackground);

  -     bitmapGC = XCreateGC(display, bitmap, gcMask, &gcValues);

  - 

  -     /*

  -      * Clear the pixmap and draw the text string into it

  -      */

  -     XFillRectangle(display, bitmap, bitmapGC, 0, 0, width, height);

  -     XSetForeground(display, bitmapGC, BITMAPFGCOL);

  -     Tk_DrawTextLayout(display, bitmap, bitmapGC, layout, 0, 0, 0, -1);

  -     Tk_FreeTextLayout(layout);

  - 

  -     /*

  -      * Rotate the bitmap, if needed

  -      */

  -     if (masterPtr->rotate != 0.0) {

  - Pixmap rotBitmap;

  - 

  - rotBitmap = Blt_RotateBitmap(display, root, bitmapGC, bitmap, width,

  -     height, masterPtr->rotate, &masterPtr->width, &masterPtr->height);

  - Tk_FreePixmap(display, bitmap);

  - bitmap = rotBitmap;

  -     } else {

  - masterPtr->width = width;

  - masterPtr->height = height;

  -     }

  -     XFreeGC(display, bitmapGC);

  - 

  -     return bitmap;

  - #   undef TEXTMASKDEPTH

  - #   undef BITMAPFGCOL

    }

  --- 1065,1068 ----

  *** tkWindow.cTue Dec  8 10:51:08 1998

  --- tkWindow.c.origWed Sep 30 15:01:20 1998

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

  *** 1222,1229 ****


        Tcl_DeleteHashTable(&winPtr->mainPtr->nameTable);

        TkBindFree(winPtr->mainPtr);

  -     TkDeleteAllImages(winPtr->mainPtr);

        TkFontPkgFree(winPtr->mainPtr);


                /*

                 * When embedding Tk into other applications, make sure 

  --- 1222,1229 ----


        Tcl_DeleteHashTable(&winPtr->mainPtr->nameTable);

        TkBindFree(winPtr->mainPtr);

        TkFontPkgFree(winPtr->mainPtr);

  +     TkDeleteAllImages(winPtr->mainPtr);


                /*

                 * When embedding Tk into other applications, make sure 


  PatchFiles:

  tkImgBmap.c

  tkWindow.c




  I'll be happy to supply you with patched man-pages, or revise the code
  in any way you desire, if you agree to take this patch.  Just let me
  know.

  I don't think this works on a Mac.  I haven't tested it on Windows.
  --
  It would be good to know more about the portability here.
  Also, this is a rev-patch, which isn't as helpful... and it
  would be good to know if something for 8.1+ exists. 
  -- 08/18/1999 hobbs


tkt_uuid: 676462ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 5 Medium
foundin: obsolete: 8.4.1
resolution: Out of Date
title: Overrideredirect window takes focus, Aqua
comment:
  A toplevel window with overrideredirect set takes the input focus 
  when raised in Aqua Tk 8.4.1. This kind of window is used for 
  implementing balloon help. It should not take keyboard and pointer 
  events when raised.  The raise command is intended to change 
  stacking order -- the window manager then determines whether it 
  gets the focus. Overrideredirect windows are not supposed to be 
  managed by the window manager and so should never be given 
  the focus unless explicitly done so by a Tk command.  The X11 
  and Windows Tk implementations do not give an overrideredirect 
  window the focus when it is raised.

  The consequence of the current Aqua Tk 8.4.1 behaviour is that 
  balloon help windows steal the focus.  For example, in the Python 
  shell (IDLE) after typing a function name and an open parenthesis 
  a balloon shows the expected arguments to the function.  Since 
  this balloon window takes the keyboard focus when you continue 
  to type the function arguments they go to the balloon window 
  instead of the shell window.

  Here are wish8.4 commands that demonstrates the problem.

  toplevel .t ; wm withdraw .t ; wm overrideredirect .t 1
  wm deiconify .t
  wm raise .t

  After the deiconify the toplevel (without a window frame) has the 
  keyboard focus.  Clicking on another window and then invoking 
  the "wm raise .t" command gives the focus back to the 
  overrideredirect window .t.


tkt_uuid: 220195ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 37. [tk_get*File]
priority: 5 Medium
foundin: obsolete: 8.3
resolution: Invalid
title: tk_getOpenFile ... -parent locks up parent window
comment:
  OriginalBugID: 2143 Bug
  Version: 8.1
  SubmitDate: '1999-06-03'
  LastModified: '1999-11-12'
  Severity: SER
  Status: Closed
  Submitter: techsupp
  ChangedBy: hobbs
  OS: Windows 95
  Machine: X86
  ClosedDate: '1999-11-12'


  Name:
  Peter Costello

  ReproducibleScript:
  if {$operation == "open"} {
      # Tcl/Tk 8.05 and 8.1 hangs up buttons and entry area in parent window
      # set file [tk_getOpenFile -filetypes $types -parent $w]
      set file [tk_getOpenFile -filetypes $types ]
          } else {
      set file [tk_getSaveFile -filetypes $types -parent $w  -initialfile Untitled -defaultextension .txt]
          }

  ObservedBehavior:
  If you use -parent as option to tk_getOpenFile the parent window is
      locked out
      from button pushes or text entry. Ifd you remove the -parent it works
      fine
      and like version 8.0

  DesiredBehavior:
  I expect to see the same behavior as 8.0 and have the parent window
      buttons and
      text entry areas active after the tk_getOpenFile is executed.



  This was actually a conscious behavior change, that the dialog
  has a local grab over the parent. 
  -- 11/12/1999 hobbs


tkt_uuid: 644641ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 6
foundin: obsolete: 8.4.1
resolution: Works For Me
title: W XP: ButtonProc called on invalid HWND
comment:
  when destroying a toplevel a message appears:  
  ButtonProc called on an invalid HWND  
  and wish crashes with a segmentation fault.  
    
  Unfortunately I was not able to write a simple script to show the  
  problem but it is reproduceable on a complex application.  
    
  What basically happens:  
  - Main application with menu  
  - Toplevel created: toplevel .t  
  - Messagebox created as a child from .t: tk_messageBox -parent .t  
  - change to the main window (.) and select a menu entry which  
  destroys the toplevel .t:  
          destroy .t  
  The toplevel and the message box disapears and an error message  
  shows up:  
          ButtonProc called on an invalid HWND  
  Then wish crashes with a protection fault on a read operation.  
    
   If someone is interested to get the application to reproduce the error 
  I will e-mail the whole application and instructions or I can make tries. 
   
  I just wanted to document this. Clear it off if it is not sufficient. 
   
  M. Cristiano Bernini [cbernini at iontrading com] reported the same 
  problem. 


tkt_uuid: 220667ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 05. Canvas Items
priority: 2
foundin: obsolete: 8.3b2
resolution: Fixed
title: new "-activedash" option doesn't work in all situations
comment:
  OriginalBugID: 4104 Bug
  Version: 8.3b2
  SubmitDate: '2000-01-31'
  LastModified: '2000-02-01'
  Severity: MED
  Status: Released
  Submitter: techsupp
  ChangedBy: hobbs
  OS: All
  FixedDate: '2000-02-01'
  FixedInVersion: 8.3


  Name:

  Jan Nijtmans


  Comments:

  This bug is discovered by Nick Ing-Simmons. Many thanks to him. It

      is caused by a number of tests using '>' which should have been '!='.

      The possibility of dash.number to be negative is added later to

      the dash-patch, and some places in the code have never been

      adapted accordingly.


  ReproducibleScript:

  In the following script, all canvas element are expected to

  turn dashed when the mouse moves over it.


  canvas .c

  .c create line 10 10 100 10 -width 3 -activedash .

  .c create poly 10 20 100 20 55 30 -width 3 -fill {} -outline black -activedash .

  .c create oval 10 40 30 60 -width 3 -fill {} -activedash .

  .c create rect 40 40 60 60 -width 3 -fill {} -activedash .

  .c create arc  50 40 90 80 -width 3 -fill {} -activedash .

  pack .c


  ObservedBehavior:

  Moving the mouse over the elemens has no effect


  DesiredBehavior:

  Elements should turn dashed when moving the mouse over it


  Patch:

  *** generic/tkCanvArc.c.origSun Jan 30 11:24:54 2000

  --- generic/tkCanvArc.cSun Jan 30 13:07:23 2000

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

  *** 482,488 ****

         */


        if (arcPtr->outline.activeWidth > arcPtr->outline.width ||

  !     arcPtr->outline.activeDash.number > 0 ||

        arcPtr->outline.activeColor != NULL ||

        arcPtr->outline.activeStipple != None ||

        arcPtr->activeFillColor != NULL ||

  --- 482,488 ----

         */


        if (arcPtr->outline.activeWidth > arcPtr->outline.width ||

  !     arcPtr->outline.activeDash.number != 0 ||

        arcPtr->outline.activeColor != NULL ||

        arcPtr->outline.activeStipple != None ||

        arcPtr->activeFillColor != NULL ||

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

  *** 842,848 ****

    if (arcPtr->outline.activeWidth>lineWidth) {

        lineWidth = arcPtr->outline.activeWidth;

    }

  ! if (arcPtr->outline.activeDash.number>0) {

        dashnumber = arcPtr->outline.activeDash.number;

    }

    if (arcPtr->activeFillStipple != None) {

  --- 842,848 ----

    if (arcPtr->outline.activeWidth>lineWidth) {

        lineWidth = arcPtr->outline.activeWidth;

    }

  ! if (arcPtr->outline.activeDash.number!=0) {

        dashnumber = arcPtr->outline.activeDash.number;

    }

    if (arcPtr->activeFillStipple != None) {

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

  *** 852,858 ****

    if (arcPtr->outline.disabledWidth>0) {

        lineWidth = arcPtr->outline.disabledWidth;

    }

  ! if (arcPtr->outline.disabledDash.number>0) {

        dashnumber = arcPtr->outline.disabledDash.number;

    }

    if (arcPtr->disabledFillStipple != None) {

  --- 852,858 ----

    if (arcPtr->outline.disabledWidth>0) {

        lineWidth = arcPtr->outline.disabledWidth;

    }

  ! if (arcPtr->outline.disabledDash.number!=0) {

        dashnumber = arcPtr->outline.disabledDash.number;

    }

    if (arcPtr->disabledFillStipple != None) {

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

  *** 931,937 ****

     * the outline is dashed, because then polygons don't work.

     */


  ! if (lineWidth < 1.5 || dashnumber > 0) {

        Tk_CanvasDrawableCoords(canvas, arcPtr->center1[0],

        arcPtr->center1[1], &x1, &y1);

        Tk_CanvasDrawableCoords(canvas, arcPtr->center2[0],

  --- 931,937 ----

     * the outline is dashed, because then polygons don't work.

     */


  ! if (lineWidth < 1.5 || dashnumber != 0) {

        Tk_CanvasDrawableCoords(canvas, arcPtr->center1[0],

        arcPtr->center1[1], &x1, &y1);

        Tk_CanvasDrawableCoords(canvas, arcPtr->center2[0],

  *** generic/tkCanvLine.c.origSun Jan 30 11:25:01 2000

  --- generic/tkCanvLine.cSun Jan 30 11:34:45 2000

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

  *** 514,520 ****

        }


        if (linePtr->outline.activeWidth > linePtr->outline.width ||

  !     linePtr->outline.activeDash.number > 0 ||

        linePtr->outline.activeColor != NULL ||

        linePtr->outline.activeStipple != None) {

    itemPtr->redraw_flags |= TK_ITEM_STATE_DEPENDANT;

  --- 514,520 ----

        }


        if (linePtr->outline.activeWidth > linePtr->outline.width ||

  !     linePtr->outline.activeDash.number != 0 ||

        linePtr->outline.activeColor != NULL ||

        linePtr->outline.activeStipple != None) {

    itemPtr->redraw_flags |= TK_ITEM_STATE_DEPENDANT;

  *** generic/tkCanvPoly.c.origSun Jan 30 11:25:16 2000

  --- generic/tkCanvPoly.cSun Jan 30 11:36:19 2000

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

  *** 464,470 ****

        state = itemPtr->state;


        if (polyPtr->outline.activeWidth > polyPtr->outline.width ||

  !     polyPtr->outline.activeDash.number > 0 ||

        polyPtr->outline.activeColor != NULL ||

        polyPtr->outline.activeStipple != None ||

        polyPtr->activeFillColor != NULL ||

  --- 464,470 ----

        state = itemPtr->state;


        if (polyPtr->outline.activeWidth > polyPtr->outline.width ||

  !     polyPtr->outline.activeDash.number != 0 ||

        polyPtr->outline.activeColor != NULL ||

        polyPtr->outline.activeStipple != None ||

        polyPtr->activeFillColor != NULL ||

  *** generic/tkRectOval.c.origSun Jan 30 11:26:01 2000

  --- generic/tkRectOval.cSun Jan 30 11:37:01 2000

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

  *** 439,445 ****

         */


        if (rectOvalPtr->outline.activeWidth > rectOvalPtr->outline.width ||

  !     rectOvalPtr->outline.activeDash.number > 0 ||

        rectOvalPtr->outline.activeColor != NULL ||

        rectOvalPtr->outline.activeStipple != None ||

        rectOvalPtr->activeFillColor != NULL ||

  --- 439,445 ----

         */


        if (rectOvalPtr->outline.activeWidth > rectOvalPtr->outline.width ||

  !     rectOvalPtr->outline.activeDash.number != 0 ||

        rectOvalPtr->outline.activeColor != NULL ||

        rectOvalPtr->outline.activeStipple != None ||

        rectOvalPtr->activeFillColor != NULL ||


  PatchFiles:

  tkCanvArc.c tkCanvLine.c tkCanvPoly.c tkRectOval.c




  applied to 8.3.0. 
  -- 02/01/2000 hobbs


tkt_uuid: 220813ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 31. Cursor Names
priority: 8
foundin: obsolete: 8.1b3
resolution: Out of Date
title: Docs missing for Tk_MacTkOwnsCursor API
comment:
  OriginalBugID: 1895 Bug
  Version: 8.1b3
  SubmitDate: '1999-04-16'
  LastModified: '1999-04-22'
  Severity: MED
  Status: Assigned
  Submitter: surles
  ChangedBy: hershey
  OS: All
  OSVersion: NA
  Machine: NA
  FixedInVersion: NA


tkt_uuid: 3520912fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 66. Aqua Window Operations
priority: 9 Immediate
foundin: obsolete: 8.5.11
resolution: Fixed
title: Cocoa and crash in notifier
comment:
  The current build of the tk-cocoa-8-5-backport branch crashes on startup (before any evaluation of scripts) probably in the notifier. Similar problems experienced on 8.6.


tkt_uuid: 220277ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 36. [tk_chooseDirectory]
priority: 5 Medium
foundin: obsolete: 8.3.1
resolution: Invalid
title: tk_chooseDirectory returns upper case name on Win98
comment:
  OriginalBugID: 4145 Bug
  Version: 8.3b2
  SubmitDate: '2000-02-08'
  LastModified: '2000-02-10'
  Severity: MED
  Status: Closed
  Submitter: techsupp
  ChangedBy: hobbs
  OS: All Windows
  ClosedDate: '2000-02-10'


  Name:
  Vince Darley

  ReproducibleScript:
  Any use of tk_chooseDirectory insists on returning an entirely uppercase version of what the user selects in the dialog, on Windows 98..  While the filesystem is case independent, it would be better to return (and display in the dialog) the actual case-dependent name...



  This looks to be an unforunate behavior of the chosen native
  dialog on Windows (Win32 API).  On NT, you get case preservation.
  The user may be able to get the properly cased name again by
  using file attributes. 
  -- 02/10/2000 hobbs


tkt_uuid: 2854590fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 83. Mac OS X Build
priority: 5 Medium
foundin: obsolete: 8.6b1.1
resolution: Wont Fix
title: TkMacOSXVisableClipRgn typo
comment:
  It is "visible" not "visable".  This is in the stubs table so it should get fixed before extension writers start using it everywhere.


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: 3551802fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 32. Key Symbols
priority: 5 Medium
foundin: None
resolution: None
title: Use the Xkb API to simply Tk's keyboard event handling
comment:
  Building Tk 8.5.12 results in a handful of compiler warnings stating that XKeycodeToKeysym is deprecated, all in unix/tkUnixKey.c.
  Here's a naive patch that passes the tests.
  I have no idea what is the correct thing to do here.


tkt_uuid: 220318ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: None
priority: 1 Zero
foundin: None
resolution: Invalid
title: Prepare geometry managers for labeled frames.
comment:
  OriginalBugID: 6059 RFE
  Version: 8.4a1
  SubmitDate: '2000-07-26'
  LastModified: '2000-09-05'
  Severity: LOW
  Status: Closed
  Submitter: angie
  ChangedBy: ericm
  OS: Windows 98
  ClosedDate: '2000-09-05'


  Tk 8.4a1 Request

  Name:  Peter Spjuth
  email:  peter.spjuth@space.se
  Support:  None
  CVS:  2000-07-25
  OperatingSystem:  Windows 98
  Synopsis:  Prepare geometry managers for labeled frames.

  DesiredBehavior:

  This patch adds support for having different internalBorderWidths on
  different sides of a window. It includes changes to the TkWindow struct
  and to geometry managers and other users of that information.

  This is a preparation for adding labels to frames, and I have made it
  a separate patch since it involves seperate files from the other
  changes, and since it involves a backward incompatibility and thus
  needs some extra thinking.

  The patch adds a new function to TkGeometry.c, Tk_SetInternalBorderEx.
  This function also needs to be added to tk.decls and tkDecls.h, and that
  change is not included in the patch since I don't know the proper way to
  do that.

  To be as backward compatible as possible, I have avoided moving things
  around in TkWindow by keeping the old internalBorderWidth field where it was,
  and added the new fields to the end.
  I have marked the old field as deprecated, but was not sure what to do
  with it. I choose to change its name to internalBorderWidthOld to keep
  anyone from accidentally using it.

  The man pages probably need some work, since I'm far from good at such stuff.


  Patch:
  The diffs can be found at:
  http://www.dtek.chalmers.se/~d1peter/borderpatch.zip

  Patched versions of the files can be found at:
  http://www.dtek.chalmers.se/~d1peter/borderpatch2.zip



  From the submitter:

  Hi!

  I'd just like to say that you can throw out RFE 6059 (and
  the related RFE which I don't have a number on).
  Paul's proposal in c.l.t. is better and I'll prepare
  a new patch for that.

  --

  - eric
   
  -- 09/05/2000 ericm


tkt_uuid: 700323ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 69. Events
priority: 5 Medium
foundin: obsolete: 8.4.2
resolution: None
title: OS X Aqua: event generate fails to trigger key bindings
comment:
  The 'event generate' command seems to not be triggering
  bindings on the target widget.  For example, with the
  following code, typing 'a' in the first entry wiget
  should cause a <key-b> event to insert a b into the
  second entry widget:

  entry .e1
  entry .e2
  pack .e1
  pack .e2
  bind .e1 <Key-a> "event generate .e2 <Key-b> ; break"


tkt_uuid: 1710633fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 01. Bindings
priority: 7 High
foundin: obsolete: 8.5a6
resolution: Fixed
title: Tk uses deprecated syntax
comment:
  The files tk.tcl, choosedir.tcl, and
  comdlg.tcl in the Tk script library
  make use of the {expand} syntax, which
  is no longer approved.  


tkt_uuid: 848161ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 41. Photo Images
priority: 8
foundin: None
resolution: Accepted
title: Alpha blending patch
comment:
  This patch updates Tk_PhotoPutBlock() and 
  Tk_PhotoPutZoomedBlock() to:
    - copy source pixels instead of initializing destination to 
  0xd9 if destination is transparent,
    - update COMPLEX_ALPHA flag.


tkt_uuid: 814844ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 11. Aqua Menus
priority: 5 Medium
foundin: obsolete: 8.4.4
resolution: Out of Date
title: No multi-column menus, Mac Aqua
comment:
  Multi-column menus are displayed as a single column in
  Aqua Tk 8.4.4.  The following example,

  menubutton .b -text Tools
  menu .b.m
  .b.m add command -label stuff
  .b.m add command -label more -columnbreak 1
  .b configure -menu .b.m
  pack .b

  produces a single column menu using Aqua Tk.  On Linux,
  Windows, SGI and HP Alpha it makes a 2 column menu.

  In our application the second column has checkbuttons
  with the
  last one being "all of the above".  The meaning of this
  becomes
  confusing when all entries are displayed in one column.


tkt_uuid: 480944ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: -- New Commands
priority: 5 Medium
foundin: None
resolution: Duplicate
title: Add console support to Tk / Unix
comment:
  Could something at least equivalent to the Windows/Mac
  Tk code - and perhaps as nice as tkcon - please be
  added to the standard Tk app.  Otherwise, windows and
  mac programmers are faced with conditional programming
  around this currently non-cross-platform command.

  In fact, tcl and tk should make it clearer when
  something is not cross platform.  The doc doesn't
  mention that it isn't available on all platforms. 
  Perhaps if console is not to be supported on Unix, it
  should at least be moved into a package that must be
  require'd to use?  But the preference would be for it
  to be available on all platforms.


tkt_uuid: 1822391fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 41. Photo Images
priority: 9 Immediate
foundin: obsolete: 8.5b2
resolution: Fixed
title: segfault with photo put
comment:
  The put operation on a photo image causes a segfault with malformed input data. See code in attachment saved as file crash. Results when executed:

  % wish crash 
  ----- 8.4.15
  /usr/lib64/tcl8.4 /usr/lib64 /usr/lib /usr/lib64/tk8.4
  /usr/lib64/tcl8.4 /usr/lib64 /usr/lib /usr/lib64/tk8.4
  hello1
  Segmentation fault

  % /usr/local/tcl/8.5b2/bin/wish crash
  ----- 8.5b2
  /usr/local/tcl/8.5b2/lib/tcl8.5 /usr/local/tcl/8.5b2/lib /usr/local/tcl/8.5b2/lib/tk8.5 /usr/local/tcl/8.5b2/lib/tk8.5/ttk
  /usr/local/tcl/8.5b2/lib/tcl8.5 /usr/local/tcl/8.5b2/lib /usr/local/tcl/8.5b2/lib/tk8.5 /usr/local/tcl/8.5b2/lib/tk8.5/ttk
  hello1
  Segmentation fault

  Expected behavior: should not crash
  Tested on Gentoo 2007.0 i686, x86_64.


tkt_uuid: 1908443fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 99. Other
priority: 5 Medium
foundin: obsolete: 8.5.1
resolution: Fixed
title: Composed characters in UTF-8 locale
comment:
  Observed on Debian Sarge after installing UTF-8 locales: ISO8859-1 characters entered with compose key sequences end up wrong.

  Setup: xmodmap -e 'keysym Super_L = Multi_key Super_L'
  (this makes the Windows key into a Compose key).
  export LC_ALL=en_US.UTF-8
  export XMODIFIERS=@im=local

  Run wish; verify that [encoding system] is utf-8
  Press e.g., <Compose> <c> <comma>.  
  This should turn into ç (c-cedilla, \UE7).  Instead, it shows up as \UFFE7.

  I think I've narrowed this down to sometime between 8.4.12 and 8.4.13.  Problem appears to be in Tcl, not Tk.

  This looks like improper sign extension.


tkt_uuid: 220441ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 49. [grid]
priority: 2
foundin: obsolete: 8.0.4
resolution: Fixed
title: "grid .b ^" works, "grid .b ^ ^" fails
comment:
  OriginalBugID: 1386 Bug
  Version: 8.0.4
  SubmitDate: '1999-03-02'
  LastModified: '2000-01-20'
  Severity: SER
  Status: Released
  Submitter: pat
  ChangedBy: ericm
  OS: All
  FixedDate: '2000-01-20'
  FixedInVersion: 8.3


  Name:
  John Ellson

  ReproducibleScript:
  works as expected:

  grid [button .b11] [button .b12] [button .b13] -sticky ns
  grid [button .b22] ^

  fails:

  grid [button .b11] [button .b12] [button .b13] -sticky ns
  grid [button .b22] ^ ^




  ObservedBehavior:
  $ wish bug 
  Error in startup script: can't find slave to extend with "^".
      while executing
  "grid [button .b22] ^ ^"
      (file "bug" line 2)




  DesiredBehavior:
  Should be able to rowspan any number of columns




  This bug was due to the manner in which the gridder intrepreted consecutive ^'s.  Previously, ^ ^ was interpreted as meaning that there must be a 2-column widget above to extend, neglecting the case where there was actually 2 1-column widgets above.  Now, ^ ^ is interpreted as a possible width; the gridder will consume as many ^'s as there are columns in the widget, and leave the rest for the extension of other widgets.

  This is fixed in 8.3.

  - eric

  -- 01/20/2000 ericm


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: 225025ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 09. [listbox]
priority: 5 Medium
foundin: obsolete: 8.3.2
resolution: Fixed
title: Listbox doesn't scroll exactly like Text or Entry
comment:
  A Listbox, Textbox, and Entry packed in the same frame and bound to the same horizontal scrollbar will scroll slightly differently even when they include the same text.

  The included script will demonstrate this cosmetic problem. Execute the script and resize the window so the text goes off-screen; try scrolling the scrollbar and note that the text in the different components scrolls at different pixels.

  Textbox and Entry, in their calculations for scrolling, multiply the "xview moveto" fractional parameter by the width of the component (measured in characters) and round to the nearest character. Listbox, on the other hand, multiplies the fractional parameter by the width of the Listbox (measured in pixels) and rounds to the nearest pixel, but then _truncates_ to the nearest character (i.e. nearest xScrollUnit).

  If Listbox is changed to _round_ to the nearest character, it is a better analogue of the other components, in this situation, and offhand I can't think of a reason why it should truncate instead of rounding -- perhaps it is a bug.

  To round instead of truncating, insert the following line as line 2611 of tk8.3.2's generic/tkListbox.c:

  offset += listPtr->xScrollUnit / 2;

  The math still isn't perfect, because of the rounding that has already taken place on offset, but it's close. After the change, the script below should show the scrolling to be better synchronized.




  #!/bin/sh
  #\
  exec wish8.3 -f "$0" ${1+"$@"}

  # settings
  set str "this is a long string which will prove the example"
  set font {#courier-bold-r-*-*-12*}

  # create components
  entry .e -xscrollcommand {.s set} -background green -width 50 -font $font
  listbox .l -height 1 -xscrollcommand {.s set} -background blue -width 50 -font $font
  text .t -height 1 -xscrollcommand {.s set} -background white -width 50 -font $font -wrap none
  scrollbar .s -orient horizontal -command {bindxview {.e .l .t}}

  # insert text
  .e insert end $str
  .l insert end $str
  .t insert end $str

  # add components (same effect with pack or grid)
  grid .e -sticky ew
  grid .l -sticky ew
  grid .t -sticky ew
  grid .s -sticky ew
  grid columnconfigure . 0 -weight 1


  proc bindxview { components args } {
    puts "------------------\n$args\n.s get: [.s get]"
    foreach c $components {
      eval {$c xview} $args
      puts "$c xview: [$c xview]"
    }
  }


tkt_uuid: 605105ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 21. [panedwindow]
priority: 7 High
foundin: obsolete: 8.4.0
resolution: Duplicate
title: Panedwindow initially wrong size
comment:
  When a panedwindow is added to another panedwindow, 
  and the second is later filled with content, it is not seen 
  when the toplevel comes up, and has to be drawn wider 
  manually. 
  Workaround: First add contents of child panedwindow, 
  then add it.

  Seen on Windows 2000, Tclkit 8.4b1

  Problem example:
  panedwindow .p
  .p add [listbox .p.lb]
  .p add [panedwindow .p.2 -ori vert]
  .p.2 add [text .p.t]
  .p.2 add [canvas .p.c -bg beige]
  pack .p -fill both -expand 1

  Working counterexample:
  panedwindow .p
  .p add [listbox .p.lb]
  panedwindow .p.2 -ori vert
  .p.2 add [text .p.t]
  .p.2 add [canvas .p.c -bg beige]
  .p add .p.2
  pack .p -fill both -expa(nd 1

  (Richard Suchenwirth)


tkt_uuid: 3404541fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 88. Themed Tk
priority: 5 Medium
foundin: obsolete: 8.5.10
resolution: Fixed
title: Config option repeats
comment:
  In ttk::button and ttk::notebook -takefocus appears twice in the configuration options:

  % ttk::notebook .nb
  .nb
  % .nb configure
  {-takefocus takeFocus TakeFocus ttk::takefocus ttk::takefocus} {-width width Width 0 0} {-height height Height 0 0} {-padding padding Padding {} {}} {-takefocus takeFocus TakeFocus {} ttk::takefocus} {-cursor cursor Cursor {} {}} {-style style Style {} {}} {-class {} {} {} {}}

  % ttk::button .b
  .b
  % .b configure
  {-takefocus takeFocus TakeFocus ttk::takefocus ttk::takefocus} {-command command Command {} {}} {-default default Default normal normal} {-text text Text {} {}} {-textvariable textVariable Variable {} {}} {-underline underline Underline -1 -1} {-width width Width {} {}} {-image image Image {} {}} {-compound compound Compound none none} {-padding padding Pad {} {}} {-state state State normal normal} {-takefocus takeFocus TakeFocus {} ttk::takefocus} {-cursor cursor Cursor {} {}} {-style style Style {} {}} {-class {} {} {} {}}

  % info patch
  8.6b1.2


tkt_uuid: 946007ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: None
priority: 5 Medium
foundin: None
resolution: None
title: TkAqua: menu labels can't start with a "-"
comment:
  In TkAqua, menu labels that start with a dash charracter cause the 
  menu item to be seen as a seperator item.
  This occurs if the label is set during the menu entry addition, or 
  using an "entryconfigure -label" command. I assume this was 
  added as a convenience feature, but it seems to be unique to 
  TkAqua, and I couldn't find it documented anywhere. 

  I recommend TkAqua stick to cross-platform standards as much as 
  possible. i understand that the substantial ammount of re-coding 
  that is going on to make TkAqua introduces a temptation to add 
  "improvements", but these should be put into the core, not the 
  TkAqua.


tkt_uuid: 1821174fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 67. Unix Window Operations
priority: 8
foundin: obsolete: 8.5b3
resolution: None
title: RenderBadPicture (invalid Picture parameter)
comment:
  Playing with BWidget, I've discovered some kind of error. How to repeat:

  1. Take the BWidget template from http://wiki.tcl.tk/8289

  2. Before last line ("main") insert a line containing:   rename send {}

  3. When the demo has been run - choose "Exit". There will be an error message:

  #v+
    X Error of failed request:  RenderBadPicture (invalid Picture parameter)
      Major opcode of failed request:  153 (RENDER)
      Minor opcode of failed request:  7 (RenderFreePicture)
      Picture id in failed request: 0x1200080
      Serial number of failed request:  996
      Current serial number in output stream:  1017
  #v-

  The problem doesn't occur in 8.4.12.

  Debian Etch, Tcl/Tk 8.5b1, BWidget 1.7


tkt_uuid: 220313ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 1 Zero
foundin: obsolete: 8.2
resolution: Invalid
title: wm deiconify doesn't preserve stacking order of windows not directly involved
comment:
  OriginalBugID: 5977 Bug
  Version: 8.2
  SubmitDate: '2000-07-06'
  LastModified: '2000-07-20'
  Severity: SER
  Status: Closed
  Submitter: techsupp
  ChangedBy: ericm
  OS: Windows NT
  OSVersion: 4.0 SP4
  Machine: Compaq Armada M700
  ClosedDate: '2000-07-20'


  Name:
  Shaun Lowry

  Extensions:
  none needed

  Comments:
  I don't think this is standard for window managers on any platform

  ReproducibleScript:
  toplevel .first
  toplevel .second
  wm deiconify .second

  ObservedBehavior:
  .first goes behind . when .second is deiconified

  DesiredBehavior:
  .second should come to the top, the relative stacking order of all other windows should remain the same



  I am unable to reproduce this behavior with Windows NT4, with either Tcl 8.2.3 or 8.3.0.  You specified version 8.2, by which I assume you mean 8.2.0, which I don't have handy for testing.  It seems this problem was corrected by 8.2.3 in any case.

     Eric Melski                            The Other Tcl Guy
     ericm at ajubasolutions.com            Ajuba Solutions

  -- 07/20/2000 ericm


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: 780528ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 03. [*button] and [label]
priority: 5 Medium
foundin: None
resolution: Out of Date
title: radiobuttons without indicators
comment:
  I commonly use radiobuttons with the -indicatoron 
  option set to false. This produces a row of buttons 
  which truely look "old-fashion radio-like", with the 
  current button depressed and all the others popped-up.

  This works wonderfully on UNIX and Windows, but the 
  Mac OSX buttons look the same whether they are up or 
  down.

  Is there no way to change the -relief on a button 
  within Mac OSX?


tkt_uuid: 463234ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 03. [*button] and [label]
priority: 5 Medium
foundin: None
resolution: Out of Date
title: Fix 'Windows button height
comment:
  This patch makes text buttons on 'Windows the right height.  The 
  results are entirely empirical; I have no technical reference that leads 
  me to believe this is "correct" code.  However, on NT and W98, 
  creating a button with the correct font, gives a button whose height 
  matches native buttons.

  This patch was created with

      diff -patch ourlocalfile  mychangedfile >thefile.patch

  so it may or may not be quite the right format.  It includes changes to 
  tkWinButton.c and tkWinDefault.h.


tkt_uuid: 220135ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 1 Zero
foundin: obsolete: 8.0p2
resolution: Invalid
title: documentation of combobox.tcl
comment:
  OriginalBugID: 1408 RFE
  Version: 8.0p2
  SubmitDate: '1999-03-02'
  LastModified: '1999-08-06'
  Severity: LOW
  Status: Closed
  Submitter: pat
  ChangedBy: hobbs
  OS: SunOS
  OSVersion: 4.1.3
  Machine: Sparc
  ClosedDate: '1999-08-06'


  Name:
  Grigaut Michel

  Extensions:
  7.4    8.0.2

  DesiredBehavior:
  Now I'm here, I'm almost sure I'm not at the right place. Please forgive me but I could not know before seeing thal all was (almost) for TclPro I'm not using.

  My request is :
  Is it possible to have two or three lines of example showing how to use the combobox.tcl package. If not, just forget it. Many thanks



  The combobox.tcl package is not a Scriptics related package.
  This could be the one from Donal Fellows or Bryan Oakley. 
  -- 08/06/1999 hobbs


tkt_uuid: 220509ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 63. Tk_Win Functions
priority: 2
foundin: obsolete: 8.1b3
resolution: Fixed
title: Docs missing for Tk_IsContainer API
comment:
  OriginalBugID: 1871 Bug
  Version: 8.1b3
  SubmitDate: '1999-04-16'
  LastModified: '2000-01-18'
  Severity: MED
  Status: Released
  Submitter: surles
  ChangedBy: hobbs
  OS: All
  OSVersion: NA
  Machine: NA
  FixedDate: '2000-01-18'
  FixedInVersion: 8.3


  as above

  added to WindowId.3 for 8.3.0. 
  -- 01/18/2000 hobbs


tkt_uuid: 220287ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 07. [entry]
priority: 1 Zero
foundin: obsolete: 8.3
resolution: Invalid
title: The Entry widget w/ char limit.
comment:
  OriginalBugID: 4406 RFE
  Version: 8.3
  SubmitDate: '2000-03-20'
  LastModified: '2000-03-23'
  Severity: LOW
  Status: Closed
  Submitter: techsupp
  ChangedBy: hobbs
  OS: All
  OSVersion: not OS version/type specific
  ClosedDate: '2000-03-23'


  Name:

  Huver Hu


  Comments:

  The patch addes "-maxchars N" config option to the Entry widget.

      The the C code merely deals with proper char counts in Insert and

      SetValue.

      Please note I have NOT tested with non-English language (it is "chars",

      not

      "bytes").


  DesiredBehavior:

  Although it now has "validate" hooks, it is desireable to specify config

  option that limits the number of chars an entry is to take.  Doing this in

  C code doesn't take that much, but saves a lot of scripts (and potential

  timing problems).


  Patch:

  *** tkUnixDefault.h.orig        Tue Nov 16 20:40:55 1999

  --- tkUnixDefault.h     Mon Mar 20 00:11:20 2000

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

  *** 159,164 ****

  --- 159,165 ----

    #define DEF_ENTRY_TAKE_FOCUS          (char *) NULL

    #define DEF_ENTRY_TEXT_VARIABLE               ""

    #define DEF_ENTRY_WIDTH                       "20"

  + #define DEF_ENTRY_MAXCHARS            "0"


    /*

     * Defaults for frames:


  *** tkEntry.c.orig      Tue Mar 14 23:46:35 2000

  --- tkEntry.c   Mon Mar 20 00:27:49 2000

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

  *** 114,119 ****

  --- 114,122 ----

                                   * scripts.  Malloc'ed, but may be NULL. */

        int prefWidth;            /* Desired width of window, measured in

                                   * average characters. */

  +     int maxChars;             /* -maxchars: Max number of chars allowed,

  +                                * excluding terminating null.  Zero means

  +                                * no limit. */

        char *scrollCmd;          /* Command prefix for communicating with

                                   * scrollbar(s).  Malloc'ed.  NULL means

                                   * no command to issue. */

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

  *** 308,313 ****

  --- 311,318 ----

    #endif /* ENTRY_VALIDATE */

        {TK_OPTION_JUSTIFY, "-justify", "justify", "Justify",

          DEF_ENTRY_JUSTIFY, -1, Tk_Offset(Entry, justify), 0, 0, 0},

  +     {TK_OPTION_INT, "-maxchars", "maxchars", "MaxChars",

  +       DEF_ENTRY_MAXCHARS, -1, Tk_Offset(Entry, maxChars), 0, 0, 0},

        {TK_OPTION_RELIEF, "-relief", "relief", "Relief",

          DEF_ENTRY_RELIEF, -1, Tk_Offset(Entry, relief), 

            0, 0, 0},

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

  *** 1686,1705 ****

                                   * string). */

    {

        int byteIndex, byteCount, oldChars, charsAdded, newByteCount;

        char *new, *string;


  -     string = entryPtr->string;

  -     byteIndex = Tcl_UtfAtIndex(string, index) - string;

        byteCount = strlen(value);

        if (byteCount == 0) {

          return;

        }


        newByteCount = entryPtr->numBytes + byteCount + 1;

        new = (char *) ckalloc((unsigned) newByteCount);

  !     memcpy(new, string, (size_t) byteIndex);

        strcpy(new + byteIndex, value);

        strcpy(new + byteIndex + byteCount, string + byteIndex);


    #ifdef ENTRY_VALIDATE

        if ((entryPtr->validate == VALIDATE_KEY ||

  --- 1691,1728 ----

                                   * string). */

    {

        int byteIndex, byteCount, oldChars, charsAdded, newByteCount;

  +     int nChars;

        char *new, *string;

        byteCount = strlen(value);

        if (byteCount == 0) {

          return;

        }


  +     /* check maxchars limit */

  +     if (entryPtr->maxChars > 0) {

  +       /* ignore appending to after chars limit. */

  +       if (index >= entryPtr->maxChars) return;

  +     }

  +     string = entryPtr->string;

  +     byteIndex = Tcl_UtfAtIndex(string, index) - string;

  + 

        newByteCount = entryPtr->numBytes + byteCount + 1;

        new = (char *) ckalloc((unsigned) newByteCount);

  !     if (byteIndex > 0) {

  !       memcpy(new, string, (size_t) byteIndex);

  !     }

        strcpy(new + byteIndex, value);

        strcpy(new + byteIndex + byteCount, string + byteIndex);

  +     nChars = Tcl_NumUtfChars(new, -1);

  + 

  +     if (entryPtr->maxChars > 0  &&  nChars > entryPtr->maxChars) {

  +       value = new + byteIndex;

  +       byteIndex = Tcl_UtfAtIndex(new, entryPtr->maxChars) - new;

  +       new[byteIndex] = '\0';

  +       nChars = entryPtr->maxChars;

  +       byteCount = strlen(new);

  +     }


    #ifdef ENTRY_VALIDATE

        if ((entryPtr->validate == VALIDATE_KEY ||

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

  *** 1725,1733 ****

         */


        oldChars = entryPtr->numChars;

  !     entryPtr->numChars = Tcl_NumUtfChars(new, -1);

        charsAdded = entryPtr->numChars - oldChars;

  !     entryPtr->numBytes += byteCount;


        if (entryPtr->displayString == string) {

          entryPtr->displayString = new;

  --- 1748,1756 ----

         */


        oldChars = entryPtr->numChars;

  !     entryPtr->numChars = nChars /*Tcl_NumUtfChars(new, -1)*/;

        charsAdded = entryPtr->numChars - oldChars;

  !     entryPtr->numBytes /*+*/= byteCount;


        if (entryPtr->displayString == string) {

          entryPtr->displayString = new;

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

  *** 1962,1974 ****

        char *value;              /* New text to display in entry. */

    {

        char *oldSource;

  ! #ifdef ENTRY_VALIDATE

  !     int code;


        if (strcmp(value, entryPtr->string) == 0) {

          return;

        }


        if (entryPtr->flags & VALIDATE_VAR) {

          entryPtr->flags |= VALIDATE_ABORT;

        } else {

  --- 1985,2015 ----

        char *value;              /* New text to display in entry. */

    {

        char *oldSource;

  !     char *new = NULL;

  !     int  code, nChars, byteCount;


  +     byteCount = strlen(value);

  +     if (byteCount == 0) {

  +       return;

  +     }

        if (strcmp(value, entryPtr->string) == 0) {

          return;

        }


  +     /* check maxchars limit */

  +     nChars = Tcl_NumUtfChars(value, -1);

  +     if (entryPtr->maxChars > 0) {

  +       if (nChars > entryPtr->maxChars) {

  +         nChars = entryPtr->maxChars;

  +         byteCount = Tcl_UtfAtIndex(value, nChars) - value;

  +         new = (char *) ckalloc((unsigned) (byteCount + 1));

  +         memcpy (new, value, (size_t) byteCount);

  +         new[byteCount] = '\0';

  +         value = new;

  +       }

  +     }

  + 

  + #ifdef ENTRY_VALIDATE

        if (entryPtr->flags & VALIDATE_VAR) {

          entryPtr->flags |= VALIDATE_ABORT;

        } else {

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

  *** 1982,1987 ****

  --- 2023,2029 ----

           */

          if (entryPtr->flags & VALIDATE_ABORT) {

              entryPtr->flags &= ~VALIDATE_ABORT;

  +           if (new != NULL) ckfree(new);

              return;

          }

        }

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

  *** 1990,2000 ****

        oldSource = entryPtr->string;


        ckfree(entryPtr->string);

  !     entryPtr->numBytes = strlen(value);

  !     entryPtr->numChars = Tcl_NumUtfChars(value, entryPtr->numBytes);

        entryPtr->string =

              (char *) ckalloc((unsigned) (entryPtr->numBytes + 1));

        strcpy(entryPtr->string, value);


        if (entryPtr->displayString == oldSource) {

          entryPtr->displayString = entryPtr->string;

  --- 2032,2043 ----

        oldSource = entryPtr->string;


        ckfree(entryPtr->string);

  !     entryPtr->numBytes = byteCount /*strlen(value)*/;

  !     entryPtr->numChars = nChars /*Tcl_NumUtfChars(value, entryPtr->numBytes)*/;

        entryPtr->string =

              (char *) ckalloc((unsigned) (entryPtr->numBytes + 1));

        strcpy(entryPtr->string, value);

  +     if (new != NULL) free (new);


        if (entryPtr->displayString == oldSource) {

          entryPtr->displayString = entryPtr->string;


  PatchFiles:

  unix/tkUnixDefault.h

      generic/tkEntry.c




  We're passing on this because it's essentially equivalent to:

  entry .e -validate key -vcmd {expr {[string length %P] < $maxchars}}

  and doesn't otherwise disturb validation.  It also leaves a bit
  confusing the question of why not take as many chars as possible,
  and just cutting off some when a large paste is done.  Another
  reason why this is best left at the Tcl level. 
  -- 03/23/2000 hobbs


tkt_uuid: 2904492fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 03. [*button] and [label]
priority: 5 Medium
foundin: obsolete: 8.5.8
resolution: None
title: CheckButton Errors
comment:
  in library/button.tcl two problems came in with 8.5.8:

  both in ::tk::CheckEnter :

  1.:  according to documentation -selectcolor might be "". This occurs for example in the tablelist-extension.
  while computing the color the empty string leads to an runtime error.
  we used the background-color if selectcolor is not set - this works for us

  2.  "set ::[$w cget -variable]" does not work with itcl-vars which were set to -variable using [scope]
    we replaced ":set :[$w cget -variable]" with "[namespace inscope :: set [$w cget -variable]]" which works for all cases

  the changes in CheckEnter:
  -----------------------
  # Compute what the "selected and active" color should be.

  if {![$w cget -indicatoron]} {
      set selcol [$w cget -selectcolor]
      if { $selcol eq "" } {
  set selcol [$w cget -background]
      }

      set Priv($w,selectcolor) $selcol
      lassign [winfo rgb $w $selcol]      r1 g1 b1
      lassign [winfo rgb $w [$w cget -activebackground]] r2 g2 b2
      set Priv($w,aselectcolor) \
  [format "#%04x%04x%04x" [expr {($r1+$r2)/2}] \
       [expr {($g1+$g2)/2}] [expr {($b1+$b2)/2}]]

      if {[namespace inscope :: set [$w cget -variable]] eq [$w cget -onvalue]} {
  $w configure -selectcolor $Priv($w,aselectcolor)
      }
  }


tkt_uuid: 1882495fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 99. Other
priority: 5 Medium
foundin: obsolete: 8.5.0
resolution: Fixed
title: Undocumented "standard" options
comment:
  The following "standard" options are undocumented:

  canvas.n: -state
  listbox.n: -activestyle
  listbox.n: -height
  listbox.n: -state
  listbox.n: -width
  message.n: -width
  panedwindow.n: -height
  panedwindow.n: -width


tkt_uuid: 2815625fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 81. Portability
priority: 5 Medium
foundin: obsolete: 8.6b1
resolution: Fixed
title: Problem in tkInt.h with "namespace"
comment:
  When Tk is included in a C++ application, the C++ compiler throws an error in tkInt.h, line 1268:

  MODULE_SCOPE Tcl_Command TkMakeEnsemble(Tcl_Interp *interp,
      const char *namespace, const char *name,
      ClientData clientData, const TkEnsemble *map);

  as namespace is a reserved C++ keyword.


tkt_uuid: 219979ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 99. Other
priority: 1 Zero
foundin: obsolete: 8.1
resolution: Duplicate
title: make test : 148 tests failed on linux - window geometry differences
comment:
  OriginalBugID: 1970 Bug
  Version: 8.1
  SubmitDate: '1999-05-04'
  LastModified: '1999-11-23'
  Severity: LOW
  Status: Closed
  Submitter: pat
  ChangedBy: jenn
  RelatedBugIDs: 3555
  OS: Linux-Red Hat
  OSVersion: 5.2
  Machine: Other
  ClosedDate: '1999-11-23'


  Name:
  Vladimir Kondratiev

  Comments:
  There is 70 Kb output 'make test' produces. It provides all error
      messages.
      Could you please tell me how to send it? I consider it's impossible to
      put this file's contents in one of bug report form's fields.

  ReproducibleScript:
  mkdir /tmp/3;cd /tmp/3; tar xzf /tmp/tcl8.1.tar.gz; tar xzf
      /tmp/tk8.1.tar.gz
      cd tcl8.1/unix && ./configure && make && make test
      cd tk8.1/unix && ./configure && make && make test
      
      tcl's 'make test' reports no errors, tk's 'make test' reports 148 failed
      tests
      
      I included 2 examples. 1-st (as most of others) provide just incorrect
      numbers regarding to window geometry, however 2-nd one is, I guess, more
      serious.

  ObservedBehavior:
  Just some of error messages:
      ==== 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:
      
        
      115x348 15x20
      
        
      ---- Result should have been:
      
        
      115x328 15x20
      
        
      ==== listbox-4.6 FAILED
      
        
      
      ==== unixEmbed-6.2 EmbedGeometryRequest procedure, window changes size
      FAILED
          
      ==== Contents of test case:
      
        
      
      
        
          foreach w [winfo child .] {
      
        
              catch {destroy $w}
      
        
          }
      
        
          frame .f1 -container 1 -width 200 -height 50
      
        
          place .f1 -width 200 -height 200
      
        
          dobg "set w1 [winfo id .f1]"
      
        
          dobg {
      
        
              eval destroy [winfo child .]
      
        
              toplevel .t1 -use $w1
      
        
          }
      
        
          after 300 {set x done}
      
        
          vwait x
      
        
          dobg {
      
        
              bind .t1 <Configure> {lappend x {configure .t1 %w %h}}
      
        
              set x {}
      
        
              .t1 configure -width 300 -height 120
      
        
              update
      
        
              list $x [winfo geom .t1]
      
        
          }
      
        
      
      
        
      ---- Result was:
      
        
      bad window path name ".t1"
      
        
      ---- Result should have been:
      
        
      {{configure .t1 200 200}} 200x200+0+0
      
        
      ==== unixEmbed-6.2 FAILED
      
        
      
      Tests ended at Sun May 02 10:06:06 IDT 1999
      
        
      all.tcl:        Total   6341    Passed  5800    Skipped 393     Failed
      148
         
      Sourced 83 Test Files.
      
        
      Files with failing tests: listbox.test text.test textDisp.test
      textWind.test unixEmbed.test
                  
      Number of tests skipped for each constraint:
      
        
              2       altDisplay
      
        
              2       emptyTest
      
        
              44      macOnly
      
        
              11      macOrPc
      
        
              1       nonPOrtable
      
        
              98      nonPortable
      
        
              229     pcOnly
      
        
              4       pseudocolor
      
        
              1       secureServer
      
        
              1       userInteraction


tkt_uuid: 3053347fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 9 Immediate
foundin: obsolete: 8.5.8
resolution: Fixed
title: Invalid read in tkText.c:DumpLine
comment:
  I had a crash across platforms in text.test and running under valgrind it indicates:

  ==9088== Invalid read of size 4
  ==9088==    at 0x4A7803: DumpLine (tkText.c:4771)
  ==9088==    by 0x4A6E54: TextDumpCmd (tkText.c:4544)
  ==9088==    by 0x4A1CE1: TextWidgetObjCmd (tkText.c:1231)
  ==9088==    by 0x522C28: TclEvalObjvInternal (tclBasic.c:3689)
  ==9088==    by 0x588D53: TclExecuteByteCode (tclExecute.c:2419)
  ==9088==    by 0x586741: TclCompEvalObj (tclExecute.c:1542)
  ==9088==    by 0x52513E: TclEvalObjEx (tclBasic.c:5264)
  ==9088==    by 0x5E9D54: Tcl_UplevelObjCmd (tclProc.c:948)
  ==9088==  Address 0x7df3ad8 is 72 bytes inside a block of size 101 free'd
  ==9088==    at 0x4C23DD8: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==9088==    by 0x62D99F: TclpFree (tclAlloc.c:731)
  ==9088==    by 0x52BBB3: Tcl_DbCkfree (tclCkalloc.c:639)
  ==9088==    by 0x52BD88: Tcl_Free (tclCkalloc.c:765)
  ==9088==    by 0x4AE9AA: CharSplitProc (tkTextBTree.c:4559)
  ==9088==    by 0x4AAECC: SplitSeg (tkTextBTree.c:1210)
  ==9088==    by 0x4AC0AB: TkBTreeTag (tkTextBTree.c:2211)
  ==9088==    by 0x4BECCC: TkTextTagCmd (tkTextTag.c:203)
  ==9088==

  It appears that segPtr is no longer valid there, especially since we are in the lineChanged condition.  Donal was the last in this area of code, though it has been a while.

  This may also be in head, just was testing 8.5.9 and found this.


tkt_uuid: 459835ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 35. [tk_dialog]
priority: 5 Medium
foundin: obsolete: 8.4a3
resolution: Duplicate
title: tk_dialog doesn't respond to button pres
comment:
   tk_dialog .t {Save} {Do you want to save?} {} 0 {Yes}
  {No} 

  When I do this with tk8.4a3, pressing Yes or No doesn't
  seem
  to do anything.  I'm using a SuSE 6.3 KDE 2.0 (mostly
  SuSE 6.4
  compliant) with XFree86 4.0.x.

  Works fine with some version of 8.3.


tkt_uuid: 1858063fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 78. Other Demos
priority: 5 Medium
foundin: None
resolution: Fixed
title: Goldberg demo fails at second call
comment:
  wish8.5 widget

  Start the new goldberg demo, the 4. entry under "Animation".
  Watch the demo, it's funny.
  Close the window.
  Try to start it again: ==> tcl error:

  can't set "S(speed)": invalid command name ".goldberg.start"


tkt_uuid: 220660ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: None
priority: 2
foundin: None
resolution: Fixed
title: Dash-patch functions missing from Stub table
comment:
  OriginalBugID: 4062 Bug
  Version: 8.3b2
  SubmitDate: '2000-01-24'
  LastModified: '2000-02-08'
  Severity: MED
  Status: Released
  Submitter: techsupp
  ChangedBy: hobbs
  OS: All
  FixedDate: '2000-02-08'
  FixedInVersion: 8.3


  Name:

  Jan Nijtmans


  Comments:

  "make genstubs" has to be run in order to make the necessary adations to tkDecls.h as well. Otherwise,

  this patch has no effect.


  ReproducibleScript:

  Up to now, there are no extensions using the functions added by the Dash-patch. Therefore it was

  not crucial to assign stub entries to them, and the declarations where just put in tk.h. However,

  the proper thing to do is move those declarions to tkDecls.h. This patch does exactly that.


  Patch:

  *** generic/tk.decls.origSun Jan 16 20:19:15 2000

  --- generic/tk.declsSun Jan 16 20:39:25 2000

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

  *** 1052,1057 ****

  --- 1052,1126 ----

    #    VOID *Tk_GetCanvasVisitor(Tcl_Interp *interp, CONST char *name)

    #}


  + declare 220 generic {

  +     intTk_GetDash(Tcl_Interp *interp, CONST char *value, Tk_Dash *dash)

  + }

  + declare 221 generic {

  +     void Tk_CreateOutline(Tk_Outline *outline)

  + }

  + declare 222 generic {

  +     void Tk_DeleteOutline(Display *display, Tk_Outline *outline)

  + }

  + declare 223 generic {

  +     int Tk_ConfigOutlineGC(XGCValues *gcValues, Tk_Canvas canvas,

  +     Tk_Item *item, Tk_Outline *outline)

  + }

  + declare 224 generic {

  +     int Tk_ChangeOutlineGC(Tk_Canvas canvas, Tk_Item *item,

  +     Tk_Outline *outline)

  + }

  + declare 225 generic {

  +     int Tk_ResetOutlineGC(Tk_Canvas canvas, Tk_Item *item,

  +     Tk_Outline *outline)

  + }

  + declare 226 generic {

  +     int Tk_CanvasPsOutline(Tk_Canvas canvas,

  +     Tk_Item *item, Tk_Outline *outline)

  + }

  + declare 227 generic {

  +     void Tk_SetTSOrigin(Tk_Window tkwin, GC gc, int x, int y)

  + }

  + declare 228 generic {

  +     int Tk_CanvasGetCoordFromObj(Tcl_Interp *interp, Tk_Canvas canvas,

  +     Tcl_Obj *obj, double *doublePtr)

  + }

  + declare 229 generic {

  +     void Tk_CanvasSetOffset(Tk_Canvas canvas, GC gc, Tk_TSOffset *offset)

  + }

  + declare 230 generic {

  +     void Tk_DitherPhoto(Tk_PhotoHandle handle, int x, int y, int width,

  +     int height)

  + }

  + declare 231 generic {

  +     int Tk_PostscriptBitmap(Tcl_Interp *interp, Tk_Window tkwin,

  +     Tk_PostscriptInfo psInfo, Pixmap bitmap, int startX,

  +     int startY, int width, int height)

  + }

  + declare 232 generic {

  +     int Tk_PostscriptColor(Tcl_Interp *interp, Tk_PostscriptInfo psInfo,

  +     XColor *colorPtr)

  + }

  + declare 233 generic {

  +     int Tk_PostscriptFont(Tcl_Interp *interp, Tk_PostscriptInfo psInfo,

  +     Tk_Font font)

  + }

  + declare 234 generic {

  +     int Tk_PostscriptImage(Tk_Image image, Tcl_Interp *interp,

  +     Tk_Window tkwin, Tk_PostscriptInfo psinfo, int x, int y,

  +     int width, int height, int prepass)

  + }

  + declare 235 generic {

  +     void Tk_PostscriptPath(Tcl_Interp *interp, Tk_PostscriptInfo psInfo,

  +     double *coordPtr, int numPoints)

  + }

  + declare 236 generic {

  +     int Tk_PostscriptStipple(Tcl_Interp *interp, Tk_Window tkwin,

  +     Tk_PostscriptInfo psInfo, Pixmap bitmap)

  + }

  + declare 237 generic {

  +     double Tk_PostscriptY(double y, Tk_PostscriptInfo psInfo)

  + }

  + 

    # Define the platform specific public Tk interface.  These functions are

    # only available on the designated platform.


  *** generic/tk.h.origSun Jan 16 20:19:28 2000

  --- generic/tk.hSun Jan 16 20:35:23 2000

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

  *** 1065,1091 ****

        Pixmap disabledStipple;/* Outline Stipple pattern if state is disabled. */

    } Tk_Outline;


  - /*

  -  * Some functions handy for Dashing and Outlines (in tkCanvUtil.c).

  -  */

  - 

  - EXTERN intTk_GetDash _ANSI_ARGS_((Tcl_Interp *interp,

  -     CONST char *value, Tk_Dash *dash));

  - EXTERN voidTk_CreateOutline _ANSI_ARGS_((Tk_Outline *outline));

  - EXTERN voidTk_DeleteOutline _ANSI_ARGS_((Display *display,

  -     Tk_Outline *outline));

  - EXTERN intTk_ConfigOutlineGC _ANSI_ARGS_((XGCValues *gcValues,

  -     Tk_Canvas canvas ,Tk_Item *item,

  -     Tk_Outline *outline));

  - EXTERN intTk_ChangeOutlineGC _ANSI_ARGS_((Tk_Canvas canvas,

  -     Tk_Item *item, Tk_Outline *outline));

  - EXTERN intTk_ResetOutlineGC _ANSI_ARGS_((Tk_Canvas canvas,

  -     Tk_Item *item, Tk_Outline *outline));

  - EXTERN intTk_CanvasPsOutline _ANSI_ARGS_((Tk_Canvas canvas,

  -     Tk_Item *item, Tk_Outline *outline));

  - EXTERN voidTk_SetTSOrigin _ANSI_ARGS_((Tk_Window tkwin, GC gc, int x,

  -     int y));

  - 

    

    /*

     *--------------------------------------------------------------

  --- 1065,1070 ----

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

  *** 1360,1403 ****

    typedef int (Tk_SelectionProc) _ANSI_ARGS_((ClientData clientData,

    int offset, char *buffer, int maxBytes));

    

  - /*

  -  *--------------------------------------------------------------

  -  *

  -  * Exported procedures introduced by dash-patch.

  -  *

  -  *--------------------------------------------------------------

  -  */

  - 

  - EXTERN intTk_CanvasGetCoordFromObj _ANSI_ARGS_((

  -     Tcl_Interp *interp, Tk_Canvas canvas, Tcl_Obj *obj,

  -     double *doublePtr));

  - EXTERN voidTk_CanvasSetOffset _ANSI_ARGS_((

  -     Tk_Canvas canvas, GC gc, Tk_TSOffset *offset));

  - EXTERN voidTk_CreatePhotoOption _ANSI_ARGS_((Tcl_Interp *interp,

  -     CONST char *name, Tcl_ObjCmdProc *proc));

  - EXTERN voidTk_DitherPhoto _ANSI_ARGS_((Tk_PhotoHandle handle,

  -     int x, int y, int width, int height));

  - EXTERN intTk_PostscriptBitmap _ANSI_ARGS_((Tcl_Interp *interp,

  -     Tk_Window tkwin, Tk_PostscriptInfo psInfo,

  -     Pixmap bitmap, int startX, int startY,

  -     int width, int height));

  - EXTERN intTk_PostscriptColor _ANSI_ARGS_((Tcl_Interp *interp,

  -     Tk_PostscriptInfo psInfo, XColor *colorPtr));

  - EXTERN intTk_PostscriptFont _ANSI_ARGS_((Tcl_Interp *interp,

  -     Tk_PostscriptInfo psInfo, Tk_Font font));

  - EXTERN intTk_PostscriptImage _ANSI_ARGS_((Tk_Image image,

  -     Tcl_Interp *interp, Tk_Window tkwin,

  -     Tk_PostscriptInfo psinfo, int x, int y,

  -     int width, int height, int prepass));

  - EXTERN voidTk_PostscriptPath _ANSI_ARGS_((Tcl_Interp *interp,

  -     Tk_PostscriptInfo psInfo, double *coordPtr,

  -     int numPoints));

  - EXTERN intTk_PostscriptStipple _ANSI_ARGS_((Tcl_Interp *interp,

  -     Tk_Window tkwin, Tk_PostscriptInfo psInfo,

  -     Pixmap bitmap));

  - EXTERN doubleTk_PostscriptY _ANSI_ARGS_((double y,

  -     Tk_PostscriptInfo psInfo));

  - 

    /*

     *--------------------------------------------------------------

     *

  --- 1339,1344 ----


  PatchFiles:

  tk.decls tk.h




  Patch applied for 8.3.0. 
  -- 02/08/2000 hobbs


tkt_uuid: 3021557fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 7 High
foundin: obsolete: 8.6b2
resolution: None
title: Moving the cursor in elided text freezes Tk
comment:
  wish freezes when moving the cursor in a text widget containing elided text.

  To reproduce, just paste the following in wish:

  package require Tk
  info patchlevel  ;# spits 8.5.7 for me (ActiveState version)
  text .t
  pack .t
  .t insert end "Fifteen men on the Dead Man's Chest\n"
  .t insert end "Yo-ho-ho, and a bottle of rum!\n"
  .t insert end "Drink and the devil had done for the rest \n"
  .t insert end "Yo-ho-ho, and a bottle of rum!\n"
  .t insert end "\nFifteen men on the Dead Man's Chest\n"
  .t insert end "a poem by Robert Louis Stevenson\n"
  .t tag add hidden 2.10 3.15
  .t tag configure hidden -elide true
  # now :
  #  1. click in the text widget to place the cursor just
  #     before the letter D of the word "Dead" (1st line)
  #  2. press the down arrow once on the keyboard
  #  3. press the up arrow once on the keyboard
  #
  # ==> wish is frozen with 100% CPU

  This happens for me on Win Vista 64 bits OS with the ActiveState binary distribution of Tcl/Tk version 8.5.7 (32 bits).

  It also happens under ActiveState's 8.6 beta 3, windows 7 64 bit.


tkt_uuid: 220517ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 99. Other
priority: 2
foundin: obsolete: 8.1
resolution: Fixed
title: tk 8.1 test suite failures
comment:
  OriginalBugID: 1977 Bug
  Version: 8.1
  SubmitDate: '1999-05-04'
  LastModified: '1999-08-14'
  Severity: MED
  Status: Released
  Submitter: pat
  ChangedBy: hobbs
  OS: Solaris
  OSVersion: 2.6 and CDE
  Machine: Other
  FixedDate: '1999-08-14'
  FixedInVersion: 8.2


  Name:
  Larry W. Virden

  Extensions:
  none

  CustomShell:
  none

  ReproducibleScript:
  configure
      make all test

  ObservedBehavior:
  The following test suite tests failed:
      
      clipboard.test
      
      ==== clipboard-6.2 Tk_ClipboardAppend procedure FAILED
      ==== Contents of test case:
      
          setupbg
          clipboard clear
          clipboard append -f INTEGER -t TEST "16"
          set result [dobg {selection get -s CLIPBOARD TEST}]
          cleanupbg
          set result
      
      ---- Result was:
      CLIPBOARD selection doesn't exist or form "TEST" not defined
      ---- Result should have been:
      0x10
      ==== clipboard-6.2 FAILED
      
      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:
      .t {} {}
      ==== focus-5.1 FAILED
      
      focusTcl.test
      font.test
      
      ==== font-46.4 TkFontGetAliasList: match FAILED
      ==== Contents of test case:
      
          font actual {{times new roman} 10} -family
      
      ---- Result was:
      times new roman
      ---- Result should have been:
      times
      ==== font-46.4 FAILED
      
      unixFont.test
      
      ==== unixfont-2.2 TkpGetFontFromAttributes procedure: Times relatives
      FAILED
      ==== Contents of test case:
      
          set x {}
          lappend x [lindex [font actual {-family "Times New Roman"}] 1]
          lappend x [lindex [font actual {-family "New York"}] 1]
          lappend x [lindex [font actual {-family "Times"}] 1]
      
      ---- Result was:
      {times new roman} times times
      ---- Result should have been:
      times times times
      ==== unixfont-2.2 FAILED
      
      ==== unixfont-2.3 TkpGetFontFromAttributes procedure: Courier relatives
      FAILED
      ==== Contents of test case:
      
          set x {}
          lappend x [lindex [font actual {-family "Courier New"}] 1]
          lappend x [lindex [font actual {-family "Monaco"}] 1]
          lappend x [lindex [font actual {-family "Courier"}] 1]
      
      ---- Result was:
      {courier new} courier courier
      ---- Result should have been:
      courier courier courier
      ==== unixfont-2.3 FAILED
      
      ==== unixfont-2.4 TkpGetFontFromAttributes procedure: Helvetica
      relatives FAILED
      ==== Contents of test case:
      
          set x {}
          lappend x [lindex [font actual {-family "Arial"}] 1]
          lappend x [lindex [font actual {-family "Geneva"}] 1]
          lappend x [lindex [font actual {-family "Helvetica"}] 1]
      ---- Result was:
      arial helvetica helvetica
      ---- Result should have been:
      helvetica helvetica helvetica
      ==== unixfont-2.4 FAILED
      
      Tests ended at Mon May 03 11:19:35 EDT 1999
      all.tcl:        Total   6539    Passed  6112    Skipped 421     Failed
      6
      Sourced 83 Test Files.
      Files with failing tests: clipboard.test focus.test font.test
      unixFont.test
      Number of tests skipped for each constraint:
              2       altDisplay
              2       emptyTest
              44      macOnly
              11      macOrPc
              1       nonPOrtable
              131     nonPortable
              229     pcOnly
              1       userInteraction

  DesiredBehavior:
  All test suite tests pass.



  None of the above errors occur for us when running a make test
  on Solaris 5.7 with 8.2.0. 
  -- 08/14/1999 hobbs


tkt_uuid: 802296ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 18. [text]
priority: 5 Medium
foundin: None
resolution: None
title: transparent backgrounds
comment:
  Hi,
  I'm a developper in the aMSN's project (amsn.sf.net) and we would 
  like a new feature but it looks pretty hard to add.. it's about skinning, 
  we want to create skins, which means we need two new things, first a 
  [wm border borderless] command that would tell the window manager 
  to disable border (so we can create our own title bar and close icons 
  with our own images) .. but that's not really *important* ...
  The second request is more important.. we would like to make a 
  background image for text widgets (chat windows or for the main 
  contact list window) I thought about doing something like pack $w.
  text -in $w.label (with a label -image ... ) but I noticed that the image 
  disappears behind the text widget... so the text widget background is 
  solid... what would help us alot, is having a transparent background... 
  only the text and windows/images added in the text widget would be 
  solid... that could be a new option (-backgroundimage) or with 
  -background transparent ... or maybe juste set a color that would be 
  transparent like -background #-1-1-1 ....
  anyways I would like your advice on this, are you going to add this 
  soon, or maybe there is some other way to do what I am requesting..
  .

  KaKaRoTo


tkt_uuid: 3425285fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 88. Themed Tk
priority: 5 Medium
foundin: obsolete: 8.5.10
resolution: Fixed
title: ttk::scale "-variable" core dump
comment:
  If I use "ttk::scale -variable VAR" with wish 8.5.10, i have core dumps when the toplevel is destroyed and then created again in *some* manners.

  Sorry for not providing a succinct test case, but it was hard tracking this down.
  To see this bug:

  svn co https://scidvspc.svn.sourceforge.net/svnroot/scidvspc -r 851
  cd scidvspc
  configure TCL_VERSION="8.5"
  make install
  scid

  Press <Control-l> (lowercase L) three times, leaving the gamelist open.
  (If it hasn't already crashed) Try to move Y scrollbar (actually a ttk::scale).
  Program crashes with a gdb backtrace to ScaleVariableChanged.
  Note, removing "-variable glstart" from the ttk::scale declaration (source file: tcl/windows/gamelist.tcl)
  averts program crash.

  Revision 852 has a workaround for 8.5.10 which uses tk::scale instead.
  I have not seen this bug before 8.5.10.
  A friend tells me that early version of 8.6 also had buggy ttk::scale, but 8.6b2 seems fine in my testing.

  Cheers.


tkt_uuid: 709970ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 63. Tk_Win Functions
priority: 8
foundin: obsolete: 8.4.2
resolution: None
title: problems when make test
comment:
  E-mail : morel@ig-edu.univ-paris13.fr

  OS : Solaris8  host : sparc Ultra5
  tcl : 8.4.2
  tk  : 8.4.2

  bind.test

  ==== bind-22.10 HandleEventGenerate FAILED
  ==== Contents of test case:

      setup
      bind .b.f <Key> {set x "%s %K"}
      set x {}
      event gen .b.f <Control-Key-1>
      set x

  ---- Result was:
  5 1
  ---- Result should have been (exact matching):
  4 1
  ==== bind-22.10 FAILED

  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


  ==== focus-6.2 miscellaneous - embedded application in
  different process FAILED
  ==== Contents of test case:

      eval interp delete [interp slaves]
      catch {destroy .t}
      setupbg
      toplevel .t
      wm geometry .t +0+0
      frame .t.f1 -container 1
      frame .t.f2
      pack .t.f1 .t.f2
      entry .t.f2.e1 -bg red
      pack .t.f2.e1
      bind all <FocusIn> {lappend x "focus in %W %d"}
      bind all <FocusOut> {lappend x "focus out %W %d"}
      setupbg -use [winfo id .t.f1]
      dobg {
          entry .e1 -bg lightBlue
          pack .e1
          bind all <FocusIn> {lappend x "focus in %W %d"}
          bind all <FocusOut> {lappend x "focus out %W
  %d"}
          set x {}
      }

      # Claim the focus and wait long enough for it to
  really arrive.

      focus -force .t.f2.e1
      after 300 {set timer 1}
      vwait timer
      set x {}
      lappend x [focus] [dobg focus]

      # See if a "focus" command will move the focus to
  the embedded
      # application.

      dobg {focus .e1}
      after 300 {set timer 1}
      vwait timer
      lappend x |
      dobg {lappend x |}

      # Bring the focus back to the main application.

      focus .t.f2.e1
      after 300 {set timer 1}
      vwait timer
      set result [list $x [dobg {set x}]]
      cleanupbg
      set result

  ---- Result was:
  {{} {} |} |
  ---- Result should have been (exact matching):
  {.t.f2.e1 {} {focus out .t.f2.e1 NotifyNonlinear}
  {focus out .t.f2 NotifyNonlinearVirtual} {focus in
  .t.f1 NotifyNonlinear} | {focus out .t.f1
  NotifyNonlinear} {focus in .t.f2
  NotifyNonlinearVirtual} {focus in .t.f2.e1
  NotifyNonlinear}} {{focus in . NotifyVirtual} {focus in
  .e1 NotifyAncestor} | {focus out .e1 NotifyAncestor}
  {focus out . NotifyVirtual}}
  ==== focus-6.2 FAILED

  ==== listbox-13.3 ListboxScanTo procedure FAILED
  ==== Contents of test case:

      .l yview moveto 1.0
      .l xview moveto 1.0
      .l scan mark 10 20
      .l scan dragto 5 10
      update
      set x [list [.l xview] [.l yview]]
      .l scan dragto [expr 5+$width] [expr 10+$height]
      update
      lappend x [.l xview] [.l yview]

  ---- Result was:
  {0.8 1} {0.75 1} {0.64 0.84} {0.25 0.5}
  ---- Result should have been (exact matching):
  {0.8 1} {0.75 1} {0.62 0.82} {0.25 0.5}
  ==== listbox-13.3 FAILED

  window.test : never finish, I must type Ctrl C to stop


tkt_uuid: 220933ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 10. Generic Menus
priority: 4
foundin: obsolete: 8.3.1
resolution: None
title: making tearoff-menus transient
comment:
  OriginalBugID: 5981 RFE
  Version: 8.3.1
  SubmitDate: '2000-07-06'
  LastModified: 
  Severity: LOW
  Status: UnAssn
  Submitter: techsupp
  OS: All
  OSVersion: different UNIX


  Name:
  Uwe Traum

  DesiredBehavior:
  calling tearoffcommand before posting menu. Otherwise
  'wm transient' fails on some window manager.

  Patch:
  move line 91-97 to line 76

  PatchFiles:
  tk8.3.1/library/tearoff.tcl


tkt_uuid: 826850ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 03. [*button] and [label]
priority: 5 Medium
foundin: obsolete: 8.5a0
resolution: Fixed
title: Radiobuttons no visible in 8.5a0
comment:
  Testing 8.5a0 under Unix:

  The new (nice) Radiobuttons are not visible in all of
  our dialogs.

  We can't figure out why.

  But using the iwidget - Radiobox - Example leads
  to the same problem:

  !/bin/sh
  #
  ----------------------------------------------------------------------
  #  DEMO: radiobox in [incr Widgets]
  #
  ----------------------------------------------------------------------
  #\
  exec itkwish "$0" ${1+"$@"}
  package require Iwidgets 3.0

  # itkwish interprets the rest...
  #
  ----------------------------------------------------------------------
  iwidgets::radiobox .rb -labeltext "Size:" -labelpos nw
  pack .rb -padx 4 -pady 4 -fill both

  .rb add small -text "Small"
  .rb add med -text "Medium"
  .rb add large -text "Large"
  .rb add xlarge -text "Biggie"

  .rb select med


tkt_uuid: 440664ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: 05. Canvas Items
priority: 5 Medium
foundin: obsolete: 8.4a2
resolution: None
title: "move" and "coords" ignore tag args
comment:
  Found in 8.4a2 under Win and Linux:

  supposed we have a canvas $c, I put a 15x15 rectangle
  into it:

  %set ID [$c create rectangle 10 10 15 15 -tags MYTAG]

  then I query the rectangle coords by using the ID:

  %$c coords $ID
  10.0 10.0 15.0 15.0

  ok, good. Let's try with MYTAG:  

  %$c coords MYTAG
  %

  nothing returns. 
  I have seen a similar behavior with "move", where the
  move is not performed if a tag is given as argument.

  This didn't happen in 8.0.x


tkt_uuid: 220895ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 05. Canvas Items
priority: 5 Medium
foundin: obsolete: 8.3
resolution: None
title: Canvas inconsistantly draws lines on Linux/UNIX
comment:
  OriginalBugID: 4195 Bug
  Version: 8.3
  SubmitDate: '2000-02-16'
  LastModified: '2000-02-16'
  Severity: MED
  Status: UnAssn
  Submitter: ericm
  ChangedBy: ericm
  OS: Linux-Red Hat


  I want to create a line like this in the canvas (# indicates a
  colored pixel):

    #
    #
    #
   #
  #

  If I draw it from the bottom to the top, ala

  .c create line 50 50 52 48 52 30

  It omits one pixel at the top of the diagonal, giving me this:

    #
    #

   #
  #

  If I draw it from the top, it draws correctly:

  .c create line 52 30 52 48 50 50

  These two commands should produce visually indistinguishable
  lines.  The first command should not omit the pixel at the top
  of the diagonal.

  - eric


tkt_uuid: 220263ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 63. Tk_Win Functions
priority: 1 Zero
foundin: final: 8.2.3
resolution: Invalid
title: wish SEGVs
comment:
  OriginalBugID: 3894 Bug
  Version: 8.2.3
  SubmitDate: '1999-12-17'
  LastModified: '2000-02-25'
  Severity: CRIT
  Status: Closed
  Submitter: techsupp
  ChangedBy: hobbs
  OS: Other
  OSVersion: QNX 4.25
  Machine: i586
  ClosedDate: '2000-02-25'


  Name:
  Bruce Edge

  Comments:
  The call to XGetIMValues does not set stylePtr->supported_styles
  correctly.

  It may be a bug in the XFree86 libs, but I could fix it here.

  ReproducibleScript:
  run wish, it terminates with a segment violation immediately

  Patch:
  # //8/usr/local/src/tk8.2.3/generic> less tkWindow.diff
  *** tkWindow.c  Fri Dec 17 11:50:51 1999
  --- tkWindow.orig.c     Wed Apr 21 17:53:28 1999
  ***************
  *** 2461,2468 ****
              NULL) != NULL) || (stylePtr == NULL)) {
          goto error;
        }
  -
  - #ifndef __QNX__
        for (i = 0; i < stylePtr->count_styles; i++) {
          if (stylePtr->supported_styles[i]
                  == (XIMPreeditNothing|XIMStatusNothing)) {
  --- 2461,2466 ----
  ***************
  *** 2470,2476 ****
              return;
          }
        }
  - #endif
        XFree(stylePtr);
   
        error:
  --- 2468,2473 ----

  PatchFiles:
  tkwindow.c



  This is really like the XFree86 libs.  The better fix is to
  make sure that TK_USE_INPUT_METHODS is not defined (comment
  it out) before compiling.  This will skip that entire
  process, also avoiding the bug. 
  -- 12/17/1999 hobbs


tkt_uuid: 792554ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 76. Widget Tour
priority: 5 Medium
foundin: obsolete: 8.5a0
resolution: Fixed
title: Button Inconsistency
comment:
  The "Message boxes" demo (#1 of Common Dialogs) has 
  buttons at the bottom that are inconsistent with the 
  rest of the widget tour (which looks rather nice now!)


tkt_uuid: 554346ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 84. Unix Build
priority: 2
foundin: obsolete: 8.4a5
resolution: Out of Date
title: spaces in paths break stuff (with patch)
comment:
  Here's a companion patch to the one attached to
  Tcl Bug 553544.  Apply both and Tcl/Tk will
  properly configure/build/install even when there
  are spaces in the build or install paths.


tkt_uuid: 220294ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 36. [tk_chooseDirectory]
priority: 5 Medium
foundin: obsolete: 8.3.1
resolution: Invalid
title: tk_chooseDir requires two clicks on OK after entering a non-existent directory name
comment:
  OriginalBugID: 4889 Bug
  Version: 8.3
  SubmitDate: '2000-04-06'
  LastModified: '2000-04-12'
  Severity: MED
  Status: Closed
  Submitter: techsupp
  ChangedBy: ericm
  OS: Windows NT
  OSVersion: Win NT 4.0 SP 5
  Machine: Hewlett-Packard Vectra VL (Pentium II)
  ClosedDate: '2000-04-12'


  Name:
  Tim Wilson

  Extensions:
  Tk 8.3.0

  ReproducibleScript:
  <Start wish>
  % tk_chooseDir
  <Now type a name of a file that does *not* exists into the "Directory name" box.  Click OK.>
  <Nothing happens!>
  <Click OK a second time... and tk_chooseDir returns:>
  %

  ObservedBehavior:
  Two clicks required on OK instead of the usual one.

  DesiredBehavior:
  Only one click on OK needed.



  Unfortunately, this behavior is required.  The problem is that the dialog has no way of differentiating between the case where the user has intentionally entered a non-existant directory name and the case where the user has accidentally entered a non-existant directory name (due to misspelling, for example).

  Imagine how irritating it would be if the dialog always dismissed when you
  accidentally mistyped a directory name and hit OK.  Because of this problem, I don't think there's anything we can do about this.

  Note also that the behavior exhibited by the tk_chooseDirectory dialog is in line with the Windows standard behavior for that dialog, AFAIK.

  - eric

  -- 04/11/2000 ericm

  ---
  From Tim Wilson:

      Eric> I was under the impression that this was the normal behavior
      Eric> of this dialog on NT.  Is that not correct?

  1. I don't think so:

  (a) The save-as dialogue, which has a very similar function (returning
      a new file name instead of a new directory name) only requires one
      click/return. 

  (b) On Visual C 6, if you File -> New -> Projects, then type a new
      directory name into the location box, then press the Browse "..."
      button, it only requires one click/return to choose the new
      directory name. 

  (c) However, I can't find a Microsoft app on my machine which asks you
      to choose a new directory name using *only* a dialogue.  (In the VC
      example above you have to use the entryfield too.)  Perhaps this
      is against some Windows GUI guideline.

  (d) Nevertheless, as an experienced Windows user, I think the fact
      that I was surprised by the "standard" dialogue's behaviour (and I
      wasn't the only one) is itself evidence that this is not normal
      behaviour for Windows. 

  2. You could suggest that a second click/return is desirable to help
     users avoid accidentally choosing a new name when they really meant
     to choose an existing name.

     But surely the case of accidentally typing a non-existent directory
     name is covered by the "-mustexist" flag?  And exactly the same
     argument would apply to tk_getSaveFile, which doesn't require a
     separate confirmation.

  3. If we do want a confirmation phase when choosing a new directory
     name, I think there should be a visual indication of the change in
     interal state (a basic GUI design principle, I think).  In this
     case, the obvious choice would be an "are you sure" dialogue.  (But
     I'd still ask: why are tk_getSaveFile and tk_chooseDir different?) 

  Does anyone have more definitive information?

  Tim

  ---
  From Jeff:

  I'd say intuitively it may seem odd, but actually using VC5, I find
  that our behavior is exactly the same as theirs (not one click, as
  you say).  If you go to File -> New, Projects tab, then click on
  the "..." (Browse for directory), it pops up by default with
          Z:\cvs\tk8.3\win
  I think edit the entry box by hand to say:
          Z:\cvs\tk8.3\generic

  I click OK, and it *cd's* to the directory, it doesn't go away, just
  as our behavior has.  If I put in a bogus directory, it complains that
  no such thing exists, so I can't tell what their behavior is exactly
  allowing for non-existent directories, but from the above, I'm fairly
  sure it's the same (as it would follow the exact same message path).

  -- 
     Jeffrey Hobbs                          The Tcl Guy
     jeffrey.hobbs at scriptics.com         Scriptics Corp.

  -- 04/12/2000 ericm


tkt_uuid: 220922ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 85. Win Build
priority: 1 Zero
foundin: obsolete: 8.3b2
resolution: Fixed
title: radiobuttons are not visible in static wish built from scratch
comment:
  OriginalBugID: 5827 Bug
  Version: 1.3
  SubmitDate: '2000-06-06'
  LastModified: 
  Severity: SER
  Status: UnAssn
  Submitter: techsupp
  OS: Windows NT
  OSVersion: Service pack 5, IE 5
  Machine: HP Vectra, 400MHZ


  Name:
  Mircea Draghicescu

  Comments:
  The button is there, but it is not visible (it will execute a command
      bound to it).
      If I replace tk82s.lib with tk82.lib, the button appears OK.

  ReproducibleScript:
  I built wish in Visual Studio 6.0 from proTkWinMain.c, proWrapTkMain.c, linked with tcl82s.lib, tk82s.lib, wrapper10s.lib, tbcload13s.lib,
  with /D "STATIC_BUILD" /MT, etc. I got 0 errors, 0 warnings during the build.
  I then started wish (starts OK) and run the following program:
  radiobutton .b
  pack .b

  ObservedBehavior:
  The button is not displayed.

  DesiredBehavior:
  See the button.


tkt_uuid: 1716141fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 7 High
foundin: None
resolution: Fixed
title: unixfont-5.11 hangs TkAqua ATSUI text engine
comment:
  The test unixfont-5.11 causes TkAqua HEAD to hang in an infinite loop in the ATSUI text engine.
  The hang can be reproduced by running the following:
  label .l -font fixed -text "00" -wrap 1
  or even
  label .l -text "0" -wrap 1
  The hang does not occur in TkAqua core-8-4-branch, or in HEAD on other platforms, so it is specific to the ATSUI text engine.


tkt_uuid: 3414673fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 88. Themed Tk
priority: 5 Medium
foundin: None
resolution: None
title: Improper look of ttk::checkbutton -style Toolbutton
comment:
  Currently it has improperly arranged borders: it doesn't look by now as "pressed", but rather still like raised - with the difference, that the light comes from "bottom right". IMHO the white "border" (bottom and right) should be removed completely, then it would look as "pressed" (checked on Linux, Tk8.6b2, all themes). Making bottom and right sides "lit" is wrong; either they should be as gray, as the background (or in any other bg colour), or they should be 1-pixel thick black line. How does it look presently: http://postimage.org/image/c68zo0xw/ (Upper: "untouched" (sets the associated variable to 0), the lower one: "depressed" - which, in fact, doesn't look as "pushed in". The "default" style - but the same problem is using all the other styles).


tkt_uuid: 220866ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 51. [place]
priority: 5 Medium
foundin: final: 8.0.5
resolution: Out of Date
title: Mac: strange effect after [place forget ...]
comment:
  OriginalBugID: 2729 Bug
  Version: 8.0.5
  SubmitDate: '1999-09-10'
  LastModified: 
  Severity: MED
  Status: UnAssn
  Submitter: techsupp
  OS: Macintosh
  OSVersion: 8.5
  Machine: Power PC


  Name:

  Andreas Leitgeb



  Comments:

  I have only irregular access to a Mac.  I don't know these boxes very

      well.  I just tried some tcl/tk-progs on a friend's Mac.



  ReproducibleScript:

  # toplevel "."  is supposed to contain some widgets, such that the

      following 

      #   "white spots" will be noticable

      label .l  -text foo -relief ridge -bd 6

      place .l -x 0 -y 0; update

      after 5000 { place forget .l}

      after 10000 {place .l -x 20 -y 20

      # just wait and see what happens.

      #  after the second "after" triggers,  double-click twice on the

      titlebar 

      #  (once to hide the window, then to let it re-appear) and the old 

      # client-rectangle (starting at pos 0,0)  remains white. the siblings of

      .l 

      # are not redrawn there



  ObservedBehavior:

  after the label is moved to the new position, its contents are clipped

      to its old client-rectangle (the one before the place-forget). if the

      label is otherwise hidden (lower'ed below its siblings in ".") before it

      is unplaced, then the next place&raise will draw it correctly. (this is

      also my current workaround)



  DesiredBehavior:

  after place forget & place to a new position  I'd expect it to appear on

      that new position - completely.


tkt_uuid: 220687ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 42. Photo Image|GIF
priority: 5 Medium
foundin: obsolete: 8.1a2
resolution: Fixed
title: make process fails on tkImgGIF.c
comment:
  OriginalBugID: 4223 Bug
  Version: 8.3
  SubmitDate: '2000-02-22'
  LastModified: '2000-03-30'
  Severity: MED
  Status: Released
  Submitter: techsupp
  ChangedBy: ericm
  OS: HP-UX
  FixedDate: '2000-03-30'
  FixedInVersion: 8.3.1


  Name:
  John McNeill

  CVS:
  2/21/00: tk8.3.0.tar(.gz)

  ReproducibleScript:
  Executed standard configure and attempted  a standard make.  Got errors shown in following panel.

  ObservedBehavior:
  cc -c -O  +z  -I. -I./../generic  -I./../bitmaps -I/opt/tcl8.3.0/generic   -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_PW_GECOS=1       -DTCL_NO_DEPRECATED   ./../generic/tkImgGIF.c
  cc: "../generic/tkImgGIF.c", line 776: warning 5: "const" will become a keyword.
  cc: "../generic/tkImgGIF.c", line 776: error 1000: Unexpected symbol: "static".
  cc: "../generic/tkImgGIF.c", line 777: warning 5: "const" will become a keyword.
  cc: "../generic/tkImgGIF.c", line 777: error 1000: Unexpected symbol: "static".
  cc: "../generic/tkImgGIF.c", line 788: error 1588: "initialCodeSize" undefined.
  cc: "../generic/tkImgGIF.c", line 800: error 1588: "pixelPtr" undefined.
  cc: "../generic/tkImgGIF.c", line 800: error 1549: Modifiable lvalue required for assignment operator.
  cc: "../generic/tkImgGIF.c", line 809: error 1527: Incompatible types in cast: Must cast from scalar to scalar or to void type.
  cc: "../generic/tkImgGIF.c", line 811: error 1527: Incompatible types in cast: Must cast from scalar to scalar or to void type.
  cc: "../generic/tkImgGIF.c", line 818: error 1588: "i" undefined.
  cc: "../generic/tkImgGIF.c", line 818: error 1549: Modifiable lvalue required for assignment operator.
  cc: "../generic/tkImgGIF.c", line 818: error 1566: Test expression in for must be scalar.
  cc: "../generic/tkImgGIF.c", line 818: error 1560: Modifiable lvalue required with operator "++".
  cc: "../generic/tkImgGIF.c", line 818: error 1561: Increment and decrement operators take scalar operand.
  cc: "../generic/tkImgGIF.c", line 819: error 1528: Subscript expression must combine pointer and integer.
  cc: "../generic/tkImgGIF.c", line 819: error 1549: Modifiable lvalue required for assignment operator.
  cc: "../generic/tkImgGIF.c", line 826: error 1549: Modifiable lvalue required for assignment operator.
  cc: "../generic/tkImgGIF.c", line 826: error 1588: "ypos" undefined.
  cc: "../generic/tkImgGIF.c", line 826: error 1549: Modifiable lvalue required for assignment operator.
  cc: "../generic/tkImgGIF.c", line 826: error 1566: Test expression in for must be scalar.
  cc: "../generic/tkImgGIF.c", line 826: error 1560: Modifiable lvalue required with operator "++".
  cc: "../generic/tkImgGIF.c", line 826: error 1561: Increment and decrement operators take scalar operand.
  cc: "../generic/tkImgGIF.c", line 827: error 1588: "xpos" undefined.
  cc: "../generic/tkImgGIF.c", line 827: error 1549: Modifiable lvalue required for assignment operator.
  cc: "../generic/tkImgGIF.c", line 827: error 1566: Test expression in for must be scalar.
  cc: "../generic/tkImgGIF.c", line 922: error 1588: "v" undefined.
  cc: "../generic/tkImgGIF.c", line 922: error 1549: Modifiable lvalue required for assignment operator.
  cc: "../generic/tkImgGIF.c", line 923: error 1563: Expression in if must be scalar.
  cc: "../generic/tkImgGIF.c", line 932: error 1560: Modifiable lvalue required with operator "++".
  cc: "../generic/tkImgGIF.c", line 932: error 1561: Increment and decrement operators take scalar operand.
  cc: "../generic/tkImgGIF.c", line 932: error 1554: Indirection must be through a pointer.
  cc: "../generic/tkImgGIF.c", line 932: error 1528: Subscript expression must combine pointer and integer.
  cc: "../generic/tkImgGIF.c", line 932: error 1528: Subscript expression must combine pointer and integer.
  cc: "../generic/tkImgGIF.c", line 932: error 1549: Modifiable lvalue required for assignment operator.
  cc: "../generic/tkImgGIF.c", line 933: error 1560: Modifiable lvalue required with operator "++".
  cc: "../generic/tkImgGIF.c", line 933: error 1561: Increment and decrement operators take scalar operand.
  cc: "../generic/tkImgGIF.c", line 933: error 1554: Indirection must be through a pointer.
  cc: "../generic/tkImgGIF.c", line 933: error 1528: Subscript expression must combine pointer and integer.
  cc: "../generic/tkImgGIF.c", line 933: error 1528: Subscript expression must combine pointer and integer.
  cc: "../generic/tkImgGIF.c", line 933: error 1549: Modifiable lvalue required for assignment operator.
  cc: "../generic/tkImgGIF.c", line 934: error 1560: Modifiable lvalue required with operator "++".
  cc: "../generic/tkImgGIF.c", line 934: error 1561: Increment and decrement operators take scalar operand.
  cc: "../generic/tkImgGIF.c", line 934: error 1554: Indirection must be through a pointer.
  cc: "../generic/tkImgGIF.c", line 934: error 1528: Subscript expression must combine pointer and integer.
  cc: "../generic/tkImgGIF.c", line 934: error 1528: Subscript expression must combine pointer and integer.
  cc: "../generic/tkImgGIF.c", line 934: error 1549: Modifiable lvalue required for assignment operator.
  cc: "../generic/tkImgGIF.c", line 936: error 1560: Modifiable lvalue required with operator "++".
  cc: "../generic/tkImgGIF.c", line 936: error 1561: Increment and decrement operators take scalar operand.
  cc: "../generic/tkImgGIF.c", line 936: error 1554: Indirection must be through a pointer.
  cc: "../generic/tkImgGIF.c", line 936: error 1528: Subscript expression must combine pointer and integer.
  cc: "../generic/tkImgGIF.c", line 936: error 1528: Subscript expression must combine pointer and integer.
  cc: "../generic/tkImgGIF.c", line 936: error 1549: Modifiable lvalue required for assignment operator.
  cc: "../generic/tkImgGIF.c", line 938: error 1560: Modifiable lvalue required with operator "++".
  cc: "../generic/tkImgGIF.c", line 938: error 1561: Increment and decrement operators take scalar operand.
  cc: "../generic/tkImgGIF.c", line 944: error 1588: "interlaceStep" undefined.
  cc: "../generic/tkImgGIF.c", line 944: error 1588: "pass" undefined.
  cc: "../generic/tkImgGIF.c", line 944: error 1528: Subscript expression must combine pointer and integer.
  cc: "../generic/tkImgGIF.c", line 944: error 1549: Modifiable lvalue required for assignment operator.
  cc: "../generic/tkImgGIF.c", line 945: error 1564: Expression in while must be scalar.
  cc: "../generic/tkImgGIF.c", line 946: error 1560: Modifiable lvalue required with operator "++".
  cc: "../generic/tkImgGIF.c", line 946: error 1561: Increment and decrement operators take scalar operand.
  cc: "../generic/tkImgGIF.c", line 947: error 1563: Expression in if must be scalar.
  cc: "../generic/tkImgGIF.c", line 950: error 1528: Subscript expression must combine pointer and integer.
  cc: "../generic/tkImgGIF.c", line 950: error 1549: Modifiable lvalue required for assignment operator.
  cc: "../generic/tkImgGIF.c", line 953: error 1560: Modifiable lvalue required with operator "++".
  cc: "../generic/tkImgGIF.c", line 953: error 1561: Increment and decrement operators take scalar operand.
  cc: "../generic/tkImgGIF.c", line 955: error 1549: Modifiable lvalue required for assignment operator.
  cc: "../generic/tkImgGIF.c", line 1688: warning 5: "const" will become a keyword.
  cc: "../generic/tkImgGIF.c", line 1688: error 1000: Unexpected symbol: "char".
  cc: "../generic/tkImgGIF.c", line 1702: error 1701: Unsigned suffix is an  ANSI feature.
  *** Error exit code 1

  DesiredBehavior:
  no errors



  Looks like some ANSI specific stuff got into tkImgGIF.c.  I recommend
  never using HP's default (broken) cc anyway, but instead to use gcc.
  We're likely to require an ANSI compatible C compiler in the future
  (I believe -Aa and -Ae can be added for cc on HP10). 
  -- 02/22/2000 hobbs

  As Jeff suspected, there was a handle of ANSI specific bits spread throughout tkImgGIF.c (for example, using "const" instead of "CONST", which is defined during preprocessing to be either "" or "const" depending on the ANSI compatibility of your compiler).  I fixed these and no longer get the errors you show when I compile on HP-UX 10.20.  This fix will go out with 8.3.1, and is checked into our CVS repository now.

  - eric

  -- 03/30/2000 ericm


tkt_uuid: 418943ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 84. Unix Build
priority: 5 Medium
foundin: None
resolution: Accepted
title: Don't subst STUB_LIB_FILE for tk.
comment:
  This is in ref to Tcl patch  This will fix
  the problem fixed by 418432. in Tcl for Tk.
  Ok to check in?


tkt_uuid: 3003891fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 85. Win Build
priority: 5 Medium
severity: Minor
foundin: obsolete: 8.6b1.1
resolution: Fixed
title: OPTS=threads required to build on Windows with Makefile.vc
comment:
  When building Tk on windows using makefile.vc, it is required to specify OPTS=threads on the command line as otherwise the linker will look for tcl86.lib and building Tcl only generated tcl86t.lib


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: 3003895fffffffffffffffffffffffffffffffff
type: Patch
status: Open
subsystem: 15. [scale]
priority: 5 Medium
foundin: None
resolution: None
title: improved range for Scale widget
comment:
  The current Scale widget isn't able to display a range starting with 1 and having a resolution of 2. Instead the "-from" value is rounded to be a multiple of the "-resolution".

  Example:
  pack [scale .s -orient hor -from 1 -to 9 -resolution 2 -tickinterval 1] -fill x

  The attached diffs contain all changes necessary to fix this odd behaviour. It's a diff for Tk 8.5.8, tkScale.c and tkScale.h.
  The "TkRoundToResolution" function has to be updated and "TkRoundTickToResolution" is introduced. The first one now refers to the "-from" value, too, and the latter is needed to round the "-tickinterval" without any reference to this value.


tkt_uuid: 513923ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 13. Win Menus
priority: 5 Medium
foundin: obsolete: 8.4.4
resolution: None
title: Tearoff+Cascade invokes wrong command
comment:
  When an item in a cascade from a tearoff is invoked,
  and the cascade overlaps the tearoff, both the command
  in the cascade and in its parent can be invoked.

  Expected behavior: Only the command in the cascade
  should be invoked.  *Probably, the cascade should be
  placed so that it does not overlap the tearoff at all*

  How to reproduce:  Execute the attached script by
  running "source menutest.tcl" from wish.  Tear off the
  "Test" menu.  Drag the tearoff to the extreme right
  side of the screen.  Post the cascade, then invoke a
  command from it (it may help if the mouse pointer is
  near the left hand side of the cascade).  Output reads
  something like
      % source x:/menutest.tcl
      Invoked 0
      Invoked Sub0
      %
  but it should only say
      Invoked Sub0

  This problem existed as early as 8.2.1, and still
  exists in 8.4a2.  None of the CVS changes since 8.4a2
  looked relevant to this problem, and no newer Windows
  installers were available.


tkt_uuid: 971980ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 84. Unix Build
priority: 5 Medium
foundin: None
resolution: Accepted
title: Use pkgconfig database to detect Xft
comment:
  I need a way to detect at runtime whether or not Tk was
  built with --enable-xft.

  The TIP #59 pkgconfig database seems like the best way
  to do this.  The attached patch sets the configuration
  key "fontsystem" to "xft" if Tk was built with
  --enable-xft, and leaves it undefined otherwise.  Other
  suggestions for configuration key names welcome.

  (I notice that Tk doesn't currently use
  Tcl_RegisterConfig anywhere else.)


tkt_uuid: 220764ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 23. Option Parsing
priority: 2
foundin: obsolete: 8.3.2
resolution: Fixed
title: Tcl_Obj leak in tkConfig.c
comment:
  OriginalBugID: 6275 Bug
  Version: 8.3.2
  SubmitDate: '2000-09-15'
  LastModified: '2000-10-10'
  Severity: SER
  Status: Released
  Submitter: angie
  ChangedBy: ericm
  OS: Windows NT
  FixedDate: '2000-10-10'
  FixedInVersion: 8.4a2


  Tk 8.3.2 Bug


  Name:  Chris Oliver

  email:  coliver@mminternet.com

  Support:  None

  Severity:  2

  OperatingSystem:  Windows NT

  Synopsis:  Tcl_Obj leak in tkConfig.c


  ReproducibleScript:

  You can see the leak by setting some options and then creating and destroying a widget repeatedly in a loop, for example


  option add *Entry.background red

  while 1 {entry .e; destroy .e}


  ObservedBehavior:

  The problem is that the code in Tk_InitOptions assumes that DoObjConfig always takes ownership of "valuePtr".  However that is not always the case. When the source is the option database "valuePtr" is initialized via Tcl_NewStringObj - its reference count is still zero when passed to DoObjConfig.  So if DoObjConfig doesn't take ownership of it it gets leaked.  The patch below ensures that "valuePtr" is strongly referenced by Tk_InitOptions and gets released regardless of the behavior of DoObjConfig.  


  Patch:

  *** tkConfig.cMon Apr 24 18:02:30 2000

  --- ../../cvs/tk8.3.2/generic/tkConfig.cFri Sep 15 00:36:15 2000

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

  *** 538,544 ****

    if (valuePtr == NULL) {

        continue;

    }

  ! 

    if (DoObjConfig(interp, recordPtr, optionPtr, valuePtr, tkwin,

    (Tk_SavedOption *) NULL) != TCL_OK) {

        if (interp != NULL) {

  --- 538,544 ----

    if (valuePtr == NULL) {

        continue;

    }

  ! Tcl_IncrRefCount(valuePtr);

    if (DoObjConfig(interp, recordPtr, optionPtr, valuePtr, tkwin,

    (Tk_SavedOption *) NULL) != TCL_OK) {

        if (interp != NULL) {

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

  *** 563,570 ****

  --- 563,572 ----

    }

    Tcl_AddErrorInfo(interp, msg);

        }

  +     Tcl_DecrRefCount(valuePtr);

        return TCL_ERROR;

    }

  + Tcl_DecrRefCount(valuePtr);

        }

        return TCL_OK;

    }


  Posted To comp.lang.tcl: Posted Successfully




  Great work finding this bug!  Thanks for sending in the patch, too.  I've applied it to the source repository, and the fix will be included in Tk 8.4a2.

  Thanks,

     Eric Melski                            The Other Tcl Guy
     ericm at ajubasolutions.com            Ajuba Solutions

  -- 10/10/2000 ericm


tkt_uuid: 1252702fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 81. Portability
priority: 8
foundin: obsolete: 8.4.11
resolution: Fixed
title: regression tests fail on Solaris 10/x86_64
comment:
  Hello,

  I'm facing a serious problem on our SUNfire V20z
  machine (Operon) running Solaris 10/x86:
  After a successful compilation of Tcl/Tk 8.4.11 I run
  the regression tests (make test). It fails on
  choosedir.tcl with the following Tcl-stack trace: 

  can't modify -cursor option after widget is created
      while executing
  "$w         config -cursor watch"
      (procedure "::tk::dialog::file::Update" line 49)
      invoked from within
  "::tk::dialog::file::Update .__tk_choosedir"
      ("after" script)

  Looking into the Tk sources I found serious 64-bit
  portability bugs at several places. For example in
  generic/tkFrame.c:787 [function FrameWidgetObjCmd()]
  the wrong lines of code are:

  size_t length;
  char *arg = Tcl_GetStringFromObj(objv[i], (int *) &length);

  From now on the content of length is completely
  platform dependent (e.g. bigEndian vs. littleEndian).
  As a result the following calls to strncmp(arg,
  "-class", length) is random, because if length is e.g.
  negative, it always gives me 0 (match!) even if arg is
  "-cursor" ...

  An easy fix for this could look like this:

  size_t length;
  int len;
  char *arg = Tcl_GetStringFromObj(objv[i], &len);
  length = len;

  ...or (better) change the signature of
  Tcl_GetStringFromObj to accept a size_t* as a last
  argument instead of a int*.

  At least these files contain the same bug:
  # egrep -l "Tcl_GetStringFromObj\(.*int"
  tk8.4.11/generic/*.c 
  tkCanvLine.c
  tkCanvPoly.c
  tkCanvText.c
  tkCanvas.c
  tkConfig.c
  tkFocus.c
  tkFrame.c
  tkGrid.c
  tkImgPhoto.c
  tkPack.c

  BTW: the latest development branch 8.5.a3 still
  contains the same bugs.

  Thanks for looking into this,
  Jochen


tkt_uuid: 1162739fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 67. Unix Window Operations
priority: 5 Medium
foundin: None
resolution: Invalid
title: Smoother interactive resizing on X11
comment:
  Tk currently uses NorthWestGravity for the win_gravity
  and bit_gravity window attributes.  This makes
  interactive resizing less smooth than it ought to be.

  The problem is most visible in panedwindows with
  '-opaqueresize true' -- as you drag the sash up and
  down, the opposite border and window contents may
  jiggle, shake, and jump around.

  What's happening is: when the panedwindow sets the new
  geometry of the slave, the X server shifts the existing
  contents according to the bit_gravity and/or
  win_gravity attributes (depending on whether the window
  is directly managed by the panedwindow or is a
  descendant of the pane slave).   Then a split-second
  later, the window redraws itself, this time with the
  correct geometry.

  Attached patch changes Tk to use StaticGravity for both
  attributes; this hint tells the X server to leave the
  pixels where they are when the window is resized.


tkt_uuid: 1232908fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 01. Bindings
priority: 9 Immediate
foundin: obsolete: 8.5b3
resolution: Fixed
title: Command modifier not documented
comment:
  In the [bind] manpage the MacOS 'Command' modifier is
  not mentioned, even though it does actually work. I
  realise this is platform-specific but it would be a
  good idea to include it in the documentation so one
  does not have to guess.

  I am not sure what happens on other platforms if this
  is used. The preferred result would probably be for the
  bind command to be accepted without complaint but that
  naturally the event would then never be generated.


tkt_uuid: 1630251fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 7 High
severity: Minor
foundin: obsolete: 8.5a6
resolution: Fixed
title: -endline is never displayed
comment:
  According to the docs the -endline is the last line to be displayed, but it isn't. Setting -startline equal to -endline for example results in an empty widget.


  pack [text .t] -side top -pady {0 6}
  .t insert end "1\n2\n3\n"
  pack [.t peer create .peer -startline 2 -endline 2] -side top


  This does provide a way of having zero lines displayed, which may be a good thing rather than enforcing a minimum of 1 line, in which case only the docs need updating.


tkt_uuid: 220008ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 48. Geometry Management
priority: 1 Zero
foundin: obsolete: 8.2b1
resolution: Duplicate
title: Hang if grid/packer used in same level
comment:
  OriginalBugID: 2444 RFE
  Version: 8.2b1
  SubmitDate: '1999-07-26'
  LastModified: '1999-08-13'
  Severity: LOW
  Status: Closed
  Submitter: techsupp
  ChangedBy: hobbs
  RelatedBugIDs: 677
  OS: Linux-Red Hat
  Machine: Other
  ClosedDate: '1999-08-13'


  Name:
  Dr. David Alan Gilbert

  ReproducibleScript:
  Sorry - no script; its a very touchy heisenbug this.  I had a script
      which used a lot of gridding to lay
      out a window, and then later I came along and packed a menu bar at the
      top.  OK - this is a bad
      thing to do - but see the symptom!  Obviously I didn't intend to mix the
      two.

  ObservedBehavior:
  Hang - no window appeared; putting some debugging 'puts' in freed it up
      - but this seemed to be fairly random
      - I'm guessing there is a dodgy interaction with the event loop.

  DesiredBehavior:
  Error: Pack and grid used on same level (some reference to where they
      are being used)



  Should probably report an error. 
  -- 07/27/1999 redman


tkt_uuid: 1067245fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 21. [panedwindow]
priority: 5 Medium
foundin: obsolete: 8.5a1
resolution: Duplicate
title: paned window test failures, WiinXP
comment:
  The following 5 tests fail in cvs HEAD.

  ==== panedwindow-24.29 ConfigurePanes, -hide works FAILED
  ==== Contents of test case:

      panedwindow .p
      frame .f1 -width 10 -bg red
      frame .f2 -width 10 -bg white
      frame .f3 -width 10 -bg blue
      frame .f4 -width 10 -bg green
      .p add .f1 .f2 .f3 .f4
      pack .p -fill both -expand 1
      update
      set result [list]
      lappend result [winfo ismapped .f1] [winfo ismapped
  .f2] [winfo ismapped .f3
  ] [winfo ismapped .f4]
      lappend result [winfo width .f1] [winfo width .f2]
  [winfo width .f3] [winfo
  width .f4]
      .p paneconfigure .f2 -hide 1
      update
      lappend result [winfo ismapped .f1] [winfo ismapped
  .f2] [winfo ismapped .f3
  ] [winfo ismapped .f4]
      lappend result [winfo width .f1] [winfo width .f2]
  [winfo width .f3] [winfo
  width .f4]
      destroy .f1 .f2 .f3 .f4 .p
      set result

  ---- Result was:
  0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
  ---- Result should have been (exact matching):
  1 1 1 1 10 10 10 10 1 0 1 1 10 10 10 24
  ==== panedwindow-24.29 FAILED


  ==== panedwindow-24.30 ConfigurePanes, -stretch first
  FAILED
  ==== Contents of test case:

      panedwindow .p
      frame .f1 -width 10 -bg red
      frame .f2 -width 10 -bg white
      frame .f3 -width 10 -bg blue
      frame .f4 -width 10 -bg green
      .p add .f1 .f2 .f3 .f4 -stretch first
      pack .p -fill both -expand 1
      update
      set result [list]
      lappend result [winfo width .f1] [winfo width .f2]
  [winfo width .f3] [winfo
  width .f4]
      .p paneconfigure .f2 -hide 1
      update
      lappend result [winfo width .f1] [winfo width .f2]
  [winfo width .f3] [winfo
  width .f4]
      destroy .f1 .f2 .f3 .f4 .p
      set result

  ---- Result was:
  1 1 1 1 1 1 1 1
  ---- Result should have been (exact matching):
  10 10 10 10 24 10 10 10
  ==== panedwindow-24.30 FAILED


  ==== panedwindow-24.31 ConfigurePanes, -stretch middle
  FAILED
  ==== Contents of test case:

      panedwindow .p
      frame .f1 -width 10 -bg red
      frame .f2 -width 10 -bg white
      frame .f3 -width 10 -bg blue
      frame .f4 -width 10 -bg green
      .p add .f1 .f2 .f3 .f4 -stretch middle
      pack .p -fill both -expand 1
      update
      set result [list]
      lappend result [winfo width .f1] [winfo width .f2]
  [winfo width .f3] [winfo
  width .f4]
      .p paneconfigure .f2 -hide 1
      update
      lappend result [winfo width .f1] [winfo width .f2]
  [winfo width .f3] [winfo
  width .f4]
      destroy .f1 .f2 .f3 .f4 .p
      set result

  ---- Result was:
  1 1 1 1 1 1 1 1
  ---- Result should have been (exact matching):
  10 10 10 10 10 10 24 10
  ==== panedwindow-24.31 FAILED



  ==== panedwindow-24.32 ConfigurePanes, -stretch always
  FAILED
  ==== Contents of test case:

      panedwindow .p
      frame .f1 -width 10 -bg red
      frame .f2 -width 10 -bg white
      frame .f3 -width 10 -bg blue
      frame .f4 -width 10 -bg green
      .p add .f1 .f2 .f3 .f4 -stretch always
      pack .p -fill both -expand 1
      update
      set result [list]
      lappend result [winfo width .f1] [winfo width .f2]
  [winfo width .f3] [winfo
  width .f4]
      .p paneconfigure .f2 -hide 1
      update
      lappend result [winfo width .f1] [winfo width .f2]
  [winfo width .f3] [winfo
  width .f4]
      destroy .f1 .f2 .f3 .f4 .p
      set result

  ---- Result was:
  1 1 1 1 1 1 1 1
  ---- Result should have been (exact matching):
  10 10 10 10 14 10 14 14
  ==== panedwindow-24.32 FAILED


  ==== panedwindow-24.33 ConfigurePanes, -stretch never
  FAILED
  ==== Contents of test case:

      panedwindow .p
      frame .f1 -width 10 -bg red
      frame .f2 -width 10 -bg white
      frame .f3 -width 10 -bg blue
      frame .f4 -width 10 -bg green
      .p add .f1 .f2 .f3 .f4 -stretch never
      pack .p -fill both -expand 1
      update
      set result [list]
      lappend result [winfo width .f1] [winfo width .f2]
  [winfo width .f3] [winfo
  width .f4]
      .p paneconfigure .f2 -hide 1
      update
      lappend result [winfo width .f1] [winfo width .f2]
  [winfo width .f3] [winfo
  width .f4]
      destroy .f1 .f2 .f3 .f4 .p
      set result

  ---- Result was:
  1 1 1 1 1 1 1 1
  ---- Result should have been (exact matching):
  10 10 10 10 10 10 10 10
  ==== panedwindow-24.33 FAILED


tkt_uuid: 2984787fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 41. Photo Images
priority: 7 High
foundin: obsolete: 8.6b1.1
resolution: Fixed
title: PNG: Bug in generated png images files
comment:
  The attached PNG was generated from a trivial photo image by:
     $img write x.png

  It is apparently buggy; OSX's quick view in Finder.app can view it, but neither Preview.app nor Firefox like it. Other apps (used by a website, so identity unknown) also don't like it.


tkt_uuid: 220559ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 2
foundin: obsolete: 8.2b1
resolution: Fixed
title: prolog.ps missing or misplaced
comment:
  OriginalBugID: 2377 Bug
  Version: 8.2b1
  SubmitDate: '1999-07-16'
  LastModified: '1999-07-16'
  Severity: MED
  Status: Released
  Submitter: techsupp
  ChangedBy: redman
  OS: Other
  Machine: NA
  FixedDate: '1999-07-16'


  Name:
  Don Porter

  Comments:
  Perhaps the Makefile wants to install generic/prolog.ps ?
      There is no file library/prolog.ps in the release.
      There is a file library/prolog.ps in NetCVS, though.
      Hmmmm.... another reason to get those 'cvs rm's up to date.

  ObservedBehavior:
  $ make install
      ...
      Installing ./../library/prolog.ps
      cp: ./../library/prolog.ps: No such file or directory
      chmod: //usr/local/install/tcl8.2b1/lib/tk8.2/#inst.2361#: No such file
      or directory
      mv: //usr/local/install/tcl8.2b1/lib/tk8.2/#inst.2361#: No such file or
      directory
      Installing ./../library/tclIndex
      ...



  Fixed install-libraries target to grab the file installed with the dist target.  Fixed in 8.2b2

  -- 07/16/1999 redman


tkt_uuid: 690507ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 11. Aqua Menus
priority: 5 Medium
foundin: None
resolution: Accepted
title: Fix for 690178
comment:
  This patch moves the actual running of the menu command till idle time.  This brings it closer to how the Windows implementation works (there the Native tracking function posts a WM_COMMAND event and then exits, and the command is run in the WM_COMMAND event handler.)


tkt_uuid: 2860363fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 41. Photo Images
priority: 5 Medium
foundin: None
resolution: None
title: Add a command to list available image handlers
comment:
  There is currently no way to request a list of available image handlers, e.g. for use by [image data -format ___].  This list may vary depending on which extensions are loaded.  A subcommand could be added to produce a list, such as { gif ppm }, listing all valid options to the -format flag.


tkt_uuid: 219989ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 10. Generic Menus
priority: 1 Zero
foundin: None
resolution: Duplicate
title: big menus are unusable, there's a workaround but it's a waste of time
comment:
  OriginalBugID: 2158 RFE
  Version: 8.0.5
  SubmitDate: '1999-06-03'
  LastModified: '2000-01-27'
  Severity: SER
  Status: Closed
  Submitter: techsupp
  ChangedBy: hobbs
  RelatedBugIDs: 3222
  OS: Linux
  OSVersion: Slackware 4.0
  Machine: Other
  ClosedDate: '2000-01-27'


  Name: Luc Deschenaux

  ReproducibleScript:
  try a menu with so many items that his height top the screen height...

  ObservedBehavior:
  you can't access all items in the menu since it doesnt scroll
      
      I should put hierarchical menus where needed using the max height of the
      root window and use a procedure to convert menu item numbers

  DesiredBehavior:
  the menus could scroll when the cursor enter the last entry, when this
      one is a triangle indicating there's more items below...
      
      or tk could handle himself the "more..." hierarchical menus workaround
      so that the numbering of items would not be changed.


  Tk8 menus have a -columnbreak option, which causes menus to not
  be vertically more than X in number.  This is the programmatic
  way to avoid the above problem.  It might be nice to have Tk
  build this automatically, but there are limitation when working
  with native system menus (or not - on Mac we get the desired behavior
  by default because of the underlying menu system).
  This has been changed to an RFE for that reason. 
  -- 01/18/2000 hobbs


tkt_uuid: 220705ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 09. [listbox]
priority: 2
foundin: obsolete: 8.0p2
resolution: Fixed
title: Pressing Escape in a listbox results in a Tcl error dialog
comment:
  OriginalBugID: 4373 Bug
  Version: 8.0p2
  SubmitDate: '2000-03-15'
  LastModified: '2000-03-22'
  Severity: MED
  Status: Released
  Submitter: techsupp
  ChangedBy: ericm
  OS: All
  FixedDate: '2000-03-22'
  FixedInVersion: 8.3.1


  Name:
  Mark A. Wege

  Comments:
  Although we found this problem under Solaris 2.6 using Tcl 8.0p2, it
      also happens under Windows using Tcl 8.3.0 (which I
      downloaded from Scripts on 3/14/2000).

      Based on looking at the body of the tkListboxCancel procedure, it
      appears that the listboxPrev element of the tkPriv
      array is not being initialized properly.  For a workaround, I
      initialized it to the results of "$w index anchor".

      BTW, while looking at the procedure in Tcl 8.3, I saw the command:

           event generate $w <<ListboxSelect>>

      but could not find any definition of the virtual event
      <<ListboxSelect>>, even when issuing the command:

           bind Listbox <<ListboxSelect>>

      Is this for future use, or is some code missing from the build?

  ReproducibleScript:
  Execute the following code in an interactive session of wish, then move the mouse over the listbox and press the Escape key:

  listbox .l -selectmode extended
  pack .l
  focus .l

  ObservedBehavior:
  The following error is generated, but only when the listbox has a -selectmode of extended, and no rows have ever
  been selected by clicking on them (it does still happen if you select a row in your code using "selection set"):

  bad listbox index "": must be active, anchor, end, @x,y, or a number
      while executing
  "$w selection clear $first $last"
      (procedure "tkListboxCancel" line 13)
      invoked from within
  "tkListboxCancel .l"
      (command bound to event)

  DesiredBehavior:
  No error should be generated.



  listboxPrev is initialized, but to {}, which is an invalid index.  I added a check for this in tkListboxCancel.  The fix should go out with 8.3.1.

  ListboxSelect is a convenience event for developers.  If you bind to ListboxSelect on your listbox, you can get a callback everytime selection changes:

  bind [listbox .l] <<ListboxSelect>> {puts "selection event!"}

  This is described in the listbox manual entry:

         Any time the selection changes in the listbox, the virtual
         event  <<ListboxSelect>> will be generated.  It is easiest
         to bind to this event to be made aware of any  changes  to
         listbox selection.

  - eric

  -- 03/22/2000 ericm


tkt_uuid: 220548ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: None
priority: 2
foundin: None
resolution: Fixed
title: Request for 8.2: fix bitmap bug, include dash/img patches!
comment:
  OriginalBugID: 2311 RFE
  Version: 8.0.5
  SubmitDate: '1999-07-01'
  LastModified: '1999-12-13'
  Severity: MED
  Status: Released
  Submitter: techsupp
  ChangedBy: hobbs
  OS: Other
  OSVersion: We run on linux, solaris, Mac, Windows, Irix, Digital, etc etc.
  Machine: NA
  FixedDate: '1999-12-13'
  FixedInVersion: 8.3b1


  Name:
  Sandy Antunes

  CustomShell:
  Dash patch, Img patch.

  Comments:
  We love Tcl/Tk at NASA!

  DesiredBehavior:
  1) Fix the -stipple bug (where you can specify a bitmap file, but not a
  bitmap data item, because the internal represenation of bitmaps is messed
  up)
  2) Include the dash-patch and img-patch, for gosh sakes... I'm certain Jan
  can deliver them to you quickly, since he generally only lags a day
  or so from the current release, and I don't know anyone who uses an
  unpatched version!



  Item (1) is harder than it sounds because the image mechanism is
  newer than the other stuff and requires extra hooks to make sure
  all the mem is cleaned up that the old style doesn't support.

  We are looking to integrate most/all of dash/img for 8.3. 
  -- 09/18/1999 hobbs
  in 8.3b1 
  -- 12/13/1999 hobbs


tkt_uuid: 821088ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 03. [*button] and [label]
priority: 5 Medium
foundin: None
resolution: Fixed
title: Fix for incorrect disabled button image
comment:
  Attached are diffs to correct the incorrect stipple
  area for
  images on disabled buttons.

  This should fix bugs 818489 and 792533.

  The fix is very simple, to correct a typo using
  imageXOffset
  instead of imageYOffset.  However the code was not
  so robust because in some places it was using different
  variables to set the image position compared to the stipple
  position.  This made the bug less obvious to detect.
  So I have also changed the calls to Tk_RedrawImage to
  use the same variables (imageX/YOffset) throughout.

  The diffs are for the tk*Button.c files against the
  tk8.4.3 version.


tkt_uuid: 220522ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 2
foundin: obsolete: 8.1
resolution: Fixed
title: Doc boo boo re: tcl_platform(user)
comment:
  OriginalBugID: 2042 Bug
  Version: 8.1
  SubmitDate: '1999-05-10'
  LastModified: '1999-08-08'
  Severity: MED
  Status: Released
  Submitter: pat
  ChangedBy: hobbs
  OS: Windows 98
  Machine: X86
  FixedDate: '1999-08-08'
  FixedInVersion: 8.2


  Name:
  Christopher Nelson

  ObservedBehavior:
  The .HLP entry for tcl_platform(user) (in tclvars), starts "Either
      windows, macintosh, or unix."  This appears to be a cut-and-paste error
      from the previous entry, tcl_platform(platform) which starts the same
      way and actually should have one of those values.



  Fixed in 8.2b3 docs. 
  -- 08/08/1999 hobbs


tkt_uuid: 230648ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 44. Generic Fonts
priority: 5 Medium
foundin: obsolete: 8.3.2
resolution: Invalid
title: entry widget incorrectly displays international characters
comment:
  Even though one specifies a cyrillic KOI8R font for the
  widget, and inserts a string which has the correct
  character codes, the display is gibberish.   On the
  other hand the string stored in the widget is correct
  as one can see by using 'get':

  example
   entry .jo -font \ -cronyx-fixed-medium-r-normal--20-200-75-75-c-100-koi8-r 
  .jo insert 0 "\302\325"
  pack .jo

  then the display will not show the characters at these
  positions in the font which has been specified.   This
  does work correctly in tcl/tk 8.0   
  [note the russian characters should look like 'by',
  not some A's with hats and squiggles..].  
  Does there exist a font/character combination that makes
  tcl/tk display Russian correctly in tcl/tk 8.3.2 ?  I 
  want the standard international KOI8 encoding not some MS windows specific encoding.

  wfs@math.utexas.edu

  thing..

    


tkt_uuid: 414173ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 63. Tk_Win Functions
priority: 5 Medium
foundin: obsolete: 8.4a2
resolution: Fixed
title: SafeTk with -use crashes wish
comment:
  Using safeTk with -use crashes Wish on Windows 95 and
  98.  Works fine on Linux.
  The problem does not occur when -use is not used.

  The following script exercises the bug.

  pack [frame .f]
  wm geom . 300x30
  pack .f -fill both -expand y
  set slave [safe::interpCreate]
  safe::loadTk $slave -use .f


  The seg fault occurs in Tk_GeometryRequest,
  where winPtr is NULL.  It appears that this is from
  containerPtr->parentPtr referenced in
  EmbedGeometryRequest which is NULL.  Perhaps
  window isn't mapped???


  (gdb) bt
  #0  0x556e00 in Tk_GeometryRequest (tkwin=0x0,
  reqWidth=258, reqHeight=489)
      at ./../generic/tkGeometry.c:154
  #1  0x58543c in EmbedGeometryRequest
  (containerPtr=0x5b1e6c8, width=258,
      height=489) at tkWinEmbed.c:444
  #2  0x585400 in TkWinEmbeddedEventProc (hwnd=0xc74,
  message=1025, wParam=258,
      lParam=489) at tkWinEmbed.c:400
  #3  0x542ce1 in TkWinChildProc (hwnd=0xc74,
  message=1025, wParam=258,
      lParam=489) at tkWinX.c:550
  #4  0xbff958f8 in _size_of_stack_reserve__ ()
  #5  0x54b621 in Tk_HandleEvent (eventPtr=0x34a04d0)
      at ./../generic/tkEvent.c:849
  #6  0x54bb63 in WindowEventProc (evPtr=0x34a04c8,
  flags=-1)
      at ./../generic/tkEvent.c:1199
  #7  0x6ae359 in Tcl_ServiceEvent (flags=-1) at
  ./../generic/tclNotify.c:607
  #8  0x6ae610 in Tcl_DoOneEvent (flags=-1) at
  ./../generic/tclNotify.c:846
  #9  0x581408 in Tk_UpdateObjCmd (clientData=0xb308d0,
  interp=0xb280c4, objc=1,
      objv=0xb3815c) at ./../generic/tkCmds.c:949
  #10 0x67e909 in TclExecuteByteCode (interp=0xb280c4,
  codePtr=0x5a8281c)
      at ./../generic/tclExecute.c:858
  #11 0x647d84 in Tcl_EvalObjEx (interp=0xb280c4,
  objPtr=0x3423a00, flags=0)
      at ./../generic/tclBasic.c:2837
  #12 0x67a7c3 in TclObjInterpProc (clientData=0x3458ae8,
  interp=0xb280c4,
      objc=5, objv=0xb38148) at
  ./../generic/tclProc.c:1014
  ---Type <return> to continue, or q <return> to quit---


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: 1164857fffffffffffffffffffffffffffffffff
type: Patch
status: Open
subsystem: 66. Aqua Window Operations
priority: 4
foundin: None
resolution: None
title: Tcl_Obj'ified version of MacWindowStyle plus extras
comment:
  This patch is a complete overhaul of the tk::unsupported::
  MacWindowStyle command to use newer Tcl_Obj APIs (in particular, 
  use of Tcl_GetIndexFromObj(Struct) cuts down the code 
  considerably). I simplified some of the option handling, so it may not 
  behave exactly as it did before, and needs a bit more testing. In 
  addition, I added in preliminary code to support drawer-style windows. 
  This code definitely doesn't work quite right yet (weird event handling 
  issues), but I won't have time to correct these for a little while, so I'm 
  uploading the patch as is in case anyone else wants to work on it. All 
  the drawer code is factored out into a separate (internal) function, so 
  it should be pretty simple to remove. There is also an extra window 
  class "drawer". Most of the drawer code is implemented as a new 
  subcommand to MacWindowStyle "drawer":

  MacWindowStyle drawer $dwin option ...

  where option is

  parent ?parent? -- set/get the drawer parent window
  side ?top/bottom/left/right? -- set/get the preferred/actual side
  offset ?{leading trailing}? -- set/get offsets (floats)
  close -- close the drawer
  open -- toggle the drawer open/closed

  These should only be called after the window actually exists (e.g. Tk 
  has entered the idle loop after creating the window). It won't error if 
  called before then, but will have no effect.

  As I said, there are issues with the drawer code. I can separate out 
  the rest of the patch, if wanted.


tkt_uuid: 220354ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 2
foundin: obsolete: 8.0p2
resolution: Fixed
title: On Windows, don't let the mouse timer interfere with a size/move
comment:
  OriginalBugID: 592 Bug
  Version: 8.0p2
  SubmitDate: '1998-05-21'
  LastModified: '1999-08-15'
  Severity: SER
  Status: Released
  Submitter: hershey
  ChangedBy: hobbs
  OS: All
  OSVersion: NA
  Machine: NA
  FixedDate: '1999-08-15'
  FixedInVersion: 8.2


  Tk8.0p2 on Windows uses a timer procedure to keep track of the mouse.

  This interacts badly with the Windows size or move commands.  A

  Windows size or move uses a Windows mouse capture.  If the Tk mouse

  timer fires, it will release the capture, which look bizarre.



  This does not normally affect Tk programs, since normally when a size

  or move command is started, the mouse is not actually inside the Tk

  window, and so Tk does not have a timer procedure running.  However,

  if you write C code to create a resize box inside your Tk window, and

  thus invoke the resizing from C, the Tk mouse timer may be running.



  The appended patch fixes this problem by turning off any pending mouse

  timer during a size or move operation.



  Tk8.1a2 appears to have the same problem.



  Ian Taylor

  ian@cygnus.com



  *** /5g/ian/tk8.0p2/win/tkWinPointer.c  Fri Oct 31 11:40:05 1997

  --- tkWinPointer.c      Wed Apr 15 14:59:42 1998

  *************** MouseTimerProc(clientData)

  *** 237,242 ****

  --- 237,267 ----

        GetCursorPos(&pos);

        Tk_PointerEvent(NULL, pos.x, pos.y);

    }

  + 

  + /*

  +  *----------------------------------------------------------------------

  +  *

  +  * TkWinCancelMouseTimer --

  +  *

  +  *    If the mouse timer is set, cancel it.

  +  *

  +  * Results:

  +  *    None.

  +  *

  +  * Side effects:

  +  *    May cancel the mouse timer.

  +  *

  +  *----------------------------------------------------------------------

  +  */

  + 

  + void

  + TkWinCancelMouseTimer()

  + {

  +     if (mouseTimerSet) {

  +       Tcl_DeleteTimerHandler(mouseTimer);

  +       mouseTimerSet = 0;

  +     }

  + }

    

    /*

     *----------------------------------------------------------------------

  *** /5g/ian/tk8.0p2/win/tkWinWm.c       Fri Oct 31 12:57:07 1997

  --- tkWinWm.c   Wed Apr 15 15:01:23 1998

  *************** WmProc(hwnd, message, wParam, lParam)

  *** 3929,3934 ****

  --- 3929,3942 ----

    

          case WM_ENTERSIZEMOVE:

              inMoveSize = 1;

  + 

  +           /*

  +            * Cancel any current mouse timer.  If the mouse timer

  +            * fires during the size/move mouse capture, it will

  +            * release the capture, which is wrong.

  +            */

  +           TkWinCancelMouseTimer();

  + 

              oldMode = Tcl_SetServiceMode(TCL_SERVICE_ALL);

              break;

    





  This patch was integrated sometime before 8.2.0. 
  -- 08/15/1999 hobbs


tkt_uuid: 220185ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 99. Other
priority: 1 Zero
foundin: obsolete: 8.1
resolution: Invalid
title: Tk8.1 strongly unstable with --enable-thread
comment:
  OriginalBugID: 1974 Bug
  Version: 8.1
  SubmitDate: '1999-05-04'
  LastModified: '1999-08-14'
  Severity: CRIT
  Status: Closed
  Submitter: pat
  ChangedBy: hobbs
  OS: Linux-Red Hat
  OSVersion: 2.2.1
  Machine: Other
  ClosedDate: '1999-08-14'


  Name:
  Eric Hassold

  Comments:
  We admit this description is not precise enough to be very helpful for
      Tcl/Tk developpers. It shoud be considered more as a "user feedback"
      than a "bug report" (we might investigate more deeply in the coming
      days/weeks). The question is "should thread-safety" still be considered
      as Beta ? has anyone else experiment such problem (maybe on others
      platforms) ? or are they any special rules to respect when linking with
      multi-threads enabled Tcl/Tk libraires, even if our app. is not (yet)
      multi-threaded ?

  ReproducibleScript:
  Not reproductible (random hang)

  ObservedBehavior:
  our Tcl/Tk/C application (about 100.000 lines of C, 20.000 of Tcl),
      compiled with thread-enabled Tcl/Tk 8.1 Final, hangs frequently, and
      randomly (that is, several runs gives errors not at the same moment).
      When it occurs, all windows frozen, so no stack trace available. Our
      application is *NOT* multi-threaded, and doesn't modify or redefine any
      of the core Tcl/Tk routines. It works fine with 8.0.X, and with 8.1
      Final compiled *without* --enable-thread



  Tk should not currently be considered "thread-safe".  Thread-safety
  work was concentrated on Tcl as that is used in server envs without
  Tk.  Tk thread-safety should be OK on Windows with 8.2.0, and we
  are working on it more for Unix in the future (there are a lot of
  underlying issues with X thread-safety). 
  -- 08/14/1999 hobbs


tkt_uuid: 590379ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 25. Built-in Bitmaps
priority: 5 Medium
foundin: obsolete: 8.4b2
resolution: Fixed
title: Tk_GetBitmapFromData not doc'd
comment:
  Tk_GetBitmapFromData() appears in the 

  .SH NAME

  section of GetBitmap.3, but it is not
  actually documented there.


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: 220065ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 09. [listbox]
priority: 1 Zero
foundin: obsolete: 8.3
resolution: Duplicate
title: listbox destroy crashes tcl/tk
comment:
  OriginalBugID: 4218 Bug
  Version: 8.3
  SubmitDate: '2000-02-22'
  LastModified: '2000-02-22'
  Severity: CRIT
  Status: Closed
  Submitter: techsupp
  ChangedBy: hobbs
  RelatedBugIDs: 4207
  OS: Windows NT
  Machine: Dell 300 P3
  ClosedDate: '2000-02-22'


  Name:
  Robert Embleton

  Extensions:
  none

  CustomShell:
  no modifications

  ReproducibleScript:
  from the wish console enter the following

  listbox .l -cursor arrow
  pack .l
  destroy .l

  ObservedBehavior:
  wish crashes attempting to read an illegal address


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: 1899664fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 76. Widget Tour
priority: 5 Medium
foundin: obsolete: 8.5.1
resolution: Fixed
title: Goldberg script fails on a second launch
comment:
  OS: WindowsXP Pro. SP2
  TclTk: ActiveTcl8.5.1.0.284069-win32-ix86-threaded.exe

  1) start the Tk Demo (widget.tcl)
  2) launch the demo: A celebration of Rube Goldberg
  3) close that demo window
  4) again, open the demo: A celebration of Rube Goldberg
  (without closing and reopening the main demo window)

  On the last step an error appears:
  ------------------------------
  can't set "S(speed)": invalid command name ".goldberg.start"
  invalid command name ".goldberg.start"
      while executing
  "$w.start  config -state $z([expr {$m != $::MGO}])"
      (procedure "ActiveGUI" line 7)
      invoked from within
  "ActiveGUI S speed w"
      (write trace on "S(S)")
      invoked from within
  "set S(speed) 5"
      (file "D:/UTIL/Tcl/demos/Tk8.5/goldberg.tcl" line 69)
      invoked from within
  "source D:/UTIL/Tcl/demos/Tk8.5/goldberg.tcl"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 [list source [file join $tk_demoDirectory $demo.tcl]]"
      (procedure "invoke" line 12)
      invoked from within
  "invoke [.t index {@149,478}]"
      (command bound to event)
  ------------------------------

  it seams that goldberg.tcl sets several "traces" and doesnot "remove" them on "destroying" the window

  I attach a modified demo file,
  with "trace remove ..." added
  It launches as many times as one wishes.


tkt_uuid: 220791ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 65. Generic Window Operations
priority: 5 Medium
foundin: obsolete: 8.0.3
resolution: None
title: Window gives false geometry information
comment:
  OriginalBugID: 1441 Bug
  Version: 8.0.3
  SubmitDate: '1999-03-04'
  LastModified: '2000-01-06'
  Severity: MED
  Status: Assigned
  Submitter: pat
  ChangedBy: hobbs
  OS: HP-UX
  OSVersion: B.10.20/A
  Machine: Other
  FixedInVersion: 8.3b1


  Name: Stephen Totten

  ReproducibleScript:
   /stephent $ wish
  % winfo geometry .
  200x200+120+120
  % wm geometry . 200x200+120+120
  % winfo geometry .
  200x200+120+120
  % wm geometry . 200x200+130+130
  % winfo geometry .
  200x200+138+160
  % winfo x .
  138
  % winfo y .
  160
  % winfo rootx .
  138
  % winfo rooty .
  160
  %

  ObservedBehavior:
  Window gives out bad geometry information, i.e. 200x200+138+160.

  DesiredBehavior:
  Window gives out correct geometry information, i.e. 200x200+130+130.

  Verified the screwy behavior, although it is partly due to
  decoration, although there is likely more involved. 
  -- 01/06/2000 hobbs


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: 1124198fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 21. [panedwindow]
priority: 9 Immediate
foundin: None
resolution: Fixed
title: panedwindow [Bugs 1161543,1054117,1010941,795869,690169]
comment:
  fixed: when pane is given a height or a width, the 
  other did not auto-size to fit internal windows.
      panedwindow .p -width 200
      frame .f1 -height 50 -bg blue
      .p add .f1
      pack .p -fill both -expand 1

  fixed: when a width is given to an internal window in 
  a horizontal pane (height for vertical), the internal 
  window doesn't auto-size its width to fit (default 
  stretch option is last).
      panedwindow .p -width 200 -height 200
      frame .f1 -width 50 -height 50 -bg blue
      .p add .f1
      pack .p -fill both -expand 1

  fixed: sash placement when compressed together at 
  edge of pane.

  fixed: calculation of stretch amount for internal 
  windows.
      panedwindow .p -width 200 -height 200
      frame .f1 -width 50 -bg red
      frame .f2 -width 50 -bg green
      frame .f3 -width 50 -bg blue
      .p add .f1 .f2 .f3
      pack .p -fill both -expand 1
  then
      .p paneconfigure .f2 -hide 1


  now that that works, lets look at the tests.

  split 24.29 into two tests, one with a dynamic sized 
  pane and one with a fixed size pane. Increased frame 
  widths to stop [wm minsize .] interferring (at least 
  on XP).

  24.30 - 24.33 needed fixed width panes to stop them 
  resizing when an internal window was hidden. Same 
  frame size adjustment as for 24.29.

  24.32 The last part of the result (ie 55 56) is not a 
  typo, pixels for stretching are distributed right to 
  left.


tkt_uuid: 220960ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 75. wish
priority: 5 Medium
foundin: obsolete: 8.3.2
resolution: None
title: wish process locks up explorer tool bar
comment:
  OriginalBugID: 6351 Bug
  Version: 8.3.2
  SubmitDate: '2000-10-09'
  LastModified: 
  Severity: SER
  Status: UnAssn
  Submitter: techsupp
  OS: Windows NT
  OSVersion: wish.exe  version 8.3.2
  Machine: Dell Dimention XPS, single CPU, NT4.0 pack 6


  Name:
  Jason Liu

  Extensions:
  N/A

  CustomShell:
  N/A

  Comments:
  Is there another option (such as command line argument) to fix this
      problem?

  ReproducibleScript:
  When running wish in background with the -nowindow option on NT4.0 (pack 6), if user press down the windows button(the button that has the MS windows icon on it) and then press key 'E' to start NT explorer, the Start button on the toolbar gets frozen, user cannot start other windows by clicking on the windows icon on the tool bar. The NT explorer.exe version is 4.7 or above. If user tries to start NT explorer by clicking Start|Programs|Windows NT Explorer, the same thing happens. If user kill the wish process from task manager, all the queued up commands get executed by NT. But, when wish is running in windows mode, everything works fine.

  ObservedBehavior:
  The result of locking up the NT windows Tool bar makes the user starting other applications difficult.

  DesiredBehavior:
  wish process, when running with -nowindow option, should not conflict with NT explorer.

  Patch:
  N/A

  PatchFiles:
  N/A


tkt_uuid: 578207ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Invalid
title: [tk_popup] makes insertion cursor h
comment:
  L.S.

  The appended script exercises the hanging of the
  insertion cursor when using [tk_popup] in combination
  with [grab] under Windows OS's.

  When the insertion cursor hangs, it can be made ustuck
  by posting the popup menu a second time. This "every
  second time" has also been mentioned in a previous bug
  report concerning tk_popup (nr. 220928). This could
  indicate a common bug source).

  See also my posting to c.l.t. on 1-july-2002.

  Erik Leunissen.


  Reproducible script:
  ====================

  # This script exercises a hanging insertion cursor when
  using
  # [tk_popup] under MS Windows OS.

  # This script displays two entry widgets.

  # The insertion cursor will hang at some occasions.
  # These occasions are not entirely predictable to me, so
  # it is possible that you need to repeat the recipe below
  # several times before it happens to you too.
  #
  # 1. enter some characters in one of the widgets
  # 2. Select some of them (using keybord or mouse).
  # 3. Press the right mouse button to post the popup menu.
  # 3. Cut or Copy some characters (I think it is irrelevant
  #    whether or what you select in the popup menu, as long
  #    as you click the left mouse button somewhere on
  the screen).
  # 4. Paste the selection into the other entry widget
  using you mouse
  #    (which will fail if the insertion cursor doesn't
  follow you mouse.)
  #
  # If the insertion cursor doesn't hang immediately,
  then repeat this
  # sequence several times, using a different entry for
  the first click.
  #
  # Hunch: some grab problem?
  #

  package require Tk

  foreach e {.e1 .e2} {
      pack [entry $e]
  }


  set PopupMenu [menu .popup -tearoff 0]
  $PopupMenu add command -label "Cut    "
  $PopupMenu add command -label "Copy   "
  $PopupMenu add command -label "Paste  "


  proc PostPopupMenu {w x y} {
      global PopupMenu

      $PopupMenu entryconfigure 0 -command [list event
  generate $w <<Cut>>]
      $PopupMenu entryconfigure 1 -command [list event
  generate $w <<Copy>>]
      $PopupMenu entryconfigure 2 -command [list event
  generate $w <<Paste>>]
      tk_popup $PopupMenu [expr {[winfo rootx $w]+$x}]
  [expr {[winfo rooty $w]+$y}]

  }

  bind Entry <3> {
      PostPopupMenu %W %x %y
  }

  grab .


  # End reproducible script.


tkt_uuid: 1041475fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 06. Canvas Postscript
priority: 8
foundin: obsolete: 8.5a2
resolution: Rejected
title: canvPs-3.1: long delay
comment:
  Test canvPs-3.1 still passes, but
  the command

      .c postscript -file bar.ps

  within it is now taking much longer
  than it ever has before, around
  30 *seconds* to complete.  Something
  must have recently changed to bog this
  way down.


tkt_uuid: 979239ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 41. Photo Images
priority: 9 Immediate
foundin: obsolete: 8.5a2
resolution: Fixed
title: program crash with PNG images
comment:
  Note first off:
  This bug report is cross posted to both the Img
  extension and the Tk toolkit. The reason for this is
  that I cannot determine whether the bug concerns only
  Tk, only Img, or both. A thread in c.l.t around
  23-Jul-2004 did not come up with a conclusion regarding
  the cause.

  Sincerely,

  Erik Leunissen
  ==============

  # The following script exercises problems with PNG images,
  # resulting in a program crash, leaving behind an error
  message
  # of the following format (XXX is a number that varies):
  # 
  #      X Error of failed request:  BadMatch (invalid
  parameter attributes)
  #      Major opcode of failed request:  73 (X_GetImage)
  #      Serial number of failed request:  XXX
  #      Current serial number in output stream:  XXX
  # 
  # - I used:
  #   - Linux (the problems did not occur under Windows)
  #   - Tcl/Tk 8.4.6
  #   - Img1.3
  #
  # - This script uses a label widget, but the crashes occur
  #   also when using buttons instead of labels.
  #
  # - You may need to set the width and height to some
  initial
  #   value, big enough to display the entire image
  #
  # - Choose one of the two crash attempts below
  #

  package require Img
  image create photo png -file ./Error.png
  pack [label .l -width 0 -height 0]


  # PNG CRASH #1
  # First insert the image, then fix size (-width or -height,
  # I show -width only) to a non-zero value too small to
  display
  # the entire image.
  .l configure -image png
  .l configure -width 2 ; # <-- crash occurs here


  # PNG CRASH #2
  # First fix size (width or height) to a non-zero value too
  # small to display the entire image; then insert the image.
  .l configure -width 2
  .l configure -image png ; # <-- crash occurs here

  # EOF


tkt_uuid: 532540ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 54. [console]
priority: 7 High
foundin: None
resolution: None
title: Normalize [console]
comment:
  On Windows and Mac, wish (not Tk!) includes a 
  [console] command for controlling a console to
  which it redirects Tcl's stdout and stderr channels.

  When [package require Tk] brings Tk into a tclsh,
  there is no [console] and there is no console.

  On Unix, there is no console and no [console].

  It is simple to add [console] to wish on Unix, by
  enabling the Tk_InitConsoleChannels in Tk_Main and
  adding a call to Tk_CreateConsoleWindow in Tcl_AppInit.
  However, this has the effect of losing access to the
  real standard channels -- a big loss on Unix.

  On Windows, with the makefile.vc, one can build a
  wishc.exe program that behaves more like wish on
  Unix.  No [console] and use of the "real" standard
  channels of a DOS console.

  Because of all these variants it is somewhat
  unpleasant to write code that tries to use [console],
  with [catch]es or [if $tcl_platform...] all over the
  place.

  A revisions that normalized the availability and
  behavior of [console] would be welcome.


tkt_uuid: 220701ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 36. [tk_chooseDirectory]
priority: 5 Medium
foundin: obsolete: 8.3.1
resolution: Fixed
title: tk_chooseDirectory fails to go to the rootdirectory with empty -initialdir.
comment:
  OriginalBugID: 4327 Bug
  Version: 8.3
  SubmitDate: '2000-03-06'
  LastModified: '2000-03-07'
  Severity: MED
  Status: Released
  Submitter: sven
  ChangedBy: ericm
  OS: All Unix
  FixedDate: '2000-03-07'
  FixedInVersion: 8.3.1


  Specify "" as the initial dir and try to get to the root directory /

  This is fixed -- specifying "" as an initialdir is now equivalent to specifying no initialdir which is equivalent to specifying an initialdir of [pwd].

  - eric

  -- 03/07/2000 ericm


tkt_uuid: 767009ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.5a0
resolution: Fixed
title: Unused variable warning in tkTextDisp.c
comment:
  gcc reports that there is an unused variable in the 
  function DisplayText in tkTextDisp.c

  ..../generic/tkTextDisp.c: In function `DisplayText':
  ..../generic/tkTextDisp.c:2247: warning: unused variable 
  `flags'

  This sort of thing often indicates some kind of problem, 
  but is sometimes just an indication that there's a 
  variable that is now simply surplus to requirements due 
  to code changes (or even an accidental check-in!)


tkt_uuid: 217791ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
priority: 1 Zero
resolution: Duplicate
title: Eliminate Tk_Uids
comment:
  OriginalBugID: 874 Bug
  Version: 8.0.3
  SubmitDate: '1998-11-25'
  LastModified: '1999-01-04'
  Severity: MED
  Status: Closed
  Submitter: pat
  ChangedBy: rjohnson
  RelatedBugIDs: 751
  OS: All
  OSVersion: NA
  Machine: NA
  FixedDate: '2000-10-25'
  FixedInVersion: NA
  ClosedDate: '1999-01-04'


  Date: Wed, 14 Oct 1998 17:17:14 -0700
  To: bugs@scriptics.com
  From: John Ousterhout <ouster@scriptics.com>
  Subject: Bug/RFE: eliminate Tk_Uids

  In his paper at the Tcl/Tk Conference, Kevin Kenny talked about the
  memory leaks in Tk caused by the Tk_Uid mechanism.  This mechanism
  was just a bad idea, and it should be removed from Tk.  I don't think
  it will be very hard to replace with something that eliminates the
  potential memory leaks, and I can give more details when the time
  comes.  I'd consider this a moderately high priority bug, maybe
  important enough to fix in 8.1 if time permits.

    -John-


tkt_uuid: 2830420fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 67. Unix Window Operations
priority: 5 Medium
foundin: obsolete: 8.6b1.1
resolution: Fixed
title: wm iconphoto under X11 works only for little endian machines
comment:
  OS: Solaris10 sparc

  tk8.6.b1.1 (CVS head)

  It looks like the byteorder for the _NET_WM_ICON property is wrong on big endian machines

  Suggested patch:

  (there may by more efficien ways)
  *** tkUnixWm.c.~1.71.~  Fri Apr  3 22:20:17 2009
  --- tkUnixWm.c  Fri Jul 31 17:55:35 2009
  ***************
  *** 2425,2435 ****
                          y*block.pitch + block.offset[2]);
                  A = *(block.pixelPtr + x*block.pixelSize +
                          y*block.pitch + block.offset[3]);
  !               pixelByte = (unsigned char *) &iconPropertyData[index];
  !               pixelByte[3] = A;
  !               pixelByte[2] = R;
  !               pixelByte[1] = G;
  !               pixelByte[0] = B;
                  index++;
              }
          }
  --- 2425,2437 ----
                          y*block.pitch + block.offset[2]);
                  A = *(block.pixelPtr + x*block.pixelSize +
                          y*block.pitch + block.offset[3]);
  !
  !                 /*
  !                  * Do not handoptimize the multiplications.
  !                  * Let the compiler do its job (think endianess)
  !                  */
  !                 iconPropertyData[index]= (((A*256)+R)*256+G)*256+B;
  !
                  index++;
              }
          }


tkt_uuid: 2948152fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 69. Events
priority: 9 Immediate
foundin: obsolete: 8.6b1.1
resolution: Duplicate
title: Tk Cocoa crashes when Option-e pressed
comment:
  Using Mac Cocoa Tk 8.6.0 Jan 8, 2010 source code Wish crashes when Option-e is pressed.  Also crashes when Option-n or Option-u pressed but not on Option-p or Option-w.  Note the key pressed has the Option modifier which is not the same as the Command modifier (apple key) that actives menu entries.  When the crashing keys are typed in a Mac Terminal the displayed characters are all diacriticals (accents that would normally appear over another character).  The non-crashing Option-p is the symbol pi and non-crashing Option-w is the greek uppercase sigma.  Looking at the Tk Mac source code it appears that the problem is from accessing the index 0 position of a string that has no characters.  The attached Mac crash dump appears to be wrong in identifying which Tk routine was last called, but the Mac system calls where the crash occurred are probably correct.

  Pressing Option-e in the Wish window produces a crash and the following output:

  $ Wish.app/Contents/MacOS/Wish
  % 2010-02-08 15:31:49.607 Wish[68221:903] An uncaught exception was raised
  2010-02-08 15:31:49.609 Wish[68221:903] *** -[NSCFString characterAtIndex:]: Range or index out of bounds
  2010-02-08 15:31:49.609 Wish[68221:903] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFString characterAtIndex:]: Range or index out of bounds'
  *** Call stack at first throw:
  (
  0   CoreFoundation                      0x00007fff8397e444 __exceptionPreprocess + 180
  1   libobjc.A.dylib                     0x00007fff87dfe0f3 objc_exception_throw + 45
  2   CoreFoundation                      0x00007fff8397e267 +[NSException raise:format:arguments:] + 103
  3   CoreFoundation                      0x00007fff8397e1f4 +[NSException raise:format:] + 148
  4   Foundation                          0x00007fff889d13d5 -[NSCFString characterAtIndex:] + 97
  5   Tk                                  0x00000001000c4e9e Tk_SetCaretPos + 685
  6   Tk                                  0x00000001000cb3c8 Tk_MacOSXSetupTkNotifier + 699
  7   Tcl                                 0x00000001001dd6ea Tcl_DoOneEvent + 297
  8   Tk                                  0x000000010001d5e4 Tk_MainLoop + 24
  9   Tk                                  0x000000010002b0ce Tk_MainEx + 1491
  10  Wish                                0x00000001000054d5 0x0 + 4294989013
  11  Wish                                0x0000000100005434 0x0 + 4294988852
  )
  terminate called after throwing an instance of 'NSException'
  Abort trap


tkt_uuid: 1873607fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 12. Unix Menus
priority: 5 Medium
foundin: None
resolution: Invalid
title: cascade menu does not work on linux or solaris
comment:
  when you make a popup menu, and add a cascade menu, the cascade menu items command does not get called when you click on them they even don't get activated when you move the mouse over them, the focus is always with the main menu, I'm using Tcl/Tk 8.5.0.

  menu .sub
  .sub add command -command "puts sub_menu" -label subItem
  menu .top
  .top add command -command "puts top_menu" -label topItem
  .top add cascade -label sub -menu .sub
  tk_popup .top 100 100


tkt_uuid: 800139ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 74. Application Embedding
priority: 5 Medium
foundin: TIP Implementation
resolution: Accepted
title: TIP 137: -encoding option for wish, etc.
comment:
  Here's a patch that implements
  the Tk portion of TIP 137 (as
  modified by TIP 151).  It adds
  a -encoding command line
  option to wish, and to other
  applications that use
  Tk_MainEx() as their main 
  procedure.


tkt_uuid: 3580159fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 03. [*button] and [label]
priority: 5 Medium
foundin: obsolete: 8.5.12
resolution: Wont Fix
title: indicatoron ignored on MacOS X
comment:
  The indicatoron option is ignored for checkbuttons on MacOS X. For example:

  checkbutton .b -text "Foo" -indicatoron 0
  pack .b

  This behaves correctly on linux (showing no checkbox) but on MacOS X the checkbox is displayed regardless of the value of indicatoron.


tkt_uuid: 2981253fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 17. [spinbox]
priority: 5 Medium
foundin: obsolete: 8.5.8
resolution: None
title: spinbox button frozen in case of repeated depressions
comment:
  When one depresses +/- buttons in a spinbox fast (say 2Hz) multiple times, the spinbox value is correctly updated, but the buttons are frozen and don't get visually depressed.


tkt_uuid: 464451ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 13. Win Menus
priority: 6
foundin: obsolete: 8.4a5
resolution: Fixed
title: '$menu post' posts menu in wrong position.
comment:
  Under some circumstances, a tk_optionMenu can post its 
  menu largely offscreen.  I've observed the problem 
  both with single and multi-column menus, but have only 
  been able to make a simple, reproducible example with 
  multi-column menus.

  The following script shows how to achieve this:

  >wish84

  % eval tk_optionMenu .om enc [lsort [encoding names]]
  .om.menu
  % pack .om
  % .om.menu entryconfigure 45 -columnbreak 1

  Now, drag '.' to somewhere close to the top of the 
  screen (my screen is 780 pixels tall, for reference), 
  or at least in the top quarter.

  Now, use the option menu and select an item towards 
  the end of the menu (e.g. "unicode" in the menu 
  constructed above).  

  Now try using the option menu a second time.  It posts 
  almost completely off the bottom of the screen, 
  nowhere near the menu-button itself!

  (The above works on Win2000 sp2, at least, but the 
  problem appears to be in tk's 'menu.tcl' file which 
  controls menu posting)


tkt_uuid: 220132ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 07. [entry]
priority: 1 Zero
foundin: obsolete: 8.0.4
resolution: Invalid
title: upvar 2 (!) needed for traces on entry-textvariable
comment:
  OriginalBugID: 1383 Bug
  Version: 8.0.4
  SubmitDate: '1999-03-02'
  LastModified: '2000-03-02'
  Severity: SER
  Status: Closed
  Submitter: pat
  ChangedBy: hobbs
  OS: Solaris
  Machine: Other
  ClosedDate: '2000-03-02'


  Name:
  Alexandre FERRIEUX

  ReproducibleScript:
  proc handler {name index opt} {
  upvar 2 $name loc ;# <-- fails with upvar 1 !!!
  puts BEGIN
  puts "$name=$loc" ;# <-- errors here are caught !!!
  puts END
  }
  entry .e -textvariable x
  trace variable x w handler
  pack .e
  # type in the entry...

  ObservedBehavior:
  Bug 1: "upvar 2" is needed in this case (trace of a -textvariable), while "upvar 1" is required (and documented) in all other cases.

  Bug 2: errors raised within the handler are caught and ignored

  DesiredBehavior:
  obvious



  This is verified.  Since textvars are always required to be vars
  reached at the global scope, the work-around would be to use #0
  for the upvar level. 
  -- 08/07/1999 hobbs
  A little bit of interactive debugging solved this one (using
  tkcon's idebug).  The level is 2 for newer versions of Tcl
  because the handler is being called from tkEntryInsert (before
  the insert was done directly in the binding).  So one should
  always use #0, as for entry widgets they only work with global
  vars anyway. 
  -- 03/02/2000 hobbs


tkt_uuid: 682183ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 09. [listbox]
priority: 5 Medium
foundin: None
resolution: None
title: Support for quick positioning by typing first letter
comment:
  A feature that would make life much easier with
  listboxes with long lists is that it scrolls to the
  first or next item which starts with the letter or
  character that you typed. 

  It is a common enough feature in many Windows
  applications


tkt_uuid: 545159ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 05. Canvas Items
priority: 5 Medium
foundin: None
resolution: Wont Fix
title: canvas to photo
comment:
  I'de like to be able to dump the contents of a canvas to a 
  photo image, and then use the photo 'write' subcommand
  to save to disk, this would open up many animation type 
  applications in using TK, or maybe just add a 'write' 
  subcommand to the canvas?


tkt_uuid: 3608904fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 11. Aqua Menus
priority: 5 Medium
foundin: current: 8.6.0
resolution: Wont Fix
title: Aqua/Cocoa: deadlock when a menu accelerator posts a dialog
comment:
  On the Mac platform, the Cocoa version of Tk has the following bug.
  (Found on Snow Leopard 10.8.3 with Tk 8.5.13 or 8.6.0.)

  When a menu item is invoked by its keyboard accelerator, and that item posts a dialog, a deadlock ensues.  This appears to have something to do with Cocoa "flashing" the menu to indicate use of the accelerator: if the -accelerator option is not used, but the binding to the keyboard is defined (even with "$menu invoke $item"), there is no problem.  However, as a workaround this is unsatisfactory, because the accelerator is no longer indicated alongside the menu item.

  Another workaround - the menu command can be constructed to post the dialog after a delay.  This is unsatisfactory, because no delay can be guaranteed to be long enough to avoid the bug.

  The file is a script that demonstrates the bug.


tkt_uuid: 707102ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 75. wish
priority: 5 Medium
foundin: obsolete: 8.4.2
resolution: None
title: exec rsh doens't work under wish but does under tclsh
comment:
  The following command hangs under wish but not tclsh:

  puts [exec rsh hostname /bin/ls / < /dev/null ]

  This with 8.4.2.


tkt_uuid: 1712098fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 84. Unix Build
priority: 7 High
severity: Minor
foundin: current: 8.6.0
resolution: None
title: Tk still needs Tcl source distro
comment:
  It appears that Tk will not
  compile because it can't
  find tcl.h if the Tcl source
  distribution has been moved
  or deleted.

  This is true even if we
  configure Tk with the
  --with-tcl= option pointing
  to the installed tclConfig.sh
  file, and even though, IIUC,
  steps have been taken to be
  sure that Tcl now installs
  its private headers.

  The headers are installed,
  tclConfig.sh notes where
  they are.  Tk ought to be
  able to build in this environment.


tkt_uuid: 651396ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 85. Win Build
priority: 5 Medium
foundin: obsolete: 8.4.1
resolution: Fixed
title: tktest build fails with makefile.vc
comment:
  tktest will not currently compile with makefile.vc 
  on Windows.

  *** Compiler has 'Optimizations'
  *** Compiler has 'Pentium 0x0f fix'
  *** Linker has 'Win98 alignment problem'
  *** Doing threads
  *** Doing symbols
  *** Doing profile
  *** Doing memdbg
  *** Doing compdbg
  *** Intermediate directory will 
  be '.\Debug\tk_ThreadedDynamic'
  *** Output directory will be '.\Debug'
  *** Suffix for binaries will be 'td'
  *** Optional defines are '-DTCL_MEM_DEBUG -
  DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS -
  DTCL_THREADS=1'
  *** Dependency rules are not being used.

  ... a lot of files are compiled successfully ...

          cl -Z7 -Od -WX -nologo -c -W3 -YX -
  Fp.\Debug\tk_ThreadedDynamic\ -QI0f -
  MDd -I"..\win" -I"..\generic" -I"..\bitmaps" -
  I"..\xlib"  -I "..\..\tcl\win" -I
  "..\..\tcl\generic" -DTCL_MEM_DEBUG -
  DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS -
  DTC
  L_THREADS=1 -
  Fo.\Debug\tk_ThreadedDynamic\tkWinTest.obj ..\w
  in\tkWinTest.c
  tkWinTest.c

  NMAKE : fatal error U1073: don't know how to 
  make '\tclThreadTest.obj'
  Stop.


tkt_uuid: 220851ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 5 Medium
foundin: obsolete: 8.1
resolution: Out of Date
title: no focus on entry fields in container on NT
comment:
  OriginalBugID: 2262 Bug
  Version: 8.1
  SubmitDate: '1999-06-21'
  LastModified: '2000-01-27'
  Severity: SER
  Status: UnAssn
  Submitter: techsupp
  ChangedBy: hobbs
  RelatedBugIDs: 3798
  OS: Windows NT
  Machine: X86


  Name:
  Christian Eva

  ReproducibleScript:
  On Linux it is no problem to have an separate tk application running in a
  container frame. On windows we can run the application, button events work
  but we can not get the focus on entry fields - i.e. no possibility to enter
  caracters.

  script-1 (start wish81 and source the script, it will display the window-id):
  # container test, container frame

  set wcon [frame .con -container 1]
  pack $wcon  -anchor nw -expand yes -fill both
  set wid [winfo id $wcon]

  puts "container $wcon established, wid=$wid"

  Script-2 (start wish81 -use window-id) and source script:
  # container test, entry field

  catch {destroy .f}
  frame .f
  pack .f  -anchor nw -expand yes -fill both

  set vtext initial
  set went [entry .f.ent -bg pink -width 20 -textvariable vtext]
  pack $went

  puts "Entry $went established"

  set wfocus [focus]
  set wgrab [grab current .]

  puts "Focus=$wfocus, Grab=$wgrab"

  tkwait visibility $went
  focus $went
  set wfocus [focus]
  grab $went
  set wgrab [grab current .]
  puts "focus=$wfocus, grab=$wgrab, waiting ..."
  tkwait var vtext
  puts "vtext=$vtext"
   
  focus -force $went
  set wfocus [focus]
  set wgrab [grab current .]
  puts "focus -force=$wfocus, grab=$wgrab, waiting ..."
  tkwait var vtext
  puts "vtext=$vtext"

  focus -force $went
  grab -global $went
  set wfocus [focus]
  set wgrab [grab current .]

  puts "focus=$wfocus, global grab=$wgrab, waiting ..."
  tkwait var vtext
  puts "vtext=$vtext"
  grab release $went


tkt_uuid: 1815161fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.5b1
resolution: None
title: .text count -ypixels wrong until widget is managed
comment:
  Doing [.text count -update -ypixels 1.0 end] returns incorrect results until the widget is first managed by a geometry manager.

  Here's the result of an interactive session:

  (tmp) 49 % text .t -width 20 -height 4
  .t
  (tmp) 50 % .t insert end "hello, world\n"
  (tmp) 51 % .t count -update -ypixels 1.0 end
  169
  (tmp) 52 % pack .t
  (tmp) 53 % .t count -update -ypixels 1.0 end
  26

  Even with an intervening "update" between lines 50 and 51, the result is the same.

  There's no mention in the man pages that the widget must first be managed by a geometry manager before the count command will work. To the contrary, it implies that -update guarantees the value will be correct. 


tkt_uuid: 220736ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 2
foundin: obsolete: 8.3.1
resolution: Fixed
title: proj.test causes wish to crash on windows
comment:
  OriginalBugID: 5438 Bug
  Version: 8.3.1
  SubmitDate: '2000-05-10'
  LastModified: '2000-05-12'
  Severity: MED
  Status: Released
  Submitter: wart
  ChangedBy: hobbs
  OS: Windows NT
  FixedDate: '2000-05-12'
  FixedInVersion: 8.4a1
  ClosedDate: '2000-05-11'


  The tcldebugger test suite is run as part of nightly builds.  I consistenly see the proj.test cause wish to crash (the windows equivalent of a core dump).  This does not happen when run with a Debug build, only with a Release build.

  Steps to reproduce:

  Go to a nightly test area:
    % cd /home/build/WS/ws-happybox-20000507-2300/connect2.0/xmlserver/win32-ix86/Release
  Run the tcldebugger tests proj-14.5 and proj-14.6:
    % make tcldebugger-test TCLTESTARGS="-file proj.test -match proj-4.[56]"

  Result:

  A windows dialog pops up indication that wish has crashed.

  Expected result:

  Tests pass with no problems.

  It's interesting to note that the tests pass when run individually, but when both proj-4.5 and proj-4.6 are run together, wish crashes.



  Additional note:  This also happens when running the tcldebugger tests from a TclPro build.

  Mitch has also noticed a similar problem with his tclide post.test tests.

  --Mike
  --
  This turned out to be timing sensitive, and was caused by the
  tkWinWm.c:RaiseWinWhenIdle not accounting for the TK_DONT_DESTROY_WINDOW
  flag in addition to TK_ALREADY_DEAD.  This will go into 8.4a1, but it
  is also on the core-8-3-1-branch tag for Tk. 
  -- 05/12/2000 hobbs


tkt_uuid: 220592ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 2
foundin: obsolete: 8.2
resolution: Fixed
title: Tcl/Tk Wish crashes
comment:
  OriginalBugID: 2687 Bug
  Version: 8.2
  SubmitDate: '1999-09-01'
  LastModified: '1999-09-10'
  Severity: CRIT
  Status: Released
  Submitter: techsupp
  ChangedBy: hobbs
  OS: Macintosh
  OSVersion: 7.5.5
  Machine: Power PC
  FixedDate: '1999-09-10'


  Name:
  Paul Whittington

  Extensions:
  Standard binary install from www.scriptics.com

  CustomShell:
  None

  ReproducibleScript:
  We've got a PowerMac 7600 with 64Mb running OS 7.5.5.
      
      The shell will run but Wish crashes.



  This is a known Mac problem, having to do with a regexp that
  causes a stack overflow.  Jim fixed this by increasing the
  alloted stack size when recompiling the sources.  We should
  also look at making the regexp more efficient. 
  -- 09/10/1999 hobbs


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: 220528ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 2
foundin: obsolete: 8.2
resolution: Fixed
title: &quot;wm state .&quot; under Windows has undocumented behavior
comment:
  OriginalBugID: 2077 Bug
  Version: 8.0.5
  SubmitDate: '1999-05-14'
  LastModified: '2000-01-06'
  Severity: MED
  Status: Released
  Submitter: pat
  ChangedBy: hobbs
  OS: Windows 95
  Machine: X86
  FixedDate: '2000-01-06'
  FixedInVersion: 8.3b2


  Name:
  Geoff Pike

  ReproducibleScript:
  I have consulted the Tk man pages for 8.0 and 8.1 (wm.n) and I have
      searched
      Scriptics site and comp.lang.tcl, to no avail.  I am wondering what
      the deal is with "wm state" on maximized windows under Microsoft
      Windows.
      It seems to report "zoomed," an undocumented behavior.  I am also
      wondering how to put a window into the zoomed state.
      
      Finally, a bug in "wm deiconify $w".  It should not change a window out
      of the
      zoomed state.  (To recreate the behavior, start wish, maximize it, and
      do "wm deiconify .".)



  We recognize the zoomed state, but currently do not support it (there
  is no equiv on Unix).  Needs to be examined further. 
  -- 08/14/1999 hobbs
  zoom state is the maximized state, and proper support for it has
  been added in 8.3b2.  The second bug mentioned has also been fixed. 
  -- 01/06/2000 hobbs


tkt_uuid: 968725ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 05. Canvas Items
priority: 5 Medium
foundin: None
resolution: Fixed
title: Patch for anti-aliasing problem with canvas text objects
comment:
  I have discovered a problem with canvas text objects
  that have the same background and selection background
  colors. The anti-aliasing for the rendered font is a
  mixture of the normal text foreground and the
  selected text foreground. Attached to this bug report
  is a sample script showing the problem, a small before
  and after screen cap showing the problem and the fix
  and the patch itself.


tkt_uuid: 1630254fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 18. [text]
priority: 7 High
severity: Minor
foundin: obsolete: 8.5a6
resolution: Fixed
title: problem configuring -startline in a peer
comment:
  Configure a peer to have -startline == -endline as below, it will show no lines. Then setting -startline to the empty string doesn't seem to have any effect on the lines displayed.


  pack [text .t] -side top -pady {0 6}
  .t insert end "1\n2\n3\n"
  pack [.t peer create .peer -startline 2 -endline 2] -side top

  Now try clearing -startline; the display should show us line 1:

  .peer configure -startline {}


tkt_uuid: 1731355fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 88. Themed Tk
priority: 5 Medium
foundin: obsolete: 8.4.15
resolution: None
title: tile display bug in TkAqua 8.4.15 preview
comment:
  In the TkAqua-8.4.15-preview (standalone) version tile-0.8.0 elements are not displayed properly. Sometimes it randomly appears correctly. But mostly just black boxes or boxes with random patterns are displayed.


tkt_uuid: 220531ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 52. [clipboard]
priority: 2
foundin: None
resolution: Fixed
title: clipboard command enhancement
comment:
  OriginalBugID: 2159 RFE
  Version: 8.0.5
  SubmitDate: '1999-06-03'
  LastModified: '1999-09-18'
  Severity: SER
  Status: Released
  Submitter: techsupp
  ChangedBy: hobbs
  OS: Windows NT
  Machine: X86
  FixedDate: '1999-09-18'
  FixedInVersion: 8.2


  Name:
  Michael S. Schliephake

  DesiredBehavior:
  Actual situation: Upon exit TkpCloseDisplay() clears the clipboard data
      without rendering them so that no other program is able to paste. If
      another program had the ownership during the runtime of the
      Tk-application the data were rendered and can be pasted after
      Tk-program-exit too.
      
      Proposal: The behaviour is in principal accepatable, this avoids large
      amounts of unused data in the clipboard. But even in Windows the use of
      the clipboard is a very common practice - ranging from words of simple
      entries to whole documents.
      So I would create new subcommand
      "clipboard permanent" or so. This command had to do the transfer of the
      data to the clipboard and detach the ownership of the data in the
      Tk-data structure. Then the data would not be deleted upon exit. And,
      the permanent placing would be under control of the programmer, so he
      can selectively use ist, when the mechanism should be used to transfer
      data into other applications.



  In 8.2.0, Tcl will copy any data that was set to be copied
  before exiting completely.  If I select data in a text widget,
  do ^C, and then close the app, I can still paste that data into
  Netscape (or other Windows app). 
  -- 09/18/1999 hobbs


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: 592096ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 84. Unix Build
priority: 5 Medium
foundin: obsolete: 8.4b2
resolution: Remind
title: Tk requires same build setup as Tcl
comment:
  Platform: SPARC Solaris 2.6.
  Sun's C compiler, version WorkShop 6 update 2 C 5.3
  Patch 111679-08 2002/05/09

  On Aug 7, I downloaded a fresh CVS snapshot of tk from
  the ActiveState ftp site.

  I configured using

  $PWD/configure --prefix=/usr/tcl84 --enable-symbols
  --enable-shared

  I then did a make and got this error:

  /usr/ccs/bin/ld -G -z text -o libtk8.4g.so  tk3d.o
  tkArgv.o tkAtom.o tkBind.o tk
  Bitmap.o tkClipboard.o tkCmds.o tkColor.o tkConfig.o
  tkConsole.o tkCursor.o tkEr
  ror.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 tkUnix.o
  tkUnix3d.o tkUnixButton.o tk
  UnixColor.o tkUnixConfig.o tkUnixCursor.o tkUnixDraw.o
  tkUnixEmbed.o tkUnixEvent
  .o tkUnixFocus.o tkUnixFont.o tkUnixInit.o tkUnixKey.o
  tkUnixMenu.o tkUnixMenubu
  .o tkUnixScale.o tkUnixScrlbr.o tkUnixSelect.o
  tkUnixSend.o tkUnixWm.o tkUnixXId
  .o tkStubInit.o tkStubLib.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 tkCanv
  Ps.o tkCanvText.o tkCanvUtil.o tkCanvWind.o
  tkRectOval.o tkTrig.o tkImage.o tkIm
  gBmap.o tkImgGIF.o tkImgPPM.o tkImgPhoto.o tkText.o
  tkTextBTree.o tkTextDisp.o t
  kTextImage.o tkTextIndex.o tkTextMark.o tkTextTag.o
  tkTextWind.o -lsocket -lnsl 
  -L/usr/openwin/lib -lX11 -ldl -lm
  -L/vol/tclsrcsol/tcl84/tcl/unix -ltclstub8.4g 
  -Wl,-R,/usr/tcl84/lib:/usr/openwin/lib
  /usr/ccs/bin/ld: illegal option -- W
  usage: ld
  [-abc:d:e:f:h:il:mo:p:rstu:z:B:D:F:GI:L:M:N:P:Q:R:S:VY:]
  file(s)
          [-a]            create an absolute file
          [-b]            do not do special PIC
  relocations in a.out
          [-c file]       record configuration `file'
          [-d y|n]        operate in dynamic|static mode
          [-e sym]        use `sym' as entry point address
          [-f name]       specify library for which this
  file is an auxiliary
                          filter

  etc.

  Note that the previous version of Tk that I have been
  building was using -R directory rather than
  -Wl,-R,directory


tkt_uuid: 2100553fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 82. X11 Emulation
priority: 5 Medium
foundin: obsolete: 8.5.2
resolution: None
title: Panic in ImgPhotoGet
comment:
  Windows users of an application I have written report that the application sometimes crashes with the following message: 
     Fatal Error in Wish
     ImgPhotoGet couldn't find visual for window

  A common factor appears to be that the users experiencing the problem all use windows remote desktop connection form one or more machines to connect to the machine running the application.

  Sources on the internet point the finger to changes in color depth as the cause of the error. Also according to Donal Fellows on c.l.t: "Tk-on-Win assumes — wrongly — that the display depth doesn't change (...) Once that assumption is fixed, the photo image code will just work as that already knows in itself how to handle different visuals/colormaps."

  The problem was seen on Windows XP with Tk 8.5.2.


tkt_uuid: 650291ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 99. Other
priority: 6
foundin: obsolete: 8.4.1
resolution: Out of Date
title: Report of tests failures
comment:
  Hi,

  I just compiled fine tk8.4.1 with gcc 3.2,
  but during the make test, some tests failed :

  $ gmake test
  TCL_LIBRARY=/tmp/tcl8.4.1/library; export TCL_LIBRARY; \
  TK_LIBRARY=/tmp/tk8.4.1/library; export TK_LIBRARY; \
  ./tktest /tmp/tk8.4.1/unix/../tests/all.tcl -geometry
  +0+0 \
   
  Tests running in interp:  /tmp/tk8.4.1/unix/tktest
  Tests located in:  /tmp/tk8.4.1/tests
  Tests running in:  /tmp/tk8.4.1/unix
  Temporary files stored in /tmp/tk8.4.1/unix
  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 Sun Dec 08 04:54:22 CET 2002
  bell.test
  Bell should ring now ...
  bgerror.test
  bind.test

  ==== bind-22.10 HandleEventGenerate FAILED
  ==== Contents of test case:

      setup
      bind .b.f <Key> {set x "%s %K"}
      set x {}
      event gen .b.f <Control-Key-1>
      set x

  ---- Result was:
  5 1
  ---- Result should have been (exact matching):
  4 1
  ==== bind-22.10 FAILED

  bitmap.test
  border.test
  button.test
  canvImg.test
  canvPs.test
  canvRect.test
  canvText.test
  canvWind.test
  canvas.test
  choosedir.test
  bad window path name ".__tk_choosedir.f2.ok"
      while executing
  "winfo ismapped $button"
      (procedure "SendButtonPress" line 11)
      invoked from within
  "SendButtonPress $parent ok mouse"
      (procedure "EnterDirsByKey" line 14)
      invoked from within
  "EnterDirsByKey . {/tmp/tk8.4.1/unix/non-existant
  /tmp/tk8.4.1/unix/choosedirTest
  /tmp/tk8.4.1/unix/choosedirTest}"
      ("after" script)


  and there it seems to timeout... I had to do a "Ctrl-C"...



  It would be great if you could help me with this !

  Best regards,

  Pierre.


tkt_uuid: 3348994fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 11. Aqua Menus
priority: 7 High
foundin: obsolete: 8.6b1.1
resolution: None
title: Freeze for Dialogs Created from Shortcut
comment:
  When creating a dialog box from a command key shortcut Tcl/Tk Aqua freezes up.
  This issue appears in the latest Active Tcl/Tk version for Mac; I think it also happens in the latest 8.5.9.2 build available.

  This is related to the bug "https://sourceforge.net/tracker/?func=detail&atid=112997&aid=3285355&group_id=12997" (this bug appears when an error message has to be displayed, with very similar consequences: a freeze and a white rectangle on the screen where the dialog should be).

  I have cut down the example as much as possible. It works flawlessly on other platforms and on Mac using Active Tcl 8.4 and the older 8.5 builds.

  (Basically this issue means that currently there is *no* Active Tcl build for Mac that works with our application; almost every command-key shortcut causes Tcl/Tk to freeze.)


tkt_uuid: 1024364fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 8
foundin: None
resolution: Accepted
title: option -use does not work properly under Windows
comment:
  I was exploring the possibility to embed a Tk window in
  a window owned by another program and so I first tried
  the following script:

  exec wish -use [winfo id .] &

  in the console window under Windows 98 and Windows XP
  (using 8.4.1 repsectively 8.4.5).

  This causes a crash (a messagebox with an application
  error comes up - memory referenced at some invalid
  address or a message of similar wordings)


tkt_uuid: 582381ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 68. Win Window Operations
priority: 5 Medium
foundin: obsolete: 8.4b2
resolution: None
title: win wm bugs
comment:
  Many of the tests in unixWm.test now run on 
  Windows.  This is good, since many of those tests 
  are really cross-platform tests.  However, many of 
  those tests do actually fail.  I fixed a couple of 
  simple ones in cvs, but the rest are beyond me:

  unixWm.test

  ==== unixWm-9.4 TkWmMapWindow procedure, 
  icon windows FAILED
  ==== Contents of test case:

      catch {destroy .t}
      sleep 500
      toplevel .t -width 100 -height 50 -bg blue
      wm iconwindow . .t
      update
      set result [winfo ismapped .t]

  ---- Result was:
  1
  ---- Result should have been (exact matching):
  0
  ==== unixWm-9.4 FAILED

  ==== unixWm-27.6 Tk_WmCmd 
  procedure, "iconwindow" option, changing icons 
  FAILED
  ==== Contents of test case:

      catch {destroy .icon}
      catch {destroy .icon2}
      toplevel .icon -width 50 -height 50 -bg green
      toplevel .icon2 -width 50 -height 50 -bg red
      set result {}
      wm iconwindow .t .icon
      lappend result [wm state .icon] [wm state .icon2]
      wm iconwindow .t .icon2
      lappend result [wm state .icon] [wm state .icon2]
      destroy .icon .icon2
      set result

  ---- Result was:
  icon normal normal icon
  ---- Result should have been (exact matching):
  icon normal withdrawn icon
  ==== unixWm-27.6 FAILED


  ==== unixWm-27.7 Tk_WmCmd 
  procedure, "iconwindow" option, withdrawing icon 
  FAILE
  D
  ==== Contents of test case:

      catch {destroy .icon}
      toplevel .icon -width 50 -height 50 -bg green
      wm geometry .icon +0+0
      update
      set result {}
      lappend result [wm state .icon] [winfo 
  viewable .icon]
      wm iconwindow .t .icon
      lappend result [wm state .icon] [winfo 
  viewable .icon]
      destroy .icon
      set result

  ---- Result was:
  couldn't send withdraw message to window 
  manager
  ---- Result should have been (exact matching):
  normal 1 icon 0
  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ==== unixWm-27.7 FAILED


  ==== unixWm-42.1 WrapperEventProc procedure, 
  map and unmap events FAILED
  ==== Contents of test case:

      catch {destroy .t}
      toplevel .t -width 400 -height 150
      wm geometry .t +0+0
      tkwait visibility .t
      set result {}
      bind .t <Map> {set x "mapped"}
      bind .t <Unmap> {set x "unmapped"}
      set x {no event}
      wm iconify .t
      lappend result $x [winfo ismapped .t]
      set x {no event}
      wm deiconify .t
      lappend result $x [winfo ismapped .t]

  ---- Result was:
  unmapped 0 {no event} 1
  ---- Result should have been (exact matching):
  unmapped 0 mapped 1
  ==== unixWm-42.1 FAILED


  ==== unixWm-48.1 ParseGeometry procedure 
  FAILED
  ==== Contents of test case:

      wm geometry .t =100x120
      update
      list [winfo width .t] [winfo height .t]

  ---- Result was:
  104 120
  ---- Result should have been (exact matching):
  100 120
  ==== unixWm-48.1 FAILED


  ==== unixWm-49.1 Tk_GetRootCoords procedure 
  FAILED
  ==== Contents of test case:

      catch {destroy .t}
      toplevel .t -width 300 -height 200
      frame .t.f -width 150 -height 100 -bd 2 -relief 
  raised
      place .t.f -x 150 -y 120
      frame .t.f.f -width 20 -height 20 -bd 2 -relief 
  raised
      place .t.f.f -x 10 -y 20
      wm overrideredirect .t 1
      wm geometry .t +40+50
      tkwait visibility .t
      list [winfo rootx .t.f.f] [winfo rooty .t.f.f]

  ---- Result was:
  0 0
  ---- Result should have been (exact matching):
  202 192
  ==== unixWm-49.1 FAILED


  ==== unixWm-50.1 Tk_CoordsToWindow 
  procedure, finding a toplevel, x-coords FAILE
  D
  ==== 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 [e
  xpr $x - 1] [expr $y + 250]]  [winfo containing $x 
  [expr $y + 250]]  [winfo cont
  aining [expr $x + 99] [expr $y + 250]]  [winfo 
  containing [expr $x + 100] [expr
  $y + 250]]  [winfo containing [expr $x + 199] [expr 
  $y + 250]]  [winfo containin
  g [expr $x + 200] [expr $y + 250]]  [winfo 
  containing [expr $x + 220] [expr $y +
   250]]

  ---- Result was:
  {} {} {} {} {} {} {} {}
  ---- Result should have been (exact matching):
  {} {} .t {} .t2 .t2 {} .t
  ==== unixWm-50.1 FAILED


  ==== unixWm-50.2 Tk_CoordsToWindow 
  procedure, finding a toplevel, y-coords and o
  verrideredirect FAILED
  ==== Contents of test case:

      deleteWindows
      toplevel .t -width 300 -height 400 -bg yellow
      wm geom .t +0+50
      tkwait visibility .t
      toplevel .t2 -width 100 -height 80 -bg blue
      wm overrideredirect .t2 1
      wm geom .t2 +100+200
      tkwait visibility .t2
      raise .t2
      set x [winfo rootx .t]
      set y [winfo rooty .t]
      set y2 [winfo rooty .t2]
      list [winfo containing [expr $x +150] 10]  [winfo 
  containing [expr $x +150]
  [expr $y - 1]]  [winfo containing [expr $x +150] $y]  
  [winfo containing [expr $x
   +150] [expr $y2 - 1]]  [winfo containing [expr $x 
  +150] $y2]  [winfo containing
   [expr $x +150] [expr $y2 + 79]]  [winfo containing 
  [expr $x +150] [expr $y2 + 8
  0]]  [winfo containing [expr $x +150] [expr $y + 
  450]]

  ---- Result was:
  {} {} {} {} {} {} {} {}
  ---- Result should have been (exact matching):
  {} {} .t .t .t2 .t2 .t {}
  ==== unixWm-50.2 FAILED


  ==== unixWm-50.3 Tk_CoordsToWindow 
  procedure, finding a toplevel with embedding
  FAILED
  ==== Contents of test case:

      deleteWindows
      toplevel .t -width 300 -height 400 -bg blue
      wm geom .t +0+50
      frame .t.f -container 1
      place .t.f -x 150 -y 50
      tkwait visibility .t.f
      setupbg
      dobg "
  wm withdraw .
  toplevel .x -width 100 -height 80 -use 
  [winfo id .t.f] -bg yellow
  tkwait visibility .x"
      set result [dobg {
  set x [winfo rootx .x]
  set y [winfo rooty .x]
  list [winfo containing [expr $x - 1] [expr 
  $y + 50]]  [winfo containing
  $x [expr $y +50]]
      }]
      set x [winfo rootx .t]
      set y [winfo rooty .t]
      lappend result [winfo containing [expr $x + 200] 
  [expr $y + 49]]  [winfo con
  taining [expr $x + 200] [expr $y +50]]

  ---- Result was:
  {} {} {} {}
  ---- Result should have been (exact matching):
  {} .x .t .t.f
  ==== unixWm-50.3 FAILED


  ==== unixWm-50.4 Tk_CoordsToWindow 
  procedure, window in other application FAILED

  ==== Contents of test case:

      catch {destroy .t}
      catch {interp delete slave}
      toplevel .t -width 200 -height 200 -bg green
      wm geometry .t +0+0
      tkwait visibility .t
      interp create slave
      load {} Tk slave
      slave eval {wm geometry . 200x200+0+0; tkwait 
  visibility .}
      set result [list [winfo containing 100 100]  [slave 
  eval {winfo containing 1
  00 100}]]
      interp delete slave
      set result

  ---- Result was:
  {} {}
  ---- Result should have been (exact matching):
  {} .
  ==== unixWm-50.4 FAILED


  ==== unixWm-50.6 Tk_CoordsToWindow 
  procedure, embedding within one app. FAILED
  ==== Contents of test case:

      deleteWindows
      toplevel .t -width 300 -height 400 -bg orange
      wm geom .t +0+50
      frame .t.f -container 1
      place .t.f -x 150 -y 50
      tkwait visibility .t.f
      toplevel .t2 -width 100 -height 80 -bg green -
  use [winfo id .t.f]
      tkwait visibility .t2
      update
      set x [winfo rootx .t]
      set y [winfo rooty .t]
      list [winfo containing [expr $x +149] [expr $y + 
  80]]  [winfo containing [ex
  pr $x +150] [expr $y +80]]  [winfo containing [expr 
  $x +249] [expr $y +80]]  [wi
  nfo containing [expr $x +250] [expr $y +80]]

  ---- Result was:
  {} {} {} {}
  ---- Result should have been (exact matching):
  .t .t2 .t2 .t
  ==== unixWm-50.6 FAILED


  ==== unixWm-50.7 Tk_CoordsToWindow 
  procedure, more basics FAILED
  ==== Contents of test case:

      catch {destroy .t}
      toplevel .t -width 300 -height 400 -bg green
      wm geom .t +0+0
      frame .t.f -width 100 -height 200 -bd 2 -relief 
  raised
      place .t.f -x 100 -y 100
      frame .t.f.f -width 100 -height 200 -bd 2 -relief 
  raised
      place .t.f.f -x 0 -y 100
      tkwait visibility .t.f.f
      set x [expr [winfo rootx .t] + 150]
      set y [winfo rooty .t]
      list [winfo containing $x [expr $y + 50]]  [winfo 
  containing $x [expr $y + 1
  50]]  [winfo containing $x [expr $y + 250]]  [winfo 
  containing $x [expr $y + 350
  ]]  [winfo containing $x [expr $y + 450]]

  ---- Result was:
  {} {} {} {} {}
  ---- Result should have been (exact matching):
  .t .t.f .t.f.f .t {}
  ==== unixWm-50.7 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]  [winfo containing [expr $x + 450] $y]

  ---- Result was:
  {} {} {} {} {}
  ---- Result should have been (exact matching):
  .t .t.f .t.f.f .t {}
  ==== unixWm-50.8 FAILED


  ==== unixWm-50.9 Tk_CoordsToWindow 
  procedure, unmapped windows FAILED
  ==== Contents of test case:

      catch {destroy .t}
      catch {destroy .t2}
      sleep 500           ;# Give window manager time to 
  catch up.
      toplevel .t -width 200 -height 200 -bg green
      wm geometry .t +0+0
      tkwait visibility .t
      toplevel .t2 -width 200 -height 200 -bg red
      wm geometry .t2 +0+0
      tkwait visibility .t2
      set result [list [winfo containing 100 100]]
      wm iconify .t2
      lappend result [winfo containing 100 100]

  ---- Result was:
  {} {}
  ---- Result should have been (exact matching):
  .t2 .t
  ==== unixWm-50.9 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:
  {} {}
  ---- Result should have been (exact matching):
  .t.f .t
  ==== unixWm-50.10 FAILED


  ==== unixWm-51.6 TkWmRestackToplevel 
  procedure, window to be stacked isn't mappe
  d FAILED
  ==== Contents of test case:

      catch {destroy .t}
      toplevel .t -width 200 -height 200 -bg green
      wm geometry .t +0+0
      tkwait visibility .t
      catch {destroy .t2}
      toplevel .t2 -width 200 -height 200 -bg red
      wm geometry .t2 +0+0
      winfo containing 100 100

  ---- Result was:

  ---- Result should have been (exact matching):
  .t
  ==== unixWm-51.6 FAILED


  ==== unixWm-51.7 TkWmRestackToplevel 
  procedure, other window isn't mapped FAILED

  ==== Contents of test case:

      foreach w {.t .t2 .t3} {
  catch {destroy $w}
  toplevel $w -width 200 -height 200 -bg 
  green
  wm geometry $w +0+0
      }
      raise .t .t2
      update
      set result [list [winfo containing 100 100]]
      lower .t3
      lappend result [winfo containing 100 100]

  ---- Result was:
  {} {}
  ---- Result should have been (exact matching):
  .t3 .t
  ==== unixWm-51.7 FAILED


  ==== unixWm-51.8 TkWmRestackToplevel 
  procedure, overrideredirect windows FAILED
  ==== Contents of test case:

      catch {destroy .t}
      toplevel .t -width 200 -height 200 -bg green
      wm overrideredirect .t 1
      wm geometry .t +0+0
      tkwait visibility .t
      catch {destroy .t2}
      toplevel .t2 -width 200 -height 200 -bg red
      wm overrideredirect .t2 1
      wm geometry .t2 +0+0
      tkwait visibility .t2

      # Need to use vrootx and vrooty to make tests 
  work correctly with
      # virtual root window measures managers: 
  overrideredirect windows
      # come up at (0,0) in display coordinates, not 
  virtual root
      # coordinates.

      set x [expr 100-[winfo vrootx .]]
      set y [expr 100-[winfo vrooty .]]
      set result [list [winfo containing $x $y]]
      raise .t
      lappend result [winfo containing $x $y]
      raise .t2
      lappend result [winfo containing $x $y]

  ---- Result was:
  {} {} {}
  ---- Result should have been (exact matching):
  .t2 .t .t2
  ==== unixWm-51.8 FAILED


  ==== unixWm-51.9 TkWmRestackToplevel 
  procedure, other window overrideredirect FA
  ILED
  ==== Contents of test case:

      foreach w {.t .t2 .t3} {
  catch {destroy $w}
  toplevel $w -width 200 -height 200 -bg 
  green
  wm overrideredirect $w 1
  wm geometry $w +0+0
  tkwait visibility $w
      }
      lower .t3 .t2
      update

      # Need to use vrootx and vrooty to make tests 
  work correctly with
      # virtual root window measures managers: 
  overrideredirect windows
      # come up at (0,0) in display coordinates, not 
  virtual root
      # coordinates.

      set x [expr 100-[winfo vrootx .]]
      set y [expr 100-[winfo vrooty .]]
      set result [list [winfo containing $x $y]]
      lower .t2
      lappend result [winfo containing $x $y]

  ---- Result was:
  {} {}
  ---- Result should have been (exact matching):
  .t2 .t3
  ==== unixWm-51.9 FAILED


tkt_uuid: 2768945fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 26. Conversions from String
priority: 7 High
foundin: obsolete: 8.5.6
resolution: Fixed
title: Unresolved External Symbols (8.5.6)
comment:
  Building our own GUI software on Windows against 8.5.6 release, I came across the error of
  "Unresolved External Symbols" and there are the symbols that are missing from 8.5.6 (they are there inside tk84.dll)

  TkStatePrintProc, TkStateParseProc, TkCanvasDashPrintProc, TkCanvasDashParseProc, TkOffsetPrintProc, TkOffsetParseProc, TkPixelPrintProc, TkPixelParseProc


tkt_uuid: 832691ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 76. Widget Tour
priority: 5 Medium
foundin: None
resolution: Fixed
title: Allow demos to be installed anywhere
comment:
  The demos currently base themselves off of $tk_library.
  These patches remove that dependency, and allow the
  demos to be installed in any directory.  In case of
  error getting the directory, the demos will fallback to
  using $tk_library.


tkt_uuid: 220774ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 38. [tk_messageBox]
priority: 5 Medium
foundin: None
resolution: None
title: Control the modality of a message box on Windows
comment:
  OriginalBugID: 602 RFE
  Version: 8.0p2
  SubmitDate: '1998-05-21'
  LastModified: '2000-06-19'
  Severity: LOW
  Status: Assigned
  Submitter: hershey
  ChangedBy: ericm
  RelatedBugIDs: 2589 5496
  OS: All Windows
  FixedInVersion: NA


  The tk_messageBox library procedure in Tk8.0p2 is essentially an

  interface to the Windows MessageBox function.


  However, one of the important settings for MessageBox, the modality,

  can not be controlled using tk_messageBox.  Instead, in Tk8.0p2, all

  MessageBox calls use MB_SYSTEMMODAL.


  The appended patch adds a -modal parameter to tk_messageBox.  On Unix

  and the Mac, the extra parameter is simply ignored.  On Windows, it

  may used to set the modality correctly.  If the new -modal parameter

  is not used, the default remains MB_SYSTEMMODAL, as before.


  I did not update the documentation for this patch.


  Ian Taylor

  ian@cygnus.com


  *** /5g/ian/tk8.0p2/library/msgbox.tcl  Mon Aug  4 13:38:04 1997

  --- library/msgbox.tcl  Thu Apr 16 15:31:46 1998

  *************** proc tkMessageBox {args} {

  *** 41,46 ****

  --- 41,47 ----

          {-default "" "" ""}

            {-icon "" "" "info"}

            {-message "" "" ""}

  +         {-modal "" "" ""}

            {-parent "" "" .}

            {-title "" "" " "}

            {-type "" "" "ok"}

  *** /5g/ian/tk8.0p2/tests/msgbox.test   Mon Aug  4 13:37:58 1997

  --- tests/msgbox.test   Thu Apr 16 15:31:47 1998

  *************** if {[string compare test [info procs tes

  *** 15,24 ****


    test msgbox-1.1 {tk_messageBox command} {

        list [catch {tk_messageBox -foo} msg] $msg

  ! } {1 {unknown option "-foo", must be -default, -icon, -message, -parent, -title or -type}}

    test msgbox-1.2 {tk_messageBox command} {

        list [catch {tk_messageBox -foo bar} msg] $msg

  ! } {1 {unknown option "-foo", must be -default, -icon, -message, -parent, -title or -type}}


    catch {tk_messageBox -foo bar} msg

    regsub -all ,      $msg "" options

  --- 15,24 ----


    test msgbox-1.1 {tk_messageBox command} {

        list [catch {tk_messageBox -foo} msg] $msg

  ! } {1 {unknown option "-foo", must be -default, -icon, -message, -modal, -parent, -title or -type}}

    test msgbox-1.2 {tk_messageBox command} {

        list [catch {tk_messageBox -foo bar} msg] $msg

  ! } {1 {unknown option "-foo", must be -default, -icon, -message, -modal, -parent, -title or -type}}


    catch {tk_messageBox -foo bar} msg

    regsub -all ,      $msg "" options

  *** /5g/ian/tk8.0p2/win/tkWinDialog.c   Tue Oct 28 11:37:34 1997

  --- win/tkWinDialog.c   Thu Apr 16 15:31:47 1998

  *************** Tk_MessageBoxCmd(clientData, interp, arg

  *** 826,837 ****

        char **argv;              /* Argument strings. */

    {

        int flags;

  !     Tk_Window parent = Tk_MainWindow(interp);

        HWND hWnd;

        char *message = "";

        char *title = "";

        int icon = MB_ICONINFORMATION;

        int type = MB_OK;

        int i, j;

        char *result;

        int code, oldMode;

  --- 826,838 ----

        char **argv;              /* Argument strings. */

    {

        int flags;

  !     Tk_Window parent = NULL;

        HWND hWnd;

        char *message = "";

        char *title = "";

        int icon = MB_ICONINFORMATION;

        int type = MB_OK;

  +     int modal = MB_SYSTEMMODAL;

        int i, j;

        char *result;

        int code, oldMode;

  *************** Tk_MessageBoxCmd(clientData, interp, arg

  *** 905,910 ****

  --- 906,929 ----

                  return TCL_ERROR;

              }

          }

  +       else if (strncmp (argv[i], "-modal", len) == 0) {

  +           if (v==argc) {goto arg_missing;}

  + 

  +           if (strcmp(argv[v], "system") == 0) {

  +               modal = MB_SYSTEMMODAL;

  +           }

  +           else if (strcmp(argv[v], "task") == 0) {

  +               modal = MB_TASKMODAL;

  +           }

  +           else if (strcmp(argv[v], "owner") == 0) {

  +               modal = MB_APPLMODAL;

  +           }

  +           else {

  +               Tcl_AppendResult(interp, "invalid modality \"", argv[v],

  +                   "\", must be system, task or owner", NULL);

  +               return TCL_ERROR;

  +           }

  +       }

          else {

              Tcl_AppendResult(interp, "unknown option \"", 

                  argv[i], "\", must be -default, -icon, ",

  *************** Tk_MessageBoxCmd(clientData, interp, arg

  *** 915,924 ****


        /* Make sure we have a valid hWnd to act as the parent of this message box

         */

  !     if (Tk_WindowId(parent) == None) {

  !       Tk_MakeWindowExist(parent);

        }

  -     hWnd = Tk_GetHWND(Tk_WindowId(parent));


        if (defaultBtn != NULL) {

          for (i=0; i<NUM_TYPES; i++) {

  --- 934,951 ----


        /* Make sure we have a valid hWnd to act as the parent of this message box

         */

  !     if (parent == NULL && modal == MB_TASKMODAL) {

  !       hWnd = NULL;

  !     }

  !     else {

  !       if (parent == NULL) {

  !           parent = Tk_MainWindow(interp);

  !       }

  !       if (Tk_WindowId(parent) == None) {

  !           Tk_MakeWindowExist(parent);

  !       }

  !       hWnd = Tk_GetHWND(Tk_WindowId(parent));

        }


        if (defaultBtn != NULL) {

          for (i=0; i<NUM_TYPES; i++) {

  *************** Tk_MessageBoxCmd(clientData, interp, arg

  *** 950,956 ****


        flags |= icon | type;

        oldMode = Tcl_SetServiceMode(TCL_SERVICE_ALL);

  !     code = MessageBox(hWnd, message, title, flags|MB_SYSTEMMODAL);

        (void) Tcl_SetServiceMode(oldMode);


        switch (code) {

  --- 977,983 ----


        flags |= icon | type;

        oldMode = Tcl_SetServiceMode(TCL_SERVICE_ALL);

  !     code = MessageBox(hWnd, message, title, flags|modal);

        (void) Tcl_SetServiceMode(oldMode);


        switch (code) {




  It seems that making this change has no effect on how events are
  actually handled on NT.  No matter what modal I use, Windows only
  seems to make the parent locked out. 
  -- 01/29/2000 hobbs

  It would be best if some definition of the -modal flag could be found for the UNIX and Macintosh as well.  This may just mean changing the grab from local to global for that particular dialog.  It's not good to have "no-op" flags for a platform independant command like this.

  - eric

  -- 06/19/2000 ericm


tkt_uuid: 740570ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 63. Tk_Win Functions
priority: 7 High
foundin: obsolete: 8.5a4
resolution: Duplicate
title: window-2.9 hang on unix with threads
comment:
  platform: sparc solaris 8 sunblade 100
  compiler: sun c compiler
  source: 2003-05-19 cvs head from activestate ftp site
  tcl configured as --enable-shared --enable-symbols
  --enable-threads
  tk configured as --enable-shared --enable-symbols

  window.test starts, but never ends.  when I do a truss,
  I see:
  $ truss -p 10320
  lwp_sema_wait(0x0002AD10)       (sleeping...)
  signotifywait()                 (sleeping...)
  door_return(0x00000000, 0, 0x00000000, 0) (sleeping...)
  poll(0xFEA0BA90, 1, -1)         (sleeping...)
  lwp_cond_wait(0xFECC5550, 0xFECC5560, 0xFECBEDB8)
  (sleeping...)

  If I kill the hanging process,
  I get this error:

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

      set script [makeFile {
          toplevel .t1
          toplevel .t2
          update
          bind .t2 <Destroy> {puts "Destroy .t2" ; exit 1}
          bind .t1 <Destroy> {puts "Destroy .t1" ; exit 0}
          destroy .t2
      } 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: 541256ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 41. Photo Images
priority: 8
foundin: obsolete: 8.4a5
resolution: Duplicate
title: segfault reading BMP image
comment:
  The bug may really be in the Img package.

  % package require Img
  1.2.4
  % image create photo -file oommf-small.bmp

  Program received signal SIGSEGV, Segmentation fault.
  0x20000441020 in Tcl_Read (chan=0x120159c20,
  dst=0x11fffe9c8 "", bytesToRead=6)
      at ./../generic/tclIO.c:4106
  4106        chanPtr = statePtr->topChanPtr;
  (gdb) bt
  #0  0x20000441020 in Tcl_Read (chan=0x120159c20,
  dst=0x11fffe9c8 "", 
      bytesToRead=6) at ./../generic/tclIO.c:4106
  #1  0x20000e33824 in ImgRead () from
  /usr/local/lib/Img1.2/libimg1.2.so
  #2  0x20000e3c1dc in ReadGIFHeader () from
  /usr/local/lib/Img1.2/libimg1.2.so
  #3  0x20000e3b030 in ChanMatchGIF () from
  /usr/local/lib/Img1.2/libimg1.2.so
  #4  0x20000239fe8 in MatchFileFormat
  (interp=0x120101910, chan=0x12016e360, 
      fileName=0x120159c20 "oommf-small.bmp",
  formatObj=0x0, 
      imageFormatPtr=0x11fffeb78, widthPtr=0x11fffeb80,
  heightPtr=0x11fffeb84, 
      oldformat=0x11fffeb90) at
  /local/src/tk/unix/../generic/tkImgPhoto.c:3577
  #5  0x20000235bd4 in ImgPhotoConfigureMaster
  (interp=0x120101910, 
      masterPtr=0x1201b8e40, objc=2, objv=0x1201030d8,
  flags=0)
      at /local/src/tk/unix/../generic/tkImgPhoto.c:1862
  #6  0x20000231998 in ImgPhotoCreate
  (interp=0x120101910, 
      name=0x11fffeca0 "image1", objc=2,
  objv=0x1201030d8, 
      typePtr=0x200003827f0, master=0x12016f3b0,
  clientDataPtr=0x12016f3b8)
      at /local/src/tk/unix/../generic/tkImgPhoto.c:532
  #7  0x20000227b78 in Tk_ImageObjCmd
  (clientData=0x120123d60, 
      interp=0x120101910, objc=2, objv=0x1201030d8)
      at /local/src/tk/unix/../generic/tkImage.c:300
  #8  0x200003d25e8 in TclEvalObjvInternal
  (interp=0x120101910, objc=5, 
      objv=0x1201030c0, command=0x0, length=0, flags=0)
      at ./../generic/tclBasic.c:3030
  #9  0x2000041b094 in TclExecuteByteCode
  (interp=0x120101910, 
      codePtr=0x12016f240) at
  ./../generic/tclExecute.c:1285
  #10 0x2000041a158 in TclCompEvalObj
  (interp=0x120101910, objPtr=0x120157b80)
      at ./../generic/tclExecute.c:931
  #11 0x200003d3e48 in Tcl_EvalObjEx (interp=0x120101910,
  objPtr=0x120157b80, 
      flags=131072) at ./../generic/tclBasic.c:3903
  #12 0x20000436b04 in Tcl_RecordAndEvalObj
  (interp=0x120101910, 
      cmdPtr=0x120157b80, flags=131072) at
  ./../generic/tclHistory.c:142
  #13 0x200004368b8 in Tcl_RecordAndEval
  (interp=0x120101910, 
      cmd=0x12010e1a8 "image create photo -file
  oommf-small.bmp\n", flags=131072)
      at ./../generic/tclHistory.c:62
  #14 0x20000189d8c in StdinProc (clientData=0x12015d270,
  mask=2)
      at /local/src/tk/unix/../generic/tkMain.c:355
  #15 0x2000044586c in Tcl_NotifyChannel
  (channel=0x12015d270, mask=2)
      at ./../generic/tclIO.c:6705
  #16 0x2000049c97c in FileHandlerEventProc
  (evPtr=0x1201bdfb0, flags=-3)
      at ./../unix/tclUnixNotfy.c:624
  #17 0x20000461d40 in Tcl_ServiceEvent (flags=-3)
      at ./../generic/tclNotify.c:607
  #18 0x20000462350 in Tcl_DoOneEvent (flags=-3) at
  ./../generic/tclNotify.c:910
  #19 0x20000174bb0 in Tk_MainLoop ()
      at /local/src/tk/unix/../generic/tkEvent.c:1290
  #20 0x20000189af0 in Tk_MainEx (argc=1,
  argv=0x11ffff588, 
      appInitProc=0x120000ae0 <Tcl_AppInit>,
  interp=0x120101910)
      at /local/src/tk/unix/../generic/tkMain.c:284
  #21 0x120000ab8 in main (argc=1, argv=0x11ffff588)
      at /local/src/tk/unix/tkAppInit.c:77


tkt_uuid: 1233834fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 67. Unix Window Operations
priority: 5 Medium
foundin: obsolete: 8.4.11
resolution: None
title: Restrictions on window resizing in Motif wms
comment:
  It was reported that the attached code (admittedly
  arcane, but working) that does a pseudo-wizard still
  toplevel no longer resizes properly when moving to the
  2nd screen (which is larger).  It apparently works OK
  with non-Motif wms.


tkt_uuid: 2010011fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 88. Themed Tk
priority: 5 Medium
foundin: None
resolution: Wont Fix
title: Ttk buttons keep focus when clicked
comment:
  When you click a regular Tk button, it won't take the focus from whichever widget currently has it (though you can still specifically give it focus via the keyboard).

  Ttk buttons (Win XP SP3, xpnative theme but with Windows configured to use the classic look) take focus when clicked, though. Brief example:

  pack [frame .top]
  pack [frame .btm]
  pack [button .top.btn -text "Tk" -command "puts Tk"]
  pack [ttk::button .top.btn2 -text "Ttk" -command "puts Ttk"]
  pack [text .btm.txt -width 10 -height 3]
  focus -force .btm.txt

  If you then click the Tk button, focus stays in the text widget. When you click the Ttk button, though, it retains focus.

  The issue is even worse when you combine several Tk/Ttk buttons; in the example above, click the 'Tk' button again. The Ttk button still retains focus afterwards, so even though it wasn't explicitly given focus via the keyboard (and although another button has been activated via the mouse), the Ttk button still remains active and can be invoked via the spacebar. 


tkt_uuid: 1012083fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 9 Immediate
foundin: None
resolution: Fixed
title: spelled docs patch4
comment:
  See attached file

  Affected files are:
  bind.n, event.n, grid.n, pack.n, place.n, 
  chooseDirectory.n, getOpenFile.n

  there might be some disagreement about changes to 
  the bind.n, or grid.n


  As for word 'labelled'
  here is 'grep' output:

  File ENTRY.N:
  504     The F16 key (labelled Copy on many Sun 
  workstations) or Meta-w
  507     The F20 key (labelled Cut on many Sun 
  workstations) or Control-w
  512     The F18 key (labelled Paste on many Sun 
  workstations) or Control-y
  File LISTBOX.N:
  547     The F16 key (labelled Copy on many Sun 
  workstations) or Meta-w
  File SPINBOX.N:
  542     The F16 key (labelled Copy on many Sun 
  workstations) or Meta-w
  545     The F20 key (labelled Cut on many Sun 
  workstations) or Control-w
  550     The F18 key (labelled Paste on many Sun 
  workstations) or Control-y
  File TEXT.N:
  1884    The F16 key (labelled Copy on many Sun 
  workstations) or Meta-w
  1890    The F20 key (labelled Cut on many Sun 
  workstations) or Control-w
  1898    The F18 key (labelled Paste on many Sun 
  workstations) or Control-y


tkt_uuid: 1894038fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 84. Unix Build
priority: 9 Immediate
foundin: obsolete: 8.5.1
resolution: Fixed
title: pkgIndex.tcl filter is too strict AND too lax
comment:
  When Tk 8.5.1 is built and installed
  from the source code distribution, the
  pkgIndex.tcl file that gets installed
  contains:

  if {[catch {package present Tcl 8.5.1}]} { return }
  package ifneeded Tk 8.5.1       [list load [file join $dir .. libtk8.5.so] Tk]


  This script means that in an 8.5.0 Tcl interp,
  the command

    package require -exact Tk 8.5.1

  will fail, even though the corresponding
  [load] would work just fine.  Tk 8.5.1 is
  perfectly compatible with Tcl 8.5.0.

  It seems that replacing the "$(TCLPATCHL)"
  on line 710 of tk/unix/Makefile.in with
  the literal string ".0" would resolve this.


tkt_uuid: 219933ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: obsolete: 8.1a2
resolution: Invalid
title: Tcl/Tk crashes with Xlib sequence lost error
comment:
  OriginalBugID: 1376 Bug
  Version: 8.0.4
  SubmitDate: '1999-03-02'
  LastModified: '1999-08-14'
  Severity: SER
  Status: Closed
  Submitter: pat
  ChangedBy: hobbs
  RelatedBugIDs: 716
  OS: Digital Unix
  OSVersion: V4.0B
  Machine: Other
  ClosedDate: '1999-08-14'


  Name:

  Emmanuel Gustin



  Extensions:

  Tix 4.1.0



  CustomShell:

  Recently applied: Dash patch. Did not have any effect on the problem.



  Description:

  Not exactly what I would call a patch, but when debugging I inserted 

  the following statements in tkUnixWm.c, in Tk_CoordsToWindow(), 

  after the while(1) { that opens step 2 of the search: 



  XGetWindowAttributes(Tk_Display(tkwin), parent, &xwat);

  XGetWindowAttributes(Tk_Display(tkwin), window, &xwat);



  where xwat of course has been declared as 

  XWindowAttributes xwat;

  earlier in the function. I intended this for

  debugging, but strangely enough it seems to have

  cured the trouble (or at least most of the trouble,

  it hasn't crashed yet but I keep my fingers crossed.)







  This seems to be a bug that just Tix triggers. 
  -- 08/14/1999 hobbs


tkt_uuid: 1719282fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 53. [selection]
priority: 5 Medium
foundin: obsolete: 8.5a6
resolution: None
title: unixSelect test suite errors
comment:
  Platform: sun sparc solaris 9, sun c compiler, tcl/tk cvs head, windows xp pro and exceed 10 X server


  ==== unixSelect-1.4 TkSelGetSelection procedure: simple i18n text, iso2022 FAILE
  D
  ==== Contents of test case:

      setupbg
      setup
      selection handle -type COMPOUND_TEXT -format COMPOUND_TEXT .  {handler COMPO
  UND_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 byteleng
  th $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 COMPO
  UND_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 3
  999] $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 400
  0 COMPOUND_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 400
  0 COMPOUND_TEXT 0 4000 COMPOUND_TEXT 4000 3998 COMPOUND_TEXT 7997 4000}
  ==== unixSelect-1.5 FAILED
  ==== unixSelect-1.6 TkSelGetSelection procedure: simple i18n text, iso2022 FAILE
  D
  ==== Contents of test case:

      setupbg
      setup
      selection handle -type COMPOUND_TEXT -format COMPOUND_TEXT .  {handler COMPO
  UND_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 byteleng
  th $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


