Merge pull request #11325 from atom/as-fix-emojis

Fix emoji rendering on OSX
This commit is contained in:
Antonio Scandurra
2016-03-31 17:45:58 +02:00
2 changed files with 13 additions and 3 deletions

View File

@@ -47,9 +47,14 @@ describe "WorkspaceElement", ->
it "updates the font-family based on the 'editor.fontFamily' config value", ->
initialCharWidth = editor.getDefaultCharWidth()
expect(getComputedStyle(editorElement).fontFamily).toBe atom.config.get('editor.fontFamily')
fontFamily = atom.config.get('editor.fontFamily')
fontFamily += ", 'Apple Color Emoji'" if process.platform is 'darwin'
expect(getComputedStyle(editorElement).fontFamily).toBe fontFamily
atom.config.set('editor.fontFamily', 'sans-serif')
expect(getComputedStyle(editorElement).fontFamily).toBe atom.config.get('editor.fontFamily')
fontFamily = atom.config.get('editor.fontFamily')
fontFamily += ", 'Apple Color Emoji'" if process.platform is 'darwin'
expect(getComputedStyle(editorElement).fontFamily).toBe fontFamily
expect(editor.getDefaultCharWidth()).not.toBe initialCharWidth
it "updates the line-height based on the 'editor.lineHeight' config value", ->

View File

@@ -44,10 +44,15 @@ class WorkspaceElement extends HTMLElement
@subscriptions.add @config.onDidChange 'editor.lineHeight', @updateGlobalTextEditorStyleSheet.bind(this)
updateGlobalTextEditorStyleSheet: ->
fontFamily = @config.get('editor.fontFamily')
# TODO: There is a bug in how some emojis (e.g. ❤️) are rendered on OSX.
# This workaround should be removed once we update to Chromium 51, where the
# problem was fixed.
fontFamily += ', "Apple Color Emoji"' if process.platform is 'darwin'
styleSheetSource = """
atom-text-editor {
font-size: #{@config.get('editor.fontSize')}px;
font-family: #{@config.get('editor.fontFamily')};
font-family: #{fontFamily};
line-height: #{@config.get('editor.lineHeight')};
}
"""