Tk Source Code

View Ticket
Login
Ticket UUID: 1997299
Title: Tag borderwidth is leaking horizontally
Type: Bug Version: obsolete: 8.5.2
Submitter: kaitzschu Created on: 2008-06-19 00:12:50
Subsystem: 18. [text] Assigned To: fvogel
Priority: 1 Zero Severity: Minor
Status: Closed Last Modified: 2015-11-29 14:45:41
Resolution: Fixed Closed By: fvogel
    Closed on: 2015-11-29 14:45:41
Description:
Observed behavior: when setting -relief non-flat and -borderwidth greater than tag width then relief border extends from left and right side over the area of tagged characters.

Desired behavior: border being clipped horizontally the same way as it is clipped vertically, not extending the tagged area.

Code example:

font configure TkFixedFont -size 20
pack [text .t -font TkFixedFont -height 5 -width 5]
.t tag configure relief -relief solid -borderwidth 100
.t insert 1.0 {
 ooo
 o} {} x relief {o
 ooo
}
User Comments: fvogel added on 2015-11-29 14:45:41:
Fix and tests merged to core-8-5-branch and trunk.

fvogel added on 2015-11-18 21:15:11:
Visual tests added in bevel.tcl, see branch bug-1997299fff.

fvogel added on 2015-11-17 23:54:14:
The situation proposed in the original report is not the only case of tag leaks.

I have fixed several further cases, see branch bug-1997299fff.

Test case:


  package require Tk
  destroy .t

  font configure TkFixedFont -size 20
  pack [text .t -font TkFixedFont -height 5 -width 15 \
                -foreground green -font "Arial 30"] \
       -expand 1 -fill both
  .t tag configure relief -relief solid -borderwidth 20 \
                          -foreground red
  .t insert 1.0 {
   oooo} {} FV relief {ooo
   o} {} xxxxxxxxxxxxxxxxxxxxxxx relief {o
   ooo
  } 

  # now play with the text by inserting characterrs here and there
  # the borderwidth shall not leak

  # play with
  .t tag configure relief -borderwidth 100

  # the border shall still not leak: it grows toward the inside of
  # the tagged area only

fvogel added on 2015-11-17 15:21:33:
Fix proposed in branch bug-1797299fff

(Prio zero bugs relax me...)