Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [RFC/PATCH 4/4] git-gui: incremental goto line in blame view

From: Pat Thoyts <hidden>
Date: 2016-06-15 22:52:16

Bert Wesarg [off-list ref] writes:
quoted hunk
The view jumps now to the given line number after each key press.

Signed-off-by: Bert Wesarg <redacted>
---

I didn't know this before, but gedits goto-line-dialog works this way.

lib/line.tcl |   15 +++++++++++----
1 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/lib/line.tcl b/lib/line.tcl
index 70785e1..0113e06 100644
--- a/lib/line.tcl
+++ b/lib/line.tcl
@@ -20,7 +20,7 @@ constructor new {i_w i_text args} {
		-background lightgreen \
		-validate key \
		-validatecommand [cb _validate %P]
-	${NS}::button $w.bn      -text [mc Go] -command [cb _incrgoto]
+	${NS}::button $w.bn      -text [mc Go] -command [cb _goto]

	pack   $w.l   -side left
	pack   $w.bn  -side right
@@ -29,7 +29,8 @@ constructor new {i_w i_text args} {
	eval grid conf $w -sticky we $args
	grid remove $w

-	bind $w.ent <Return> [cb _incrgoto]
+	trace add variable linenum write [cb _goto_cb]
+	bind $w.ent <Return> [cb _goto]
	bind $w.ent <Escape> [cb hide]

	bind $w <Destroy> [list delete_this $this]
@@ -67,10 +68,16 @@ method _validate {P} {
	return 0
}

-method _incrgoto {} {
+method _goto_cb {name ix op} {
+	after idle [cb _goto 1]
+}
+
+method _goto {{nohide {0}}} {
	if {$linenum ne {}} {
		$ctext see $linenum.0
-		hide $this
+		if {!$nohide} {
+			hide $this
+		}
	}
}
Works fine. Will apply.

OK These 4 patches are applied and pushed to master branch - with
modifications made to 'only accept numbers in the goto-line input' made
as mentioned.

Thanks,

-- 
Pat Thoyts                            http://www.patthoyts.tk/
PGP fingerprint 2C 6E 98 07 2C 59 C8 97  10 CE 11 E6 04 E0 B9 DD
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help