@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.

Fix dialog z-index issue

Summary:
Fixes T7081. History here:

- JX.Scrollbar made the page scroll weird when a dialog came up because it was half-frame and half-document.
- I made it fully frame-level.
- But this wasn't really right; a better fix is to make it fully document-level.

Test Plan:
- Weird scroll on opening dialog is still fixed.
- iOS Safari no longer puts the mask over the dialog.

Reviewers: btrahan, chad

Reviewed By: chad

Subscribers: epriestley

Maniphest Tasks: T7081

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

+25 -19
+14 -14
resources/celerity/map.php
··· 8 8 return array( 9 9 'names' => array( 10 10 'core.pkg.css' => '8815f87d', 11 - 'core.pkg.js' => 'a27c1b62', 11 + 'core.pkg.js' => '65e04767', 12 12 'darkconsole.pkg.js' => '8ab24e01', 13 13 'differential.pkg.css' => '8af45893', 14 14 'differential.pkg.js' => '7b5a4aa4', ··· 203 203 'rsrc/externals/javelin/lib/URI.js' => '6eff08aa', 204 204 'rsrc/externals/javelin/lib/Vector.js' => '2caa8fb8', 205 205 'rsrc/externals/javelin/lib/WebSocket.js' => '3f840822', 206 - 'rsrc/externals/javelin/lib/Workflow.js' => 'a2ccdfec', 206 + 'rsrc/externals/javelin/lib/Workflow.js' => '84d6aea0', 207 207 'rsrc/externals/javelin/lib/__tests__/Cookie.js' => '5ed109e8', 208 208 'rsrc/externals/javelin/lib/__tests__/DOM.js' => 'c984504b', 209 209 'rsrc/externals/javelin/lib/__tests__/JSON.js' => '837a7d68', ··· 691 691 'javelin-view-renderer' => '6c2b09a2', 692 692 'javelin-view-visitor' => 'efe49472', 693 693 'javelin-websocket' => '3f840822', 694 - 'javelin-workflow' => 'a2ccdfec', 694 + 'javelin-workflow' => '84d6aea0', 695 695 'lightbox-attachment-css' => '7acac05d', 696 696 'maniphest-batch-editor' => '8f380ebc', 697 697 'maniphest-report-css' => '6fc16517', ··· 1420 1420 'javelin-workflow', 1421 1421 'phabricator-draggable-list', 1422 1422 ), 1423 + '84d6aea0' => array( 1424 + 'javelin-stratcom', 1425 + 'javelin-request', 1426 + 'javelin-dom', 1427 + 'javelin-vector', 1428 + 'javelin-install', 1429 + 'javelin-util', 1430 + 'javelin-mask', 1431 + 'javelin-uri', 1432 + 'javelin-routable', 1433 + ), 1423 1434 '851f167c' => array( 1424 1435 'javelin-behavior', 1425 1436 'javelin-aphlict', ··· 1578 1589 'javelin-util', 1579 1590 'javelin-vector', 1580 1591 'javelin-magical-init', 1581 - ), 1582 - 'a2ccdfec' => array( 1583 - 'javelin-stratcom', 1584 - 'javelin-request', 1585 - 'javelin-dom', 1586 - 'javelin-vector', 1587 - 'javelin-install', 1588 - 'javelin-util', 1589 - 'javelin-mask', 1590 - 'javelin-uri', 1591 - 'javelin-routable', 1592 1592 ), 1593 1593 'a4ae61bf' => array( 1594 1594 'javelin-install',
+11 -5
webroot/rsrc/externals/javelin/lib/Workflow.js
··· 172 172 [], 173 173 JX.Workflow._onsyntheticsubmit); 174 174 175 - var frame = JX.DOM.getContentFrame(); 176 - frame.appendChild(this._root); 175 + // Note that even in the presence of a content frame, we're doing 176 + // everything here at top level: dialogs are fully modal and cover 177 + // the entire window. 178 + 179 + document.body.appendChild(this._root); 180 + 177 181 var d = JX.Vector.getDim(this._root); 178 - var v = JX.Vector.getDim(frame); 179 - var s = JX.Vector.getAggregateScrollForNode(frame); 182 + var v = JX.Vector.getViewport(); 183 + var s = JX.Vector.getScroll(); 180 184 181 185 // Normally, we position dialogs 100px from the top of the screen. 182 186 // Use more space if the dialog is large (at least roughly the size ··· 206 210 // The `focus()` call may have scrolled the window. Scroll it back to 207 211 // where it was before -- we want to focus the control, but not adjust 208 212 // the scroll position. 209 - JX.DOM.scrollToPosition(s.x, s.y); 213 + 214 + // Dialogs are window-level, so scroll the window explicitly. 215 + window.scrollTo(s.x, s.y); 210 216 211 217 } else if (this.getHandler()) { 212 218 this.getHandler()(r);