mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-24 03:23:10 +00:00
Only bind to Ace if track changes is enabled
This commit is contained in:
parent
ecd81738cb
commit
04c151eed0
2 changed files with 36 additions and 34 deletions
|
@ -217,14 +217,6 @@ define [
|
|||
session = editor.getSession()
|
||||
session.setOption("useWorker", value);
|
||||
|
||||
scope.$watch "trackChangesEnabled", (enabled) ->
|
||||
return if !enabled?
|
||||
if enabled
|
||||
trackChangesManager.enable()
|
||||
else
|
||||
trackChangesManager.disable()
|
||||
|
||||
|
||||
editor.setOption("scrollPastEnd", true)
|
||||
|
||||
updateCount = 0
|
||||
|
|
|
@ -20,20 +20,6 @@ define [
|
|||
return if !track_new_changes?
|
||||
@changesTracker?.track_changes = track_new_changes
|
||||
|
||||
changingSelection = false
|
||||
@editor.on "changeSelection", (args...) =>
|
||||
# Deletes can send about 5 changeSelection events, so
|
||||
# just act on the last one.
|
||||
if !changingSelection
|
||||
changingSelection = true
|
||||
@$scope.$evalAsync () =>
|
||||
changingSelection = false
|
||||
@updateFocus()
|
||||
@recalculateReviewEntriesScreenPositions()
|
||||
|
||||
@editor.on "changeSession", () =>
|
||||
@redrawAnnotations()
|
||||
|
||||
@$scope.$on "comment:add", (e, comment) =>
|
||||
@addCommentToSelection(comment)
|
||||
|
||||
|
@ -58,8 +44,22 @@ define [
|
|||
@$scope.$on "review-panel:recalculate-screen-positions", () =>
|
||||
@recalculateReviewEntriesScreenPositions()
|
||||
|
||||
changingSelection = false
|
||||
onChangeSelection = (args...) =>
|
||||
# Deletes can send about 5 changeSelection events, so
|
||||
# just act on the last one.
|
||||
if !changingSelection
|
||||
changingSelection = true
|
||||
@$scope.$evalAsync () =>
|
||||
changingSelection = false
|
||||
@updateFocus()
|
||||
@recalculateReviewEntriesScreenPositions()
|
||||
|
||||
onResize = () =>
|
||||
@recalculateReviewEntriesScreenPositions()
|
||||
|
||||
onChange = (e) =>
|
||||
if !@editor.initing and @enabled
|
||||
if !@editor.initing
|
||||
# This change is trigger by a sharejs 'change' event, which is before the
|
||||
# sharejs 'remoteop' event. So wait until the next event loop when the 'remoteop'
|
||||
# will have fired, before we decide if it was a remote op.
|
||||
|
@ -87,13 +87,29 @@ define [
|
|||
@checkMapping()
|
||||
, 100
|
||||
|
||||
@editor.on "changeSession", (e) =>
|
||||
onChangeSession = (e) =>
|
||||
e.oldSession?.getDocument().off "change", onChange
|
||||
e.session.getDocument().on "change", onChange
|
||||
@editor.getSession().getDocument().on "change", onChange
|
||||
|
||||
@editor.renderer.on "resize", () =>
|
||||
@recalculateReviewEntriesScreenPositions()
|
||||
@redrawAnnotations()
|
||||
|
||||
bindToAce = () =>
|
||||
@editor.getSession().getDocument().on "change", onChange
|
||||
@editor.on "changeSelection", onChangeSelection
|
||||
@editor.on "changeSession", onChangeSession
|
||||
@editor.renderer.on "resize", onResize
|
||||
|
||||
unbindFromAce = () =>
|
||||
@editor.getSession().getDocument().off "change", onChange
|
||||
@editor.off "changeSelection", onChangeSelection
|
||||
@editor.off "changeSession", onChangeSession
|
||||
@editor.renderer.off "resize", onResize
|
||||
|
||||
@$scope.$watch "trackChangesEnabled", (enabled) =>
|
||||
return if !enabled?
|
||||
if enabled
|
||||
bindToAce()
|
||||
else
|
||||
unbindFromAce()
|
||||
|
||||
disconnectFromChangesTracker: () ->
|
||||
@changeIdToMarkerIdMap = {}
|
||||
|
@ -155,12 +171,6 @@ define [
|
|||
for comment in @changesTracker.comments
|
||||
@_onCommentAdded(comment)
|
||||
|
||||
enable: () ->
|
||||
@enabled = true
|
||||
|
||||
disable: () ->
|
||||
@disabled = false
|
||||
|
||||
addComment: (offset, length, content) ->
|
||||
@changesTracker.addComment offset, length, {
|
||||
thread: [{
|
||||
|
|
Loading…
Reference in a new issue