Tcl Library Source Code

View Ticket
Login
Ticket UUID: 9d21e52e39c37d9521e8d34da3b301219b8f909c
Title: [BWidget] ScrollableFrame changes width upon unmap and map events
Type: Bug Version: 1.9.10
Submitter: anonymous Created on: 2016-09-30 19:04:21
Subsystem: bwidget Assigned To:
Priority: 5 Medium Severity: Important
Status: Closed Last Modified: 2016-10-13 14:33:37
Resolution: Not Applicable Here Closed By: aku
    Closed on: 2016-10-06 02:58:11
Description: (text/html)
As stated in the title, the ScrollableFrame changes width upon unmap and map events. 

See: https://groups.google.com/forum/#!topic/comp.lang.tcl/Q5prg9lsOYc

I have found the bug and solved it. Here are the original and modified procedures:

proc ScrollableFrame::_frameConfigure {canvas {unmap 0}} {
    # This ensures that we don't get funny scrollability in the frame
    # when it is smaller than the canvas space
    # use [winfo] to get height & width of frame

    # [winfo] doesn't work for unmapped frame
    set frameh [expr {$unmap ? 0 : [winfo height $canvas.frame]}]
    set framew [expr {$unmap ? 0 : [winfo width  $canvas.frame]}]

    set height [_max $frameh [winfo height $canvas]]
    set width  [_max $framew [winfo width  $canvas]]

    $canvas:cmd configure -scrollregion [list 0 0 $width $height]
}
# This is the modified above procedure.
# The modified procedure solves the problem described in https://groups.google.com/forum/#!topic/comp.lang.tcl/Q5prg9lsOYc
proc ScrollableFrame::_frameConfigure {canvas {unmap 0}} {
    # This ensures that we don't get funny scrollability in the frame
    # when it is smaller than the canvas space
    # use [winfo] to get height & width of frame

    # [winfo] doesn't work for unmapped frame
    if {$unmap} {
        return
    }

    set frameh [winfo height $canvas.frame]
    set framew [winfo width  $canvas.frame]

    set height [_max $frameh [winfo height $canvas]]
    set width  [_max $framew [winfo width  $canvas]]

    $canvas:cmd configure -scrollregion [list 0 0 $width $height]
}
User Comments: oehhar added on 2016-10-13 14:33:37: (text/x-fossil-wiki)
Thank you. Transfered to bwidget tracker:

[https://core.tcl.tk/bwidget/tktview/72a5727d1b7fb76b32cea032eb7d4bf7c6fa28bf]

aku added on 2016-10-06 02:58:11: (text/x-fossil-wiki)
This report does not apply to Tcllib.
The proper repository is

   *   <a href='http://core.tcl.tk/bwidget/home'>http://core.tcl.tk/bwidget/home</a>