Page MenuHomePhabricator

D11540.id27761.diff
No OneTemporary

D11540.id27761.diff

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

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)

Event Timeline