From d6185f3c91c2eff1befc14d61443de8a28ac92f5 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Sun, 10 Feb 2013 11:06:08 -0500
Subject: [PATCH] Only scroll tree list of selected item isn't fully visible

---
 program/js/treelist.js |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/program/js/treelist.js b/program/js/treelist.js
index d6d50e4..fec2d7f 100644
--- a/program/js/treelist.js
+++ b/program/js/treelist.js
@@ -442,8 +442,12 @@
 	 */
 	function scroll_to_node(li)
 	{
-		var scroller = container.parent();
-		scroller.scrollTop(li.offset().top - scroller.offset().top + scroller.scrollTop());
+		var scroller = container.parent(),
+			current_offset = scroller.scrollTop(),
+			rel_offset = li.offset().top - scroller.offset().top;
+
+		if (rel_offset < 0 || rel_offset + li.height() > scroller.height())
+			scroller.scrollTop(rel_offset + current_offset);
 	}
 
 	///// drag & drop support

--
Gitblit v1.9.1