Instantiate elementResizeDetector instances lazily

This avoids references to browser globals during snapshot creation.
This commit is contained in:
Nathan Sobo
2017-03-16 15:56:26 -06:00
committed by Thomas Johansen
parent a723614750
commit b6e3806e77
2 changed files with 6 additions and 2 deletions

View File

@@ -1,4 +1,5 @@
elementResizeDetector = require('element-resize-detector')({strategy: 'scroll'})
ElementResizeDetector = require('element-resize-detector')
elementResizeDetector = null
module.exports =
class OverlayManager
@@ -32,6 +33,7 @@ class OverlayManager
unless overlayNode = cachedOverlay?.overlayNode
overlayNode = document.createElement('atom-overlay')
overlayNode.classList.add(klass) if klass?
elementResizeDetector ?= ElementResizeDetector({strategy: 'scroll'})
elementResizeDetector.listenTo(overlayNode, =>
if overlayNode.parentElement?
@measureOverlay(decorationId, itemView)

View File

@@ -3,7 +3,8 @@ scrollbarStyle = require 'scrollbar-style'
{CompositeDisposable, Disposable} = require 'event-kit'
{ipcRenderer} = require 'electron'
Grim = require 'grim'
elementResizeDetector = require('element-resize-detector')({strategy: 'scroll'})
ElementResizeDetector = require('element-resize-detector')
elementResizeDetector = null
TextEditorPresenter = require './text-editor-presenter'
GutterContainerComponent = require './gutter-container-component'
@@ -134,6 +135,7 @@ class TextEditorComponent
@becameVisible() if @isVisible()
measureDimensions = @measureDimensions.bind(this)
elementResizeDetector ?= ElementResizeDetector({strategy: 'scroll'})
elementResizeDetector.listenTo(@domNode, measureDimensions)
@disposables.add(new Disposable => elementResizeDetector.removeListener(@domNode, measureDimensions))