Explorar o código

always send the latest position when emitting updatePosition event

Avoid sending outdated position by capturing the current position in
$scope.currentPostion on every call and sending it the when the timer
for updatePosition runs.
Brian Gough %!s(int64=11) %!d(string=hai) anos
pai
achega
d0c759c6fb

+ 5 - 3
services/web/public/coffee/ide/online-users/OnlineUsersManager.coffee

@@ -82,13 +82,15 @@ define [
 
 
 		sendCursorPositionUpdate: (position) ->
+			if position?
+				@$scope.currentPosition = position  # keep track of the latest position
 			if !@cursorUpdateTimeout?
 				@cursorUpdateTimeout = setTimeout ()=>
 					doc_id   = @$scope.editor.open_doc_id
-
+					# always send the latest position to other clients
 					@ide.socket.emit "clientTracking.updatePosition", {
-						row: position.row
-						column: position.column
+						row: @$scope.currentPosition?.row
+						column: @$scope.currentPosition?.column
 						doc_id: doc_id
 					}