فهرست منبع

handle destroy event in pdf page view and remove pending timeouts

Brian Gough 12 سال پیش
والد
کامیت
4faac88065
1فایلهای تغییر یافته به همراه10 افزوده شده و 2 حذف شده
  1. 10 2
      services/web/public/coffee/ide/pdfng/directives/pdfPage.coffee

+ 10 - 2
services/web/public/coffee/ide/pdfng/directives/pdfPage.coffee

@@ -89,6 +89,11 @@ define [
 				scope.$watch 'highlights', (highlights, oldVal) ->
 					return unless highlights?
 					return unless highlights.length > 0
+					if scope.timeoutHandler
+						$timeout.cancel(scope.timeoutHandler)
+						highlightsLayer.clearHighlights()
+						scope.timeoutHandler
+
 					# console.log 'got highlight watch in pdfPage', scope.page
 					pageHighlights = (h for h in highlights when h.page == scope.page.pageNum)
 					return unless pageHighlights.length
@@ -97,12 +102,15 @@ define [
 							# console.log 'adding highlight', h, viewport
 							top = viewport.viewBox[3] - hl.v
 							highlightsLayer.addHighlight viewport, hl.h, top, hl.width, hl.height
-					$timeout () ->
+					scope.timeoutHandler = $timeout () ->
 						highlightsLayer.clearHighlights()
+						scope.timeoutHandler = null
 					, 1000
 
 				scope.$on "$destroy", () ->
-					console.log 'in destroy handler, TODO need to clean up timeout/highlights'
+					if scope.timeoutHandler
+						$timeout.cancel(scope.timeoutHandler)
+						highlightsLayer.clearHighlights()
 
 		}
 	]