diff --git a/services/web/app/views/project/editor/editor.jade b/services/web/app/views/project/editor/editor.jade index 4988e56dc4..d31be444af 100644 --- a/services/web/app/views/project/editor/editor.jade +++ b/services/web/app/views/project/editor/editor.jade @@ -55,6 +55,7 @@ div.full-size( track-changes-enabled="trackChangesFeatureFlag", track-changes= "editor.trackChanges", doc-id="editor.open_doc_id" + renderer-data="reviewPanel.rendererData" ) include ./review-panel diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor.coffee index 8a3b00a61e..41c70b4dee 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor.coffee @@ -57,6 +57,7 @@ define [ trackChanges: "=" trackChangesEnabled: "=" docId: "=" + rendererData: "=" } link: (scope, element, attrs) -> # Don't freak out if we're already in an apply callback @@ -317,6 +318,14 @@ define [ doc = session.getDocument() doc.off "change", onChange + + editor.renderer.on "changeCharacterSize", () -> + scope.$apply () -> + scope.rendererData.lineHeight = editor.renderer.lineHeight + + scope.$watch "rendererData", (rendererData) -> + if rendererData? + rendererData.lineHeight = editor.renderer.lineHeight template: """
diff --git a/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee b/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee index 6dae528436..1db13c291e 100644 --- a/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee +++ b/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee @@ -23,6 +23,7 @@ define [ commentThreads: {} resolvedThreadIds: {} layoutToLeft: false + rendererData: {} $scope.$on "layout:pdf:linked", (event, state) -> $scope.reviewPanel.layoutToLeft = (state.east?.size < 220 || state.east?.initClosed) diff --git a/services/web/public/coffee/ide/review-panel/directives/reviewPanelSorted.coffee b/services/web/public/coffee/ide/review-panel/directives/reviewPanelSorted.coffee index 72fd0f1a58..2bd66c723e 100644 --- a/services/web/public/coffee/ide/review-panel/directives/reviewPanelSorted.coffee +++ b/services/web/public/coffee/ide/review-panel/directives/reviewPanelSorted.coffee @@ -32,6 +32,8 @@ define [ return if entries.length == 0 + line_height = scope.reviewPanel.rendererData.lineHeight + focused_entry_index = Math.min(previous_focused_entry_index, entries.length - 1) for entry, i in entries if entry.scope.entry.focused @@ -57,15 +59,13 @@ define [ previousMinTop += PADDING + height min_tops.reverse() - line_height = 15 - positionLayoutEl = ($callout_el, original_top, top) -> if original_top <= top $callout_el.removeClass("rp-entry-callout-inverted") - $callout_el.css(top: original_top + line_height, height: top - original_top) + $callout_el.css(top: original_top + line_height - 1, height: top - original_top) else $callout_el.addClass("rp-entry-callout-inverted") - $callout_el.css(top: top + line_height + 1, height: original_top - top) + $callout_el.css(top: top + line_height, height: original_top - top) # Put the focused entry as close to where it wants to be as possible focused_entry_top = Math.max(previousMinTop, focused_entry.scope.entry.screenPos.y) @@ -104,6 +104,9 @@ define [ scope.$on "review-panel:layout", () -> scope.$applyAsync () -> layout() + + scope.$watch "reviewPanel.rendererData.lineHeight", () -> + layout() ## Scroll lock with Ace scroller = element