* [PATCH (GIT-GUI) 1/2] git-gui: Fix the Remote menu separator.
@ 2008-07-27 6:34 Alexander Gavrilov
2008-07-27 6:35 ` [PATCH (GIT-GUI) 2/2] git-gui: Preserve scroll position on reshow_diff Alexander Gavrilov
0 siblings, 1 reply; 2+ messages in thread
From: Alexander Gavrilov @ 2008-07-27 6:34 UTC (permalink / raw)
To: Shawn O. Pearce; +Cc: git
It was positioned incorrectly (offset by one position)
if the menu had a tear-off handle.
Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
---
A couple of random fixes.
-- Alexander
git-gui.sh | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/git-gui.sh b/git-gui.sh
index 9d0627d..da903a1 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -2926,6 +2926,7 @@ if {[is_enabled transport]} {
populate_fetch_menu
set n [expr {[.mbar.remote index end] - $n}]
if {$n > 0} {
+ if {[.mbar.remote type 0] eq "tearoff"} { incr n }
.mbar.remote insert $n separator
}
unset n
--
1.5.6.3.18.gfe82
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH (GIT-GUI) 2/2] git-gui: Preserve scroll position on reshow_diff.
2008-07-27 6:34 [PATCH (GIT-GUI) 1/2] git-gui: Fix the Remote menu separator Alexander Gavrilov
@ 2008-07-27 6:35 ` Alexander Gavrilov
0 siblings, 0 replies; 2+ messages in thread
From: Alexander Gavrilov @ 2008-07-27 6:35 UTC (permalink / raw)
To: Shawn O. Pearce; +Cc: git
It is especially useful for Stage/Unstage Line, because
they invoke full state scan and diff reload, which originally
would reset the scroll position to the top of the file.
Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
---
lib/diff.tcl | 18 ++++++++++++++----
1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/lib/diff.tcl b/lib/diff.tcl
index 96ba949..1c1aa56 100644
--- a/lib/diff.tcl
+++ b/lib/diff.tcl
@@ -19,6 +19,7 @@ proc clear_diff {} {
proc reshow_diff {} {
global file_states file_lists
global current_diff_path current_diff_side
+ global ui_diff
set p $current_diff_path
if {$p eq {}} {
@@ -28,7 +29,8 @@ proc reshow_diff {} {
|| [lsearch -sorted -exact $file_lists($current_diff_side) $p] == -1} {
clear_diff
} else {
- show_diff $p $current_diff_side
+ set save_pos [lindex [$ui_diff yview] 0]
+ show_diff $p $current_diff_side {} $save_pos
}
}
@@ -52,7 +54,7 @@ A rescan will be automatically started to find other files which may have the sa
rescan ui_ready 0
}
-proc show_diff {path w {lno {}}} {
+proc show_diff {path w {lno {}} {scroll_pos {}}} {
global file_states file_lists
global is_3way_diff diff_active repo_config
global ui_diff ui_index ui_workdir
@@ -151,6 +153,10 @@ proc show_diff {path w {lno {}}} {
$ui_diff conf -state disabled
set diff_active 0
unlock_index
+ if {$scroll_pos ne {}} {
+ update
+ $ui_diff yview moveto $scroll_pos
+ }
ui_ready
return
}
@@ -190,10 +196,10 @@ proc show_diff {path w {lno {}}} {
-blocking 0 \
-encoding binary \
-translation binary
- fileevent $fd readable [list read_diff $fd]
+ fileevent $fd readable [list read_diff $fd $scroll_pos]
}
-proc read_diff {fd} {
+proc read_diff {fd scroll_pos} {
global ui_diff diff_active
global is_3way_diff current_diff_header
@@ -282,6 +288,10 @@ proc read_diff {fd} {
close $fd
set diff_active 0
unlock_index
+ if {$scroll_pos ne {}} {
+ update
+ $ui_diff yview moveto $scroll_pos
+ }
ui_ready
if {[$ui_diff index end] eq {2.0}} {
--
1.5.6.3.18.gfe82
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-07-27 6:37 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-27 6:34 [PATCH (GIT-GUI) 1/2] git-gui: Fix the Remote menu separator Alexander Gavrilov
2008-07-27 6:35 ` [PATCH (GIT-GUI) 2/2] git-gui: Preserve scroll position on reshow_diff Alexander Gavrilov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).