diff --git a/package.json b/package.json index 7bc4b827e..13fa143e0 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "random-words": "0.0.1", "runas": "0.5.x", "scandal": "0.15.0", + "scrollbar-style": "^0.1.0", "season": ">=1.0.2 <2.0", "semver": "1.1.4", "serializable": "1.x", diff --git a/spec/workspace-view-spec.coffee b/spec/workspace-view-spec.coffee index e034d9ed4..41e9940d3 100644 --- a/spec/workspace-view-spec.coffee +++ b/spec/workspace-view-spec.coffee @@ -241,3 +241,11 @@ describe "WorkspaceView", -> expect(atom.workspaceView.getActivePane().getItems()).toHaveLength 1 atom.workspaceView.trigger('core:close') expect(atom.workspaceView.getActivePane().getItems()).toHaveLength 0 + + describe "the scrollbar visibility class", -> + it "has a class based on the style of the scrollbar", -> + scrollbarStyle = require 'scrollbar-style' + scrollbarStyle.emitValue 'legacy' + expect(atom.workspaceView).toHaveClass 'scrollbars-visible-always' + scrollbarStyle.emitValue 'overlay' + expect(atom.workspaceView).toHaveClass 'scrollbars-visible-when-scrolling' diff --git a/src/workspace-view.coffee b/src/workspace-view.coffee index 1ca57cfe7..4cd503cf9 100644 --- a/src/workspace-view.coffee +++ b/src/workspace-view.coffee @@ -3,6 +3,7 @@ path = require 'path' Q = require 'q' _ = require 'underscore-plus' Delegator = require 'delegato' +scrollbarStyle = require 'scrollbar-style' {$, $$, View} = require './space-pen-extensions' fs = require 'fs-plus' Workspace = require './workspace' @@ -81,6 +82,14 @@ class WorkspaceView extends View @subscribe @model, 'uri-opened', => @trigger 'uri-opened' + @subscribe scrollbarStyle, (style) => + @removeClass('scrollbars-visible-always scrollbars-visible-when-scrolling') + switch style + when 'legacy' + @addClass("scrollbars-visible-always") + when 'overlay' + @addClass("scrollbars-visible-when-scrolling") + @updateTitle() @on 'focus', (e) => @handleFocus(e)