diff --git a/resources/celerity/map.php b/resources/celerity/map.php --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -10,10 +10,10 @@ 'conpherence.pkg.css' => 'ff161f2d', 'conpherence.pkg.js' => 'b5b51108', 'core.pkg.css' => '5ffe8b79', - 'core.pkg.js' => 'e822b496', + 'core.pkg.js' => '6b2da600', 'darkconsole.pkg.js' => '1f9a31bc', - 'differential.pkg.css' => '4d7dd14e', - 'differential.pkg.js' => '0dfe037d', + 'differential.pkg.css' => 'bf87589e', + 'differential.pkg.js' => 'ee4f14c5', 'diffusion.pkg.css' => 'b93d9b8c', 'diffusion.pkg.js' => '84c8f8fd', 'favicon.ico' => '30672e08', @@ -64,7 +64,7 @@ 'rsrc/css/application/dashboard/dashboard.css' => 'fe5b1869', 'rsrc/css/application/diff/inline-comment-summary.css' => '51efda3a', 'rsrc/css/application/differential/add-comment.css' => 'c47f8c40', - 'rsrc/css/application/differential/changeset-view.css' => '54774a28', + 'rsrc/css/application/differential/changeset-view.css' => 'fa476ec0', 'rsrc/css/application/differential/core.css' => '5b7b8ff4', 'rsrc/css/application/differential/phui-inline-comment.css' => 'ffd1a542', 'rsrc/css/application/differential/revision-comment.css' => '14b8565a', @@ -247,7 +247,7 @@ 'rsrc/externals/javelin/lib/Resource.js' => '44959b73', 'rsrc/externals/javelin/lib/Routable.js' => 'b3e7d692', 'rsrc/externals/javelin/lib/Router.js' => '29274e2b', - 'rsrc/externals/javelin/lib/Scrollbar.js' => '087e919c', + 'rsrc/externals/javelin/lib/Scrollbar.js' => '9065f639', 'rsrc/externals/javelin/lib/Sound.js' => '949c0fe5', 'rsrc/externals/javelin/lib/URI.js' => 'c989ade3', 'rsrc/externals/javelin/lib/Vector.js' => '2caa8fb8', @@ -394,7 +394,7 @@ 'rsrc/js/application/diff/DiffChangesetList.js' => 'a716ca27', 'rsrc/js/application/diff/DiffInline.js' => '77e14b60', 'rsrc/js/application/diff/ScrollObjective.js' => '0eee7a00', - 'rsrc/js/application/diff/ScrollObjectiveList.js' => '1ca4d9db', + 'rsrc/js/application/diff/ScrollObjectiveList.js' => '085dd101', 'rsrc/js/application/diff/behavior-preview-link.js' => '051c7832', 'rsrc/js/application/differential/behavior-comment-preview.js' => '51c5ad07', 'rsrc/js/application/differential/behavior-diff-radios.js' => 'e1ff79b1', @@ -567,7 +567,7 @@ 'conpherence-thread-manager' => '4d863052', 'conpherence-transaction-css' => '85129c68', 'd3' => 'a11a5ff2', - 'differential-changeset-view-css' => '54774a28', + 'differential-changeset-view-css' => 'fa476ec0', 'differential-core-view-css' => '5b7b8ff4', 'differential-revision-add-comment-css' => 'c47f8c40', 'differential-revision-comment-css' => '14b8565a', @@ -732,7 +732,7 @@ 'javelin-resource' => '44959b73', 'javelin-routable' => 'b3e7d692', 'javelin-router' => '29274e2b', - 'javelin-scrollbar' => '087e919c', + 'javelin-scrollbar' => '9065f639', 'javelin-sound' => '949c0fe5', 'javelin-stratcom' => '6ad39b6f', 'javelin-tokenizer' => '8d3bc1b2', @@ -800,7 +800,7 @@ 'phabricator-prefab' => 'c5af80a2', 'phabricator-remarkup-css' => 'd1a5e11e', 'phabricator-scroll-objective' => '0eee7a00', - 'phabricator-scroll-objective-list' => '1ca4d9db', + 'phabricator-scroll-objective-list' => '085dd101', 'phabricator-search-results-css' => 'f87d23ad', 'phabricator-shaped-request' => '7cbe244b', 'phabricator-slowvote-css' => 'a94b7230', @@ -956,11 +956,14 @@ 'javelin-stratcom', 'javelin-util', ), - '087e919c' => array( - 'javelin-install', + '085dd101' => array( 'javelin-dom', + 'javelin-util', 'javelin-stratcom', - 'javelin-vector', + 'javelin-install', + 'javelin-workflow', + 'javelin-scrollbar', + 'phabricator-scroll-objective', ), '08f4ccc3' => array( 'phui-oi-list-view-css', @@ -1034,14 +1037,6 @@ 'javelin-request', 'javelin-uri', ), - '1ca4d9db' => array( - 'javelin-dom', - 'javelin-util', - 'javelin-stratcom', - 'javelin-install', - 'javelin-workflow', - 'phabricator-scroll-objective', - ), '1de8bf63' => array( 'javelin-behavior', 'javelin-dom', @@ -1324,9 +1319,6 @@ '5294060f' => array( 'phui-theme-css', ), - '54774a28' => array( - 'phui-inline-comment-view-css', - ), '54b612ba' => array( 'javelin-color', 'javelin-install', @@ -1611,6 +1603,12 @@ 'javelin-dom', 'javelin-request', ), + '9065f639' => array( + 'javelin-install', + 'javelin-dom', + 'javelin-stratcom', + 'javelin-vector', + ), '92b9ec77' => array( 'javelin-behavior', 'javelin-stratcom', @@ -2208,6 +2206,9 @@ 'javelin-install', 'javelin-dom', ), + 'fa476ec0' => array( + 'phui-inline-comment-view-css', + ), 'fbe497e7' => array( 'javelin-behavior', 'javelin-util', diff --git a/webroot/rsrc/css/application/differential/changeset-view.css b/webroot/rsrc/css/application/differential/changeset-view.css --- a/webroot/rsrc/css/application/differential/changeset-view.css +++ b/webroot/rsrc/css/application/differential/changeset-view.css @@ -423,6 +423,11 @@ overflow: hidden; } +.scroll-objective-list.has-aesthetic-scrollbar { + /* For now, hide this element on systems with aesthetic scrollbars. */ + display: none; +} + .scroll-objective { display: block; position: absolute; diff --git a/webroot/rsrc/externals/javelin/lib/Scrollbar.js b/webroot/rsrc/externals/javelin/lib/Scrollbar.js --- a/webroot/rsrc/externals/javelin/lib/Scrollbar.js +++ b/webroot/rsrc/externals/javelin/lib/Scrollbar.js @@ -34,7 +34,7 @@ // width. If it doesn't, we're already in an environment with an aesthetic // scrollbar (like Safari on OSX with no mouse connected, or an iPhone) // and we don't need to do anything. - if (JX.Scrollbar._getScrollbarControlWidth() === 0) { + if (JX.Scrollbar.getScrollbarControlWidth() === 0) { return; } @@ -104,7 +104,7 @@ /** * Compute the width of the browser's scrollbar control, in pixels. */ - _getScrollbarControlWidth: function() { + getScrollbarControlWidth: function() { var self = JX.Scrollbar; if (self._controlWidth === null) { @@ -140,7 +140,7 @@ // If this browser and OS don't render a real scrollbar control, we // need to leave a margin. Generally, this is OSX with no mouse attached. - if (self._getScrollbarControlWidth() === 0) { + if (self.getScrollbarControlWidth() === 0) { return 12; } @@ -357,7 +357,7 @@ */ _resizeViewport: function() { var fdim = JX.Vector.getDim(this._frame); - fdim.x += JX.Scrollbar._getScrollbarControlWidth(); + fdim.x += JX.Scrollbar.getScrollbarControlWidth(); fdim.setDim(this._viewport); }, diff --git a/webroot/rsrc/js/application/diff/ScrollObjectiveList.js b/webroot/rsrc/js/application/diff/ScrollObjectiveList.js --- a/webroot/rsrc/js/application/diff/ScrollObjectiveList.js +++ b/webroot/rsrc/js/application/diff/ScrollObjectiveList.js @@ -5,6 +5,7 @@ * javelin-stratcom * javelin-install * javelin-workflow + * javelin-scrollbar * phabricator-scroll-objective * @javelin */ @@ -81,6 +82,11 @@ document.body.appendChild(node); + // If we're on OSX without a mouse or some other system with zero-width + // trackpad-style scrollbars, adjust the display appropriately. + var aesthetic = (JX.Scrollbar.getScrollbarControlWidth() === 0); + JX.DOM.alterClass(node, 'has-aesthetic-scrollbar', aesthetic); + var d = JX.Vector.getDocument(); var list_dimensions = JX.Vector.getDim(node);