Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15511957
D11540.id27761.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
11 KB
Referenced Files
None
Subscribers
None
D11540.id27761.diff
View Options
diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -8,7 +8,7 @@
return array(
'names' => array(
'core.pkg.css' => '3d6955ad',
- 'core.pkg.js' => '7a54aa14',
+ 'core.pkg.js' => 'efa12ecc',
'darkconsole.pkg.js' => '8ab24e01',
'differential.pkg.css' => '8af45893',
'differential.pkg.js' => '5c1f3896',
@@ -188,7 +188,7 @@
'rsrc/externals/javelin/ext/view/__tests__/ViewInterpreter.js' => '7a94d6a5',
'rsrc/externals/javelin/ext/view/__tests__/ViewRenderer.js' => '6ea96ac9',
'rsrc/externals/javelin/lib/Cookie.js' => '62dfea03',
- 'rsrc/externals/javelin/lib/DOM.js' => '2d66f6ec',
+ 'rsrc/externals/javelin/lib/DOM.js' => '6f7962d5',
'rsrc/externals/javelin/lib/History.js' => '2e0148bc',
'rsrc/externals/javelin/lib/JSON.js' => '69adf288',
'rsrc/externals/javelin/lib/Leader.js' => '331b1611',
@@ -198,9 +198,9 @@
'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' => '479fd9f1',
+ 'rsrc/externals/javelin/lib/Scrollbar.js' => 'ef2ec0c6',
'rsrc/externals/javelin/lib/URI.js' => '6eff08aa',
- 'rsrc/externals/javelin/lib/Vector.js' => 'cc1bd0b0',
+ 'rsrc/externals/javelin/lib/Vector.js' => '2caa8fb8',
'rsrc/externals/javelin/lib/WebSocket.js' => '3f840822',
'rsrc/externals/javelin/lib/Workflow.js' => 'a2ccdfec',
'rsrc/externals/javelin/lib/__tests__/Cookie.js' => '5ed109e8',
@@ -411,7 +411,7 @@
'rsrc/js/application/repository/repository-crossreference.js' => 'f9539603',
'rsrc/js/application/search/behavior-reorder-queries.js' => 'e9581f08',
'rsrc/js/application/slowvote/behavior-slowvote-embed.js' => '887ad43f',
- 'rsrc/js/application/transactions/behavior-show-older-transactions.js' => 'bde958eb',
+ 'rsrc/js/application/transactions/behavior-show-older-transactions.js' => 'dbbf48b6',
'rsrc/js/application/transactions/behavior-transaction-comment-form.js' => '9f7309fb',
'rsrc/js/application/transactions/behavior-transaction-list.js' => '13c739ea',
'rsrc/js/application/uiexample/JavelinViewExample.js' => 'd4a14807',
@@ -478,7 +478,7 @@
'rsrc/js/core/behavior-toggle-class.js' => 'e566f52c',
'rsrc/js/core/behavior-tokenizer.js' => 'b3a4b884',
'rsrc/js/core/behavior-tooltip.js' => '3ee3408b',
- 'rsrc/js/core/behavior-watch-anchor.js' => '924cdd01',
+ 'rsrc/js/core/behavior-watch-anchor.js' => '9f36c42d',
'rsrc/js/core/behavior-workflow.js' => '0a3f3021',
'rsrc/js/core/phtize.js' => 'd254d646',
'rsrc/js/phui/behavior-phui-object-box-tabs.js' => '2bfa2836',
@@ -616,11 +616,11 @@
'javelin-behavior-phabricator-remarkup-assist' => 'e32d14ab',
'javelin-behavior-phabricator-reveal-content' => '60821bc7',
'javelin-behavior-phabricator-search-typeahead' => '724b1247',
- 'javelin-behavior-phabricator-show-older-transactions' => 'bde958eb',
+ 'javelin-behavior-phabricator-show-older-transactions' => 'dbbf48b6',
'javelin-behavior-phabricator-tooltips' => '3ee3408b',
'javelin-behavior-phabricator-transaction-comment-form' => '9f7309fb',
'javelin-behavior-phabricator-transaction-list' => '13c739ea',
- 'javelin-behavior-phabricator-watch-anchor' => '924cdd01',
+ 'javelin-behavior-phabricator-watch-anchor' => '9f36c42d',
'javelin-behavior-phame-post-preview' => 'be807912',
'javelin-behavior-pholio-mock-edit' => '9c2623f4',
'javelin-behavior-pholio-mock-view' => 'e58bf807',
@@ -651,7 +651,7 @@
'javelin-color' => '7e41274a',
'javelin-cookie' => '62dfea03',
'javelin-diffusion-locate-file-source' => 'b42eddc7',
- 'javelin-dom' => '2d66f6ec',
+ 'javelin-dom' => '6f7962d5',
'javelin-dynval' => 'f6555212',
'javelin-event' => '85ea0626',
'javelin-fx' => '54b612ba',
@@ -670,7 +670,7 @@
'javelin-resource' => '44959b73',
'javelin-routable' => 'b3e7d692',
'javelin-router' => '29274e2b',
- 'javelin-scrollbar' => '479fd9f1',
+ 'javelin-scrollbar' => 'ef2ec0c6',
'javelin-stratcom' => '8b0ad945',
'javelin-tokenizer' => '7644823e',
'javelin-typeahead' => '70baed2f',
@@ -682,7 +682,7 @@
'javelin-typeahead-static-source' => '316b8fa1',
'javelin-uri' => '6eff08aa',
'javelin-util' => '93cc50d6',
- 'javelin-vector' => 'cc1bd0b0',
+ 'javelin-vector' => '2caa8fb8',
'javelin-view' => '0f764c35',
'javelin-view-html' => 'fe287620',
'javelin-view-interpreter' => 'f829edb3',
@@ -992,12 +992,9 @@
'javelin-stratcom',
'phabricator-keyboard-shortcut',
),
- '2d66f6ec' => array(
- 'javelin-magical-init',
+ '2caa8fb8' => array(
'javelin-install',
- 'javelin-util',
- 'javelin-vector',
- 'javelin-stratcom',
+ 'javelin-event',
),
'2e0148bc' => array(
'javelin-stratcom',
@@ -1115,12 +1112,6 @@
'javelin-view-renderer',
'javelin-install',
),
- '479fd9f1' => array(
- 'javelin-install',
- 'javelin-dom',
- 'javelin-stratcom',
- 'javelin-vector',
- ),
'47c794d8' => array(
'javelin-install',
'javelin-dom',
@@ -1297,6 +1288,13 @@
'javelin-util',
'javelin-stratcom',
),
+ '6f7962d5' => array(
+ 'javelin-magical-init',
+ 'javelin-install',
+ 'javelin-util',
+ 'javelin-vector',
+ 'javelin-stratcom',
+ ),
'6f7a9da8' => array(
'javelin-install',
),
@@ -1496,12 +1494,6 @@
'javelin-uri',
'phabricator-notification',
),
- '924cdd01' => array(
- 'javelin-behavior',
- 'javelin-stratcom',
- 'javelin-dom',
- 'javelin-vector',
- ),
'92eb531d' => array(
'javelin-behavior',
'javelin-dom',
@@ -1544,6 +1536,12 @@
'phabricator-drag-and-drop-file-upload',
'phabricator-draggable-list',
),
+ '9f36c42d' => array(
+ 'javelin-behavior',
+ 'javelin-stratcom',
+ 'javelin-dom',
+ 'javelin-vector',
+ ),
'9f7309fb' => array(
'javelin-behavior',
'javelin-dom',
@@ -1688,12 +1686,6 @@
'phabricator-tooltip',
'changeset-view-manager',
),
- 'bde958eb' => array(
- 'javelin-behavior',
- 'javelin-stratcom',
- 'javelin-dom',
- 'phabricator-busy',
- ),
'be807912' => array(
'javelin-behavior',
'javelin-dom',
@@ -1728,10 +1720,6 @@
'javelin-stratcom',
'phabricator-phtize',
),
- 'cc1bd0b0' => array(
- 'javelin-install',
- 'javelin-event',
- ),
'd19198c8' => array(
'javelin-install',
'javelin-dom',
@@ -1765,6 +1753,12 @@
'javelin-util',
'phabricator-shaped-request',
),
+ 'dbbf48b6' => array(
+ 'javelin-behavior',
+ 'javelin-stratcom',
+ 'javelin-dom',
+ 'phabricator-busy',
+ ),
'dd7e8ef5' => array(
'javelin-behavior',
'javelin-dom',
@@ -1867,6 +1861,12 @@
'phabricator-phtize',
'javelin-dom',
),
+ 'ef2ec0c6' => array(
+ 'javelin-install',
+ 'javelin-dom',
+ 'javelin-stratcom',
+ 'javelin-vector',
+ ),
'efe49472' => array(
'javelin-install',
'javelin-util',
diff --git a/webroot/rsrc/externals/javelin/lib/DOM.js b/webroot/rsrc/externals/javelin/lib/DOM.js
--- a/webroot/rsrc/externals/javelin/lib/DOM.js
+++ b/webroot/rsrc/externals/javelin/lib/DOM.js
@@ -980,7 +980,8 @@
* @return void
*/
scrollTo : function(node) {
- JX.DOM.scrollToPosition(0, JX.$V(node).y);
+ var pos = JX.Vector.getPosWithScroll(node);
+ JX.DOM.scrollToPosition(0, pos.y);
},
/**
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
@@ -160,7 +160,12 @@
var link = JX.$N('a', {href: '#', className: 'jx-scrollbar-link'});
JX.DOM.listen(link, 'blur', null, function() {
// When the user clicks anything else, remove this.
- JX.DOM.remove(link);
+ try {
+ JX.DOM.remove(link);
+ } catch (ignored) {
+ // We can get a second blur event, likey related to T447.
+ // Fix doesn't seem trivial so just ignore it.
+ }
});
JX.DOM.listen(link, 'click', null, function(e) {
// Don't respond to clicks. Since the link isn't visible, this
diff --git a/webroot/rsrc/externals/javelin/lib/Vector.js b/webroot/rsrc/externals/javelin/lib/Vector.js
--- a/webroot/rsrc/externals/javelin/lib/Vector.js
+++ b/webroot/rsrc/externals/javelin/lib/Vector.js
@@ -326,6 +326,18 @@
return new JX.$V(x, y);
},
+
+ /**
+ * Get the sum of a node's position and its parent scroll offsets.
+ *
+ * @param Node Node to determine aggregate position for.
+ * @return JX.Vector New vector with aggregate position.
+ */
+ getPosWithScroll: function(node) {
+ return JX.$V(node).add(JX.Vector.getAggregateScrollForNode(node));
+ },
+
+
/**
* Determine the size of the viewport (basically, the browser window) by
* building a new vector where the 'x' component corresponds to the width
diff --git a/webroot/rsrc/js/application/transactions/behavior-show-older-transactions.js b/webroot/rsrc/js/application/transactions/behavior-show-older-transactions.js
--- a/webroot/rsrc/js/application/transactions/behavior-show-older-transactions.js
+++ b/webroot/rsrc/js/application/transactions/behavior-show-older-transactions.js
@@ -29,13 +29,6 @@
function check_hash() {
if (hash_is_hidden()) {
load_older(load_hidden_hash_callback);
- } else {
- try {
- var target = JX.$(get_hash());
- JX.DOM.scrollTo(target);
- } catch (ignored) {
- // We did our best.
- }
}
}
@@ -71,7 +64,9 @@
var load_hidden_hash_callback = function(swap, r) {
show_older(swap, r);
- check_hash();
+
+ // We aren't actually doing a scroll position because
+ // `behavior-watch-anchor` will handle that for us.
};
var load_all_older_callback = function(swap, r) {
@@ -102,7 +97,6 @@
JX.Router.getInstance().queue(routable);
});
- JX.Stratcom.listen('hashchange', null, check_hash);
check_hash();
new JX.KeyboardShortcut(['@'], 'Show all older changes in the timeline.')
diff --git a/webroot/rsrc/js/core/behavior-watch-anchor.js b/webroot/rsrc/js/core/behavior-watch-anchor.js
--- a/webroot/rsrc/js/core/behavior-watch-anchor.js
+++ b/webroot/rsrc/js/core/behavior-watch-anchor.js
@@ -39,7 +39,9 @@
var n = 50;
var try_anchor_again = function () {
try {
- JX.DOM.scrollToPosition(0, JX.$V(JX.$(anchor)).y - 60);
+ var node = JX.$(anchor);
+ var pos = JX.Vector.getPosWithScroll(node);
+ JX.DOM.scrollToPosition(0, pos.y - 60);
defer_highlight();
} catch (e) {
if (n--) {
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Apr 18, 6:57 AM (5 d, 10 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7704243
Default Alt Text
D11540.id27761.diff (11 KB)
Attached To
Mode
D11540: Fix anchor-clicking scroll positions
Attached
Detach File
Event Timeline
Log In to Comment