Tk Source Code

Changes On Branch tip-454
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch tip-454 Excluding Merge-Ins

This is equivalent to a diff from faa07d44 to aac88748

2016-10-26
08:32
frame resize tests exercice all paths of pack and grid, removed tests for different master widget types, as it is a pack/grid issue Closed-Leaf check-in: aac88748 user: oehhar tags: tip-454
2016-10-24
19:04
Added tests for tip454: frame returns to size 1x1 when last children is unpacked/ungridded check-in: b5f8c4d1 user: oehhar tags: tip-454
2016-09-21
12:43
Make it more likely that compiles with VS2012/VS2013 actually work on Windows XP. See: https://tedwvc.wordpress.com/2014/01/01/how-to-target-xp-with-vc2012-or-vc2013-and-continue-to-use-the-windows-8-x-sdk/ check-in: 3d512d1c user: jan.nijtmans tags: core-8-6-branch
08:44
pack: shrink frame when last child is unpacked. Ticket [d6b95ce4] check-in: 64fe74c3 user: oehhar tags: bug-d6b95ce492-alt, tip-454
08:31
Tri-state buttons not working for non-native themes. Bug [3217462] check-in: 71c6b472 user: oehhar tags: bug-3217462
06:32
(Modernized) patch from egavilan to fix [2863003fff] and [d6b95ce492] - tk frame does not shrink to 0 height if last children unpacked. A virtual event is sent when the pack or grid geometry manager leaves a parent without any slaves Leaf check-in: 60230550 user: fvogel tags: bug-d6b95ce492, rfe-2863003fff
2016-09-19
12:05
Enhanced proposed fix [6c0d7aec67]: unicode text input Windows 8. More places where Unicode surrogate handling could be improved. check-in: 158c61aa user: jan.nijtmans tags: rfe-6c0d7aec67
2016-09-13
11:58
merge core-8-6-branch check-in: fa4660a6 user: jan.nijtmans tags: androwish
2016-09-10
09:08
Fixed [eb26817783] - listbox-13.3 fails on Linux check-in: c084d13c user: fvogel tags: trunk
09:07
Fixed [eb26817783] - listbox-13.3 fails on Linux check-in: faa07d44 user: fvogel tags: core-8-6-branch
09:05
Fixed [8c4216dca9] - listbox-4.1 unreliably fails on Debian 8 check-in: dae3fe82 user: fvogel tags: core-8-6-branch
2016-09-03
16:57
Fixed [eb26817783] - listbox-13.3 fails on Linux Closed-Leaf check-in: 9116a428 user: fvogel tags: bug-eb26817783

Changes to generic/tkGrid.c.

2776
2777
2778
2779
2780
2781
2782

2783
2784
2785
2786
2787
2788
2789

    /*
     * If we have emptied this master from slaves it means we are no longer
     * handling it and should mark it as free.
     */

    if ((masterPtr->slavePtr == NULL) && (masterPtr->flags & ALLOCED_MASTER)) {

	TkFreeGeometryMaster(masterPtr->tkwin, "grid");
	masterPtr->flags &= ~ALLOCED_MASTER;
    }
}

/*
 *----------------------------------------------------------------------







>







2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790

    /*
     * If we have emptied this master from slaves it means we are no longer
     * handling it and should mark it as free.
     */

    if ((masterPtr->slavePtr == NULL) && (masterPtr->flags & ALLOCED_MASTER)) {
	Tk_GeometryRequest(masterPtr->tkwin, 0, 0);
	TkFreeGeometryMaster(masterPtr->tkwin, "grid");
	masterPtr->flags &= ~ALLOCED_MASTER;
    }
}

/*
 *----------------------------------------------------------------------
3503
3504
3505
3506
3507
3508
3509

3510
3511
3512
3513
3514
3515
3516

    /*
     * If we have emptied this master from slaves it means we are no longer
     * handling it and should mark it as free.
     */

    if (masterPtr->slavePtr == NULL && masterPtr->flags & ALLOCED_MASTER) {

	TkFreeGeometryMaster(masterPtr->tkwin, "grid");
	masterPtr->flags &= ~ALLOCED_MASTER;
    }

    return TCL_OK;
}








>







3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518

    /*
     * If we have emptied this master from slaves it means we are no longer
     * handling it and should mark it as free.
     */

    if (masterPtr->slavePtr == NULL && masterPtr->flags & ALLOCED_MASTER) {
	Tk_GeometryRequest(masterPtr->tkwin, 0, 0);
	TkFreeGeometryMaster(masterPtr->tkwin, "grid");
	masterPtr->flags &= ~ALLOCED_MASTER;
    }

    return TCL_OK;
}


Changes to generic/tkPack.c.

1359
1360
1361
1362
1363
1364
1365

1366
1367
1368
1369
1370
1371
1372

    /*
     * If we have emptied this master from slaves it means we are no longer
     * handling it and should mark it as free.
     */

    if (masterPtr->slavePtr == NULL && masterPtr->flags & ALLOCED_MASTER) {

	TkFreeGeometryMaster(masterPtr->tkwin, "pack");
	masterPtr->flags &= ~ALLOCED_MASTER;
    }

}

/*







>







1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373

    /*
     * If we have emptied this master from slaves it means we are no longer
     * handling it and should mark it as free.
     */

    if (masterPtr->slavePtr == NULL && masterPtr->flags & ALLOCED_MASTER) {
	Tk_GeometryRequest(masterPtr->tkwin, 0, 0);
	TkFreeGeometryMaster(masterPtr->tkwin, "pack");
	masterPtr->flags &= ~ALLOCED_MASTER;
    }

}

/*

Changes to tests/grid.test.

1994
1995
1996
1997
1998
1999
2000















































2001
2002
2003
2004
2005
2006
2007
2008
    # If .a was destroyed while remembered by the removed .c, make sure it
    # is ignored.
    destroy .a
    grid .c -row 0 -column 0
    grid info .c
} {-in . -column 0 -row 0 -columnspan 2 -rowspan 2 -ipadx 0 -ipady 0 -padx {3 5} -pady {4 7} -sticky ns}
grid_reset 22.5
















































# cleanup
cleanupTests
return

# Local Variables:
# mode: tcl
# End:







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|







1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
    # If .a was destroyed while remembered by the removed .c, make sure it
    # is ignored.
    destroy .a
    grid .c -row 0 -column 0
    grid info .c
} {-in . -column 0 -row 0 -columnspan 2 -rowspan 2 -ipadx 0 -ipady 0 -padx {3 5} -pady {4 7} -sticky ns}
grid_reset 22.5
test grid-23.1 {frame returns to 1x1 when children destroyed (tip 454)} {
    grid [frame .f]
    grid [frame .f.f]
    grid [entry .f.f.e]
    update
    set res [list [expr {[winfo reqwidth .f.f] > 1}]\
            [expr {[winfo reqheight .f.f] > 1}]]
    destroy .f.f.e
    lappend res [winfo reqwidth .f.f] [winfo reqheight .f.f]
} {1 1 1 1}
grid_reset 23.1
test grid-23.2 {frame keeps size when children destroyed with propagate off (tip 454)} {
    grid [frame .f]
    grid [frame .f.f]
    grid [entry .f.f.e]
    update
    set w [winfo reqwidth .f.f]
    set h [winfo reqheight .f.f]
    grid propagate .f.f 0
    destroy .f.f.e
    list [expr { $w - [winfo reqwidth .f.f]}]\
            [expr {$h - [winfo reqheight .f.f]}]
} {0 0}
grid_reset 23.2
test grid-23.3 {frame returns to 1x1 when children ungridded (tip 454)} {
    grid [frame .f]
    grid [frame .f.f]
    grid [entry .f.f.e]
    update
    set res [list [expr {[winfo reqwidth .f.f] > 1}]\
            [expr {[winfo reqheight .f.f] > 1}]]
    grid forget .f.f.e
    lappend res [winfo reqwidth .f.f] [winfo reqheight .f.f]
} {1 1 1 1}
grid_reset 23.3
test grid-23.4 {frame returns to 1x1 when children moved (tip 454)} {
    grid [frame .f]
    grid [frame .f.f]
    grid [entry .e] -in .f.f
    grid [frame .f2]
    update
    set res [list [expr {[winfo reqwidth .f.f] > 1}]\
            [expr {[winfo reqheight .f.f] > 1}]]
    grid configure .e -in .f2
    lappend res [winfo reqwidth .f.f] [winfo reqheight .f.f]
} {1 1 1 1}
grid_reset 23.4

# cleanup
cleanupTests
return

# Local Variables:
# mode: tcl
# End:

Changes to tests/pack.test.

787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
    pack .pack.a -side right
    pack .pack.c -side bottom
    pack .pack.d -side top
    update
    list [winfo reqwidth .pack] [winfo reqheight .pack]
} -result {100 110}


# For the tests below, create a couple of "pad" windows to shrink
# the available space for the remaining windows.  The tests have to
# be done this way rather than shrinking the whole window, because
# some window managers like mwm won't let a top-level window get
# very small.

pack forget .pack.a .pack.b .pack.c .pack.d







<







787
788
789
790
791
792
793

794
795
796
797
798
799
800
    pack .pack.a -side right
    pack .pack.c -side bottom
    pack .pack.d -side top
    update
    list [winfo reqwidth .pack] [winfo reqheight .pack]
} -result {100 110}


# For the tests below, create a couple of "pad" windows to shrink
# the available space for the remaining windows.  The tests have to
# be done this way rather than shrinking the whole window, because
# some window managers like mwm won't let a top-level window get
# very small.

pack forget .pack.a .pack.b .pack.c .pack.d
1622
1623
1624
1625
1626
1627
1628












1629













































1630
1631
1632
1633
1634
1635
    .pack.lf configure -labelanchor ws
    update
    lappend res [winfo geometry .pack.lf]
} -cleanup {
    destroy .pack.l .pack.lf
} -result {162x127+0+0 172x112+0+0}



























































# cleanup
cleanupTests
return










>
>
>
>
>
>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>






1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
    .pack.lf configure -labelanchor ws
    update
    lappend res [winfo geometry .pack.lf]
} -cleanup {
    destroy .pack.l .pack.lf
} -result {162x127+0+0 172x112+0+0}

test pack-20.1 {frame returns to 1x1 when children destroyed (tip 454)} -setup {
    catch {eval pack forget [pack slaves .pack]}
    destroy .pack.f
} -body {
    pack [frame .pack.f]
    pack [entry .pack.f.e]
    update
    set res [list [expr {[winfo reqwidth .pack.f] > 1}]\
            [expr {[winfo reqheight .pack.f] > 1}]]
    destroy .pack.f.e
    lappend res [winfo reqwidth .pack.f] [winfo reqheight .pack.f]
} -result {1 1 1 1}

test pack-20.2 {frame keeps size when children destroyed and no propagation (tip 454)} -setup {
    catch {eval pack forget [pack slaves .pack]}
    destroy .pack.f
} -body {
    pack [frame .pack.f]
    pack [entry .pack.f.e]
    update
    set w [winfo reqwidth .pack.f]
    set h [winfo reqheight .pack.f]
    pack propagate .pack.f 0
    destroy .pack.f.e
    list [expr {$w - [winfo reqwidth .pack.f]}]\
            [expr {$h - [winfo reqheight .pack.f]}]
} -result {0 0}

test pack-20.3 {ttk::frame returns to 1x1 when children unpacked (tip 454)} -setup {
    catch {eval pack forget [pack slaves .pack]}
    destroy .pack.f
} -body {
    pack [ttk::frame .pack.f]
    pack [entry .pack.f.e]
    update
    set res [list [expr {[winfo reqwidth .pack.f] > 1}]\
            [expr {[winfo reqheight .pack.f] > 1}]]
    pack forget .pack.f.e
    lappend res [winfo reqwidth .pack.f] [winfo reqheight .pack.f]
} -result {1 1 1 1}

test pack-20.4 {ttk::frame returns to 1x1 when children moved (tip 454)} -setup {
    catch {eval pack forget [pack slaves .pack]}
    destroy .pack.f
    destroy .pack.f2
    destroy .pack.e
} -body {
    pack [ttk::frame .pack.f]
    pack [ttk::frame .pack.f2]
    entry .pack.e
    pack .pack.e -in .pack.f
    update
    set res [list [expr {[winfo reqwidth .pack.f] > 1}]\
            [expr {[winfo reqheight .pack.f] > 1}]]
    pack configure .pack.e -in .pack.f2
    lappend res [winfo reqwidth .pack.f] [winfo reqheight .pack.f]
} -result {1 1 1 1}

# cleanup
cleanupTests
return