[PATCH] Make gitk work reasonably well on Cygwin.
The gitk gui layout was completely broken on Cygwin. If gitk was started without previous geometry in ~/.gitk, the user could drag the window sashes to get a useable layout. However, if ~/.gitk existed, this was not possible at all. The fix was to rewrite makewindow, changing the toplevel containers and the particular geometry information saved between sessions. Numerous bugs in both the Cygwin and the Linux Tk versions make this a delicate balancing act: the version here works in both but many subtle variants are competely broken in one or the other environment. Three user visible changes result: 1 - The viewer is fully functional under Cygwin. 2 - The search bar moves from the bottom to the top of the lower left pane. This was necessary to get around a layout problem on Cygwin. 3 - The window size and position is saved and restored between sessions. Again, this is necessary to get around a layout problem on Cygwin. Signed-off-by: Mark Levedahl <mdl123@verizon.net> Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
40b87ff877
commit
e9937d2a03
264
gitk
264
gitk
@ -435,56 +435,59 @@ proc makewindow {} {
|
|||||||
.bar.help configure -font $uifont
|
.bar.help configure -font $uifont
|
||||||
. configure -menu .bar
|
. configure -menu .bar
|
||||||
|
|
||||||
if {![info exists geometry(canv1)]} {
|
# the gui has upper and lower half, parts of a paned window.
|
||||||
set geometry(canv1) [expr {45 * $charspc}]
|
|
||||||
set geometry(canv2) [expr {30 * $charspc}]
|
|
||||||
set geometry(canv3) [expr {15 * $charspc}]
|
|
||||||
set geometry(canvh) [expr {25 * $linespc + 4}]
|
|
||||||
set geometry(ctextw) 80
|
|
||||||
set geometry(ctexth) 30
|
|
||||||
set geometry(cflistw) 30
|
|
||||||
}
|
|
||||||
panedwindow .ctop -orient vertical
|
panedwindow .ctop -orient vertical
|
||||||
if {[info exists geometry(width)]} {
|
|
||||||
.ctop conf -width $geometry(width) -height $geometry(height)
|
# possibly use assumed geometry
|
||||||
set texth [expr {$geometry(height) - $geometry(canvh) - 56}]
|
if {![info exists geometry(topheight)]} {
|
||||||
set geometry(ctexth) [expr {($texth - 8) /
|
set geometry(topheight) [expr {15 * $linespc}]
|
||||||
[font metrics $textfont -linespace]}]
|
set geometry(topwidth) [expr {80 * $charspc}]
|
||||||
|
set geometry(botheight) [expr {15 * $linespc}]
|
||||||
|
set geometry(botwidth) [expr {50 * $charspc}]
|
||||||
|
set geometry(canv) [expr {40 * $charspc}]
|
||||||
|
set geometry(canv2) [expr {20 * $charspc}]
|
||||||
|
set geometry(canv3) [expr {20 * $charspc}]
|
||||||
}
|
}
|
||||||
frame .ctop.top
|
|
||||||
frame .ctop.top.bar
|
# the upper half will have a paned window, a scroll bar to the right, and some stuff below
|
||||||
frame .ctop.top.lbar
|
frame .tf -height $geometry(topheight) -width $geometry(topwidth)
|
||||||
pack .ctop.top.lbar -side bottom -fill x
|
frame .tf.histframe
|
||||||
pack .ctop.top.bar -side bottom -fill x
|
panedwindow .tf.histframe.pwclist -orient horizontal -sashpad 0 -handlesize 4
|
||||||
set cscroll .ctop.top.csb
|
|
||||||
scrollbar $cscroll -command {allcanvs yview} -highlightthickness 0
|
# create three canvases
|
||||||
pack $cscroll -side right -fill y
|
set cscroll .tf.histframe.csb
|
||||||
panedwindow .ctop.top.clist -orient horizontal -sashpad 0 -handlesize 4
|
set canv .tf.histframe.pwclist.canv
|
||||||
pack .ctop.top.clist -side top -fill both -expand 1
|
canvas $canv -width $geometry(canv) \
|
||||||
.ctop add .ctop.top
|
|
||||||
set canv .ctop.top.clist.canv
|
|
||||||
canvas $canv -height $geometry(canvh) -width $geometry(canv1) \
|
|
||||||
-background $bgcolor -bd 0 \
|
-background $bgcolor -bd 0 \
|
||||||
-yscrollincr $linespc -yscrollcommand "scrollcanv $cscroll"
|
-yscrollincr $linespc -yscrollcommand "scrollcanv $cscroll"
|
||||||
.ctop.top.clist add $canv
|
.tf.histframe.pwclist add $canv
|
||||||
set canv2 .ctop.top.clist.canv2
|
set canv2 .tf.histframe.pwclist.canv2
|
||||||
canvas $canv2 -height $geometry(canvh) -width $geometry(canv2) \
|
canvas $canv2 -width $geometry(canv2) \
|
||||||
-background $bgcolor -bd 0 -yscrollincr $linespc
|
-background $bgcolor -bd 0 -yscrollincr $linespc
|
||||||
.ctop.top.clist add $canv2
|
.tf.histframe.pwclist add $canv2
|
||||||
set canv3 .ctop.top.clist.canv3
|
set canv3 .tf.histframe.pwclist.canv3
|
||||||
canvas $canv3 -height $geometry(canvh) -width $geometry(canv3) \
|
canvas $canv3 -width $geometry(canv3) \
|
||||||
-background $bgcolor -bd 0 -yscrollincr $linespc
|
-background $bgcolor -bd 0 -yscrollincr $linespc
|
||||||
.ctop.top.clist add $canv3
|
.tf.histframe.pwclist add $canv3
|
||||||
bind .ctop.top.clist <Configure> {resizeclistpanes %W %w}
|
|
||||||
lappend bglist $canv $canv2 $canv3
|
|
||||||
|
|
||||||
set sha1entry .ctop.top.bar.sha1
|
# a scroll bar to rule them
|
||||||
|
scrollbar $cscroll -command {allcanvs yview} -highlightthickness 0
|
||||||
|
pack $cscroll -side right -fill y
|
||||||
|
bind .tf.histframe.pwclist <Configure> {resizeclistpanes %W %w}
|
||||||
|
lappend bglist $canv $canv2 $canv3
|
||||||
|
pack .tf.histframe.pwclist -fill both -expand 1 -side left
|
||||||
|
|
||||||
|
# we have two button bars at bottom of top frame. Bar 1
|
||||||
|
frame .tf.bar
|
||||||
|
frame .tf.lbar -height 15
|
||||||
|
|
||||||
|
set sha1entry .tf.bar.sha1
|
||||||
set entries $sha1entry
|
set entries $sha1entry
|
||||||
set sha1but .ctop.top.bar.sha1label
|
set sha1but .tf.bar.sha1label
|
||||||
button $sha1but -text "SHA1 ID: " -state disabled -relief flat \
|
button $sha1but -text "SHA1 ID: " -state disabled -relief flat \
|
||||||
-command gotocommit -width 8 -font $uifont
|
-command gotocommit -width 8 -font $uifont
|
||||||
$sha1but conf -disabledforeground [$sha1but cget -foreground]
|
$sha1but conf -disabledforeground [$sha1but cget -foreground]
|
||||||
pack .ctop.top.bar.sha1label -side left
|
pack .tf.bar.sha1label -side left
|
||||||
entry $sha1entry -width 40 -font $textfont -textvariable sha1string
|
entry $sha1entry -width 40 -font $textfont -textvariable sha1string
|
||||||
trace add variable sha1string write sha1change
|
trace add variable sha1string write sha1change
|
||||||
pack $sha1entry -side left -pady 2
|
pack $sha1entry -side left -pady 2
|
||||||
@ -505,91 +508,105 @@ proc makewindow {} {
|
|||||||
0x00, 0x38, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0x00, 0x38, 0x00, 0x1c,
|
0x00, 0x38, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0x00, 0x38, 0x00, 0x1c,
|
||||||
0x00, 0x0e, 0x00, 0x07, 0x80, 0x03, 0xc0, 0x01};
|
0x00, 0x0e, 0x00, 0x07, 0x80, 0x03, 0xc0, 0x01};
|
||||||
}
|
}
|
||||||
button .ctop.top.bar.leftbut -image bm-left -command goback \
|
button .tf.bar.leftbut -image bm-left -command goback \
|
||||||
-state disabled -width 26
|
-state disabled -width 26
|
||||||
pack .ctop.top.bar.leftbut -side left -fill y
|
pack .tf.bar.leftbut -side left -fill y
|
||||||
button .ctop.top.bar.rightbut -image bm-right -command goforw \
|
button .tf.bar.rightbut -image bm-right -command goforw \
|
||||||
-state disabled -width 26
|
-state disabled -width 26
|
||||||
pack .ctop.top.bar.rightbut -side left -fill y
|
pack .tf.bar.rightbut -side left -fill y
|
||||||
|
|
||||||
button .ctop.top.bar.findbut -text "Find" -command dofind -font $uifont
|
button .tf.bar.findbut -text "Find" -command dofind -font $uifont
|
||||||
pack .ctop.top.bar.findbut -side left
|
pack .tf.bar.findbut -side left
|
||||||
set findstring {}
|
set findstring {}
|
||||||
set fstring .ctop.top.bar.findstring
|
set fstring .tf.bar.findstring
|
||||||
lappend entries $fstring
|
lappend entries $fstring
|
||||||
entry $fstring -width 30 -font $textfont -textvariable findstring
|
entry $fstring -width 30 -font $textfont -textvariable findstring
|
||||||
trace add variable findstring write find_change
|
trace add variable findstring write find_change
|
||||||
pack $fstring -side left -expand 1 -fill x
|
pack $fstring -side left -expand 1 -fill x -in .tf.bar
|
||||||
set findtype Exact
|
set findtype Exact
|
||||||
set findtypemenu [tk_optionMenu .ctop.top.bar.findtype \
|
set findtypemenu [tk_optionMenu .tf.bar.findtype \
|
||||||
findtype Exact IgnCase Regexp]
|
findtype Exact IgnCase Regexp]
|
||||||
trace add variable findtype write find_change
|
trace add variable findtype write find_change
|
||||||
.ctop.top.bar.findtype configure -font $uifont
|
.tf.bar.findtype configure -font $uifont
|
||||||
.ctop.top.bar.findtype.menu configure -font $uifont
|
.tf.bar.findtype.menu configure -font $uifont
|
||||||
set findloc "All fields"
|
set findloc "All fields"
|
||||||
tk_optionMenu .ctop.top.bar.findloc findloc "All fields" Headline \
|
tk_optionMenu .tf.bar.findloc findloc "All fields" Headline \
|
||||||
Comments Author Committer
|
Comments Author Committer
|
||||||
trace add variable findloc write find_change
|
trace add variable findloc write find_change
|
||||||
.ctop.top.bar.findloc configure -font $uifont
|
.tf.bar.findloc configure -font $uifont
|
||||||
.ctop.top.bar.findloc.menu configure -font $uifont
|
.tf.bar.findloc.menu configure -font $uifont
|
||||||
pack .ctop.top.bar.findloc -side right
|
pack .tf.bar.findloc -side right
|
||||||
pack .ctop.top.bar.findtype -side right
|
pack .tf.bar.findtype -side right
|
||||||
|
|
||||||
label .ctop.top.lbar.flabel -text "Highlight: Commits " \
|
# build up the bottom bar of upper window
|
||||||
|
label .tf.lbar.flabel -text "Highlight: Commits " \
|
||||||
-font $uifont
|
-font $uifont
|
||||||
pack .ctop.top.lbar.flabel -side left -fill y
|
pack .tf.lbar.flabel -side left -fill y
|
||||||
set gdttype "touching paths:"
|
set gdttype "touching paths:"
|
||||||
set gm [tk_optionMenu .ctop.top.lbar.gdttype gdttype "touching paths:" \
|
set gm [tk_optionMenu .tf.lbar.gdttype gdttype "touching paths:" \
|
||||||
"adding/removing string:"]
|
"adding/removing string:"]
|
||||||
trace add variable gdttype write hfiles_change
|
trace add variable gdttype write hfiles_change
|
||||||
$gm conf -font $uifont
|
$gm conf -font $uifont
|
||||||
.ctop.top.lbar.gdttype conf -font $uifont
|
.tf.lbar.gdttype conf -font $uifont
|
||||||
pack .ctop.top.lbar.gdttype -side left -fill y
|
pack .tf.lbar.gdttype -side left -fill y
|
||||||
entry .ctop.top.lbar.fent -width 25 -font $textfont \
|
entry .tf.lbar.fent -width 25 -font $textfont \
|
||||||
-textvariable highlight_files
|
-textvariable highlight_files
|
||||||
trace add variable highlight_files write hfiles_change
|
trace add variable highlight_files write hfiles_change
|
||||||
lappend entries .ctop.top.lbar.fent
|
lappend entries .tf.lbar.fent
|
||||||
pack .ctop.top.lbar.fent -side left -fill x -expand 1
|
pack .tf.lbar.fent -side left -fill x -expand 1
|
||||||
label .ctop.top.lbar.vlabel -text " OR in view" -font $uifont
|
label .tf.lbar.vlabel -text " OR in view" -font $uifont
|
||||||
pack .ctop.top.lbar.vlabel -side left -fill y
|
pack .tf.lbar.vlabel -side left -fill y
|
||||||
global viewhlmenu selectedhlview
|
global viewhlmenu selectedhlview
|
||||||
set viewhlmenu [tk_optionMenu .ctop.top.lbar.vhl selectedhlview None]
|
set viewhlmenu [tk_optionMenu .tf.lbar.vhl selectedhlview None]
|
||||||
$viewhlmenu entryconf None -command delvhighlight
|
$viewhlmenu entryconf None -command delvhighlight
|
||||||
$viewhlmenu conf -font $uifont
|
$viewhlmenu conf -font $uifont
|
||||||
.ctop.top.lbar.vhl conf -font $uifont
|
.tf.lbar.vhl conf -font $uifont
|
||||||
pack .ctop.top.lbar.vhl -side left -fill y
|
pack .tf.lbar.vhl -side left -fill y
|
||||||
label .ctop.top.lbar.rlabel -text " OR " -font $uifont
|
label .tf.lbar.rlabel -text " OR " -font $uifont
|
||||||
pack .ctop.top.lbar.rlabel -side left -fill y
|
pack .tf.lbar.rlabel -side left -fill y
|
||||||
global highlight_related
|
global highlight_related
|
||||||
set m [tk_optionMenu .ctop.top.lbar.relm highlight_related None \
|
set m [tk_optionMenu .tf.lbar.relm highlight_related None \
|
||||||
"Descendent" "Not descendent" "Ancestor" "Not ancestor"]
|
"Descendent" "Not descendent" "Ancestor" "Not ancestor"]
|
||||||
$m conf -font $uifont
|
$m conf -font $uifont
|
||||||
.ctop.top.lbar.relm conf -font $uifont
|
.tf.lbar.relm conf -font $uifont
|
||||||
trace add variable highlight_related write vrel_change
|
trace add variable highlight_related write vrel_change
|
||||||
pack .ctop.top.lbar.relm -side left -fill y
|
pack .tf.lbar.relm -side left -fill y
|
||||||
|
|
||||||
panedwindow .ctop.cdet -orient horizontal
|
# Finish putting the upper half of the viewer together
|
||||||
.ctop add .ctop.cdet
|
pack .tf.lbar -in .tf -side bottom -fill x
|
||||||
frame .ctop.cdet.left
|
pack .tf.bar -in .tf -side bottom -fill x
|
||||||
frame .ctop.cdet.left.bot
|
pack .tf.histframe -fill both -side top -expand 1
|
||||||
pack .ctop.cdet.left.bot -side bottom -fill x
|
.ctop add .tf
|
||||||
button .ctop.cdet.left.bot.search -text "Search" -command dosearch \
|
|
||||||
|
# now build up the bottom
|
||||||
|
panedwindow .pwbottom -orient horizontal
|
||||||
|
|
||||||
|
# lower left, a text box over search bar, scroll bar to the right
|
||||||
|
# if we know window height, then that will set the lower text height, otherwise
|
||||||
|
# we set lower text height which will drive window height
|
||||||
|
if {[info exists geometry(main)]} {
|
||||||
|
frame .bleft -width $geometry(botwidth)
|
||||||
|
} else {
|
||||||
|
frame .bleft -width $geometry(botwidth) -height $geometry(botheight)
|
||||||
|
}
|
||||||
|
frame .bleft.top
|
||||||
|
|
||||||
|
button .bleft.top.search -text "Search" -command dosearch \
|
||||||
-font $uifont
|
-font $uifont
|
||||||
pack .ctop.cdet.left.bot.search -side left -padx 5
|
pack .bleft.top.search -side left -padx 5
|
||||||
set sstring .ctop.cdet.left.bot.sstring
|
set sstring .bleft.top.sstring
|
||||||
entry $sstring -width 20 -font $textfont -textvariable searchstring
|
entry $sstring -width 20 -font $textfont -textvariable searchstring
|
||||||
lappend entries $sstring
|
lappend entries $sstring
|
||||||
trace add variable searchstring write incrsearch
|
trace add variable searchstring write incrsearch
|
||||||
pack $sstring -side left -expand 1 -fill x
|
pack $sstring -side left -expand 1 -fill x
|
||||||
set ctext .ctop.cdet.left.ctext
|
set ctext .bleft.ctext
|
||||||
text $ctext -background $bgcolor -foreground $fgcolor \
|
text $ctext -background $bgcolor -foreground $fgcolor \
|
||||||
-state disabled -font $textfont \
|
-state disabled -font $textfont \
|
||||||
-width $geometry(ctextw) -height $geometry(ctexth) \
|
|
||||||
-yscrollcommand scrolltext -wrap none
|
-yscrollcommand scrolltext -wrap none
|
||||||
scrollbar .ctop.cdet.left.sb -command "$ctext yview"
|
scrollbar .bleft.sb -command "$ctext yview"
|
||||||
pack .ctop.cdet.left.sb -side right -fill y
|
pack .bleft.top -side top -fill x
|
||||||
|
pack .bleft.sb -side right -fill y
|
||||||
pack $ctext -side left -fill both -expand 1
|
pack $ctext -side left -fill both -expand 1
|
||||||
.ctop.cdet add .ctop.cdet.left
|
|
||||||
lappend bglist $ctext
|
lappend bglist $ctext
|
||||||
lappend fglist $ctext
|
lappend fglist $ctext
|
||||||
|
|
||||||
@ -620,36 +637,45 @@ proc makewindow {} {
|
|||||||
$ctext tag conf msep -font [concat $textfont bold]
|
$ctext tag conf msep -font [concat $textfont bold]
|
||||||
$ctext tag conf found -back yellow
|
$ctext tag conf found -back yellow
|
||||||
|
|
||||||
frame .ctop.cdet.right
|
.pwbottom add .bleft
|
||||||
frame .ctop.cdet.right.mode
|
|
||||||
radiobutton .ctop.cdet.right.mode.patch -text "Patch" \
|
# lower right
|
||||||
|
frame .bright
|
||||||
|
frame .bright.mode
|
||||||
|
radiobutton .bright.mode.patch -text "Patch" \
|
||||||
-command reselectline -variable cmitmode -value "patch"
|
-command reselectline -variable cmitmode -value "patch"
|
||||||
radiobutton .ctop.cdet.right.mode.tree -text "Tree" \
|
radiobutton .bright.mode.tree -text "Tree" \
|
||||||
-command reselectline -variable cmitmode -value "tree"
|
-command reselectline -variable cmitmode -value "tree"
|
||||||
grid .ctop.cdet.right.mode.patch .ctop.cdet.right.mode.tree -sticky ew
|
grid .bright.mode.patch .bright.mode.tree -sticky ew
|
||||||
pack .ctop.cdet.right.mode -side top -fill x
|
pack .bright.mode -side top -fill x
|
||||||
set cflist .ctop.cdet.right.cfiles
|
set cflist .bright.cfiles
|
||||||
set indent [font measure $mainfont "nn"]
|
set indent [font measure $mainfont "nn"]
|
||||||
text $cflist -width $geometry(cflistw) \
|
text $cflist \
|
||||||
-background $bgcolor -foreground $fgcolor \
|
-background $bgcolor -foreground $fgcolor \
|
||||||
-font $mainfont \
|
-font $mainfont \
|
||||||
-tabs [list $indent [expr {2 * $indent}]] \
|
-tabs [list $indent [expr {2 * $indent}]] \
|
||||||
-yscrollcommand ".ctop.cdet.right.sb set" \
|
-yscrollcommand ".bright.sb set" \
|
||||||
-cursor [. cget -cursor] \
|
-cursor [. cget -cursor] \
|
||||||
-spacing1 1 -spacing3 1
|
-spacing1 1 -spacing3 1
|
||||||
lappend bglist $cflist
|
lappend bglist $cflist
|
||||||
lappend fglist $cflist
|
lappend fglist $cflist
|
||||||
scrollbar .ctop.cdet.right.sb -command "$cflist yview"
|
scrollbar .bright.sb -command "$cflist yview"
|
||||||
pack .ctop.cdet.right.sb -side right -fill y
|
pack .bright.sb -side right -fill y
|
||||||
pack $cflist -side left -fill both -expand 1
|
pack $cflist -side left -fill both -expand 1
|
||||||
$cflist tag configure highlight \
|
$cflist tag configure highlight \
|
||||||
-background [$cflist cget -selectbackground]
|
-background [$cflist cget -selectbackground]
|
||||||
$cflist tag configure bold -font [concat $mainfont bold]
|
$cflist tag configure bold -font [concat $mainfont bold]
|
||||||
.ctop.cdet add .ctop.cdet.right
|
|
||||||
bind .ctop.cdet <Configure> {resizecdetpanes %W %w}
|
|
||||||
|
|
||||||
pack .ctop -side top -fill both -expand 1
|
.pwbottom add .bright
|
||||||
|
.ctop add .pwbottom
|
||||||
|
|
||||||
|
# restore window position if known
|
||||||
|
if {[info exists geometry(main)]} {
|
||||||
|
wm geometry . "$geometry(main)"
|
||||||
|
}
|
||||||
|
|
||||||
|
bind .pwbottom <Configure> {resizecdetpanes %W %w}
|
||||||
|
pack .ctop -fill both -expand 1
|
||||||
bindall <1> {selcanvline %W %x %y}
|
bindall <1> {selcanvline %W %x %y}
|
||||||
#bindall <B1-Motion> {selcanvline %W %x %y}
|
#bindall <B1-Motion> {selcanvline %W %x %y}
|
||||||
bindall <ButtonRelease-4> "allcanvs yview scroll -5 units"
|
bindall <ButtonRelease-4> "allcanvs yview scroll -5 units"
|
||||||
@ -802,18 +828,16 @@ proc savestuff {w} {
|
|||||||
puts $f [list set fgcolor $fgcolor]
|
puts $f [list set fgcolor $fgcolor]
|
||||||
puts $f [list set colors $colors]
|
puts $f [list set colors $colors]
|
||||||
puts $f [list set diffcolors $diffcolors]
|
puts $f [list set diffcolors $diffcolors]
|
||||||
puts $f "set geometry(width) [winfo width .ctop]"
|
|
||||||
puts $f "set geometry(height) [winfo height .ctop]"
|
puts $f "set geometry(main) [winfo geometry .]"
|
||||||
puts $f "set geometry(canv1) [expr {[winfo width $canv]-2}]"
|
puts $f "set geometry(topwidth) [winfo width .tf]"
|
||||||
puts $f "set geometry(canv2) [expr {[winfo width $canv2]-2}]"
|
puts $f "set geometry(topheight) [winfo height .tf]"
|
||||||
puts $f "set geometry(canv3) [expr {[winfo width $canv3]-2}]"
|
puts $f "set geometry(canv) [expr {[winfo width $canv]-0}]"
|
||||||
puts $f "set geometry(canvh) [expr {[winfo height $canv]-2}]"
|
puts $f "set geometry(canv2) [expr {[winfo width $canv2]-0}]"
|
||||||
set wid [expr {([winfo width $ctext] - 8) \
|
puts $f "set geometry(canv3) [expr {[winfo width $canv3]-0}]"
|
||||||
/ [font measure $textfont "0"]}]
|
puts $f "set geometry(botwidth) [winfo width .bleft]"
|
||||||
puts $f "set geometry(ctextw) $wid"
|
puts $f "set geometry(botheight) [winfo height .bleft]"
|
||||||
set wid [expr {([winfo width $cflist] - 11) \
|
|
||||||
/ [font measure [$cflist cget -font] "0"]}]
|
|
||||||
puts $f "set geometry(cflistw) $wid"
|
|
||||||
puts -nonewline $f "set permviews {"
|
puts -nonewline $f "set permviews {"
|
||||||
for {set v 0} {$v < $nextviewnum} {incr v} {
|
for {set v 0} {$v < $nextviewnum} {incr v} {
|
||||||
if {$viewperm($v)} {
|
if {$viewperm($v)} {
|
||||||
@ -4043,11 +4067,11 @@ proc addtohistory {cmd} {
|
|||||||
}
|
}
|
||||||
incr historyindex
|
incr historyindex
|
||||||
if {$historyindex > 1} {
|
if {$historyindex > 1} {
|
||||||
.ctop.top.bar.leftbut conf -state normal
|
.tf.bar.leftbut conf -state normal
|
||||||
} else {
|
} else {
|
||||||
.ctop.top.bar.leftbut conf -state disabled
|
.tf.bar.leftbut conf -state disabled
|
||||||
}
|
}
|
||||||
.ctop.top.bar.rightbut conf -state disabled
|
.tf.bar.rightbut conf -state disabled
|
||||||
}
|
}
|
||||||
|
|
||||||
proc godo {elt} {
|
proc godo {elt} {
|
||||||
@ -4067,10 +4091,10 @@ proc goback {} {
|
|||||||
if {$historyindex > 1} {
|
if {$historyindex > 1} {
|
||||||
incr historyindex -1
|
incr historyindex -1
|
||||||
godo [lindex $history [expr {$historyindex - 1}]]
|
godo [lindex $history [expr {$historyindex - 1}]]
|
||||||
.ctop.top.bar.rightbut conf -state normal
|
.tf.bar.rightbut conf -state normal
|
||||||
}
|
}
|
||||||
if {$historyindex <= 1} {
|
if {$historyindex <= 1} {
|
||||||
.ctop.top.bar.leftbut conf -state disabled
|
.tf.bar.leftbut conf -state disabled
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4081,10 +4105,10 @@ proc goforw {} {
|
|||||||
set cmd [lindex $history $historyindex]
|
set cmd [lindex $history $historyindex]
|
||||||
incr historyindex
|
incr historyindex
|
||||||
godo $cmd
|
godo $cmd
|
||||||
.ctop.top.bar.leftbut conf -state normal
|
.tf.bar.leftbut conf -state normal
|
||||||
}
|
}
|
||||||
if {$historyindex >= [llength $history]} {
|
if {$historyindex >= [llength $history]} {
|
||||||
.ctop.top.bar.rightbut conf -state disabled
|
.tf.bar.rightbut conf -state disabled
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4591,7 +4615,7 @@ proc searchmarkvisible {doall} {
|
|||||||
proc scrolltext {f0 f1} {
|
proc scrolltext {f0 f1} {
|
||||||
global searchstring
|
global searchstring
|
||||||
|
|
||||||
.ctop.cdet.left.sb set $f0 $f1
|
.bleft.sb set $f0 $f1
|
||||||
if {$searchstring ne {}} {
|
if {$searchstring ne {}} {
|
||||||
searchmarkvisible 0
|
searchmarkvisible 0
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user