@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Support scrollbar snapback on Windows

Summary: See D11472. I eyeballed the "140" number by screenshotting / measuring in Paint.

Test Plan: Made the snapback thing return `true` and got snapback on OSX.

Reviewers: chad

Reviewed By: chad

Subscribers: avivey, epriestley

Differential Revision: https://secure.phabricator.com/D11485

+31 -10
+8 -8
resources/celerity/map.php
··· 199 199 'rsrc/externals/javelin/lib/Resource.js' => '44959b73', 200 200 'rsrc/externals/javelin/lib/Routable.js' => 'b3e7d692', 201 201 'rsrc/externals/javelin/lib/Router.js' => '29274e2b', 202 - 'rsrc/externals/javelin/lib/Scrollbar.js' => 'a89e4fc3', 202 + 'rsrc/externals/javelin/lib/Scrollbar.js' => '8ebeb833', 203 203 'rsrc/externals/javelin/lib/URI.js' => '6eff08aa', 204 204 'rsrc/externals/javelin/lib/Vector.js' => 'cc1bd0b0', 205 205 'rsrc/externals/javelin/lib/WebSocket.js' => '3f840822', ··· 673 673 'javelin-resource' => '44959b73', 674 674 'javelin-routable' => 'b3e7d692', 675 675 'javelin-router' => '29274e2b', 676 - 'javelin-scrollbar' => 'a89e4fc3', 676 + 'javelin-scrollbar' => '8ebeb833', 677 677 'javelin-stratcom' => '8b0ad945', 678 678 'javelin-tokenizer' => '7644823e', 679 679 'javelin-typeahead' => '70baed2f', ··· 1468 1468 'javelin-stratcom', 1469 1469 'javelin-behavior', 1470 1470 ), 1471 + '8ebeb833' => array( 1472 + 'javelin-install', 1473 + 'javelin-dom', 1474 + 'javelin-stratcom', 1475 + 'javelin-vector', 1476 + ), 1471 1477 '8ef9ab58' => array( 1472 1478 'javelin-behavior', 1473 1479 'javelin-dom', ··· 1549 1555 'javelin-behavior', 1550 1556 'javelin-stratcom', 1551 1557 'javelin-dom', 1552 - ), 1553 - 'a89e4fc3' => array( 1554 - 'javelin-install', 1555 - 'javelin-dom', 1556 - 'javelin-stratcom', 1557 - 'javelin-vector', 1558 1558 ), 1559 1559 'a8d8459d' => array( 1560 1560 'javelin-behavior',
+23 -2
webroot/rsrc/externals/javelin/lib/Scrollbar.js
··· 188 188 e.kill(); 189 189 190 190 // Store the position where the drag started. 191 - this._dragOrigin = JX.$V(e).y; 191 + this._dragOrigin = JX.$V(e); 192 192 193 193 // Store the original position of the handle. 194 194 this._scrollOrigin = this._viewport.scrollTop; ··· 203 203 return; 204 204 } 205 205 206 - var offset = (JX.$V(e).y - this._dragOrigin); 206 + var p = JX.$V(e); 207 + var offset = (p.y - this._dragOrigin.y); 207 208 var ratio = offset / JX.Vector.getDim(this._bar).y; 208 209 var adjust = ratio * JX.Vector.getDim(this._content).y; 209 210 211 + if (this._shouldSnapback()) { 212 + if (Math.abs(p.x - this._dragOrigin.x) > 140) { 213 + adjust = 0; 214 + } 215 + } 216 + 210 217 this._viewport.scrollTop = this._scrollOrigin + adjust; 218 + }, 219 + 220 + 221 + /** 222 + * Should the scrollbar snap back to the original position if the user 223 + * drags the mouse away to the left or right, perpendicular to the 224 + * scrollbar? 225 + * 226 + * Scrollbars have this behavior on Windows, but not on OSX or Linux. 227 + */ 228 + _shouldSnapback: function() { 229 + // Since this is an OS-specific behavior, detect the OS. We can't 230 + // reasonably use feature detection here. 231 + return (navigator.platform.indexOf('Win') > -1); 211 232 }, 212 233 213 234