added support for live feedback in scrollbars
diff --git a/Mac/Tools/IDE/Wcontrols.py b/Mac/Tools/IDE/Wcontrols.py
index 71d734c..ab6ae96 100644
--- a/Mac/Tools/IDE/Wcontrols.py
+++ b/Mac/Tools/IDE/Wcontrols.py
@@ -295,8 +295,11 @@
 	
 	"""Standard scrollbar."""
 	
-	def __init__(self, possize, callback = None, value = 0, min = 0, max = 0):
-		procID = Controls.scrollBarProc
+	def __init__(self, possize, callback=None, value=0, min=0, max=0, livefeedback=1):
+		if livefeedback:
+			procID = Controls.kControlScrollBarLiveProc
+		else:
+			procID = Controls.scrollBarProc
 		ControlWidget.__init__(self, possize, "", procID, callback, value, min, max)
 	
 	# interface
@@ -373,34 +376,15 @@
 	def click(self, point, modifiers):
 		if not self._enabled:
 			return
-		# custom TrackControl. A mousedown in a scrollbar arrow or page area should
-		# generate _control hits as long as the mouse is a) down, b) still in the same part
-		part = self._control.TestControl(point)
-		if Controls.inUpButton <= part <= Controls.inPageDown:	
-			self._control.HiliteControl(part)
-			self._hit(part)
-			oldpart = part
-			# slight delay before scrolling at top speed...
-			now = Evt.TickCount()
-			while Evt.StillDown():
-				if (Evt.TickCount() - now) > 18: # 0.3 seconds
-					break
-			while Evt.StillDown():
-				part = self._control.TestControl(point)
-				if part == oldpart:
-					self._control.HiliteControl(part)
-					self._hit(part)
-				else:
-					self._control.HiliteControl(0)
-				self.SetPort()
-				point = Evt.GetMouse()
-			self._control.HiliteControl(0)
-		elif part == Controls.inThumb:
-			part = self._control.TrackControl(point)
+		def hitter(ctl, part, self=self):
 			if part:
 				self._hit(part)
+		part = self._control.TrackControl(point, hitter)
+		if part:
+			self._hit(part)
 	
 	def _hit(self, part):
+		value = None
 		if part == Controls.inThumb:
 			try:
 				value = self._control.GetControl32BitValue()
@@ -416,7 +400,7 @@
 			value = "++"
 		elif part == Controls.inPageDown:
 			value = "--"
-		if self._callback:
+		if value is not None and self._callback:
 			Wbase.CallbackCall(self._callback, 1, value)
 	
 	def draw(self, visRgn = None):