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

Disable opening of hovercard if trigger node is inside hovercard

Summary:
If the content of a hovercard contains another hovercard trigger, the initial hovercard will be closed when entering the inside trigger with the mouse. You can see the bug with every differential hovercard which contains reviewers. But there are other cases too: For example if project descriptions use mentions or other project tags.

This fix is pretty easy and returns inside the mousemove handler if the trigger node has a closest ancestor with the class "jx-hovercard-container".

Closes T16029

Test Plan:
See if a hovercard is closed if you enter following inside the hovercard:
- reviewers inside differential hovercard
- people mentions or other project tags inside project hovercard

Reviewers: O1 Blessed Committers, aklapper

Reviewed By: O1 Blessed Committers, aklapper

Subscribers: aklapper, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T16029

Differential Revision: https://we.phorge.it/D25965

+15 -12
+11 -11
resources/celerity/map.php
··· 10 10 'conpherence.pkg.css' => '3144a5e2', 11 11 'conpherence.pkg.js' => '020aebcf', 12 12 'core.pkg.css' => '10815c8e', 13 - 'core.pkg.js' => 'f58c3c6e', 13 + 'core.pkg.js' => '813d8cbd', 14 14 'dark-console.pkg.js' => '187792c2', 15 15 'differential.pkg.css' => '91ac6214', 16 16 'differential.pkg.js' => '46fcb3af', ··· 480 480 'rsrc/js/core/behavior-global-drag-and-drop.js' => '1cab0e9a', 481 481 'rsrc/js/core/behavior-high-security-warning.js' => 'dae2d55b', 482 482 'rsrc/js/core/behavior-history-install.js' => '6a1583a8', 483 - 'rsrc/js/core/behavior-hovercard.js' => '183738e6', 483 + 'rsrc/js/core/behavior-hovercard.js' => '0a4b35f2', 484 484 'rsrc/js/core/behavior-keyboard-pager.js' => '1325b731', 485 485 'rsrc/js/core/behavior-keyboard-shortcuts.js' => '42c44e8b', 486 486 'rsrc/js/core/behavior-lightbox-attachments.js' => '14c7ab36', ··· 665 665 'javelin-behavior-pholio-mock-view' => '5aa1544e', 666 666 'javelin-behavior-phui-dropdown-menu' => '5cf0501a', 667 667 'javelin-behavior-phui-file-upload' => 'e150bd50', 668 - 'javelin-behavior-phui-hovercards' => '183738e6', 668 + 'javelin-behavior-phui-hovercards' => '0a4b35f2', 669 669 'javelin-behavior-phui-selectable-list' => 'b26a41e4', 670 670 'javelin-behavior-phui-submenu' => 'b5e9bff9', 671 671 'javelin-behavior-phui-tab-group' => '242aa08b', ··· 991 991 'herald-rule-editor', 992 992 'javelin-behavior', 993 993 ), 994 + '0a4b35f2' => array( 995 + 'javelin-behavior', 996 + 'javelin-behavior-device', 997 + 'javelin-stratcom', 998 + 'javelin-vector', 999 + 'phui-hovercard', 1000 + 'phui-hovercard-list', 1001 + ), 994 1002 '0ad8d31f' => array( 995 1003 'javelin-behavior', 996 1004 'javelin-stratcom', ··· 1040 1048 'javelin-util', 1041 1049 'phuix-icon-view', 1042 1050 'phabricator-busy', 1043 - ), 1044 - '183738e6' => array( 1045 - 'javelin-behavior', 1046 - 'javelin-behavior-device', 1047 - 'javelin-stratcom', 1048 - 'javelin-vector', 1049 - 'phui-hovercard', 1050 - 'phui-hovercard-list', 1051 1051 ), 1052 1052 '194e8160' => array( 1053 1053 'aphront-typeahead-control-css',
+4 -1
webroot/rsrc/js/core/behavior-hovercard.js
··· 32 32 } 33 33 34 34 var node = e.getNode('hovercard'); 35 - var data = e.getNodeData('hovercard').hovercardSpec; 35 + if (node.closest('.jx-hovercard-container')) { 36 + return; 37 + } 36 38 39 + var data = e.getNodeData('hovercard').hovercardSpec; 37 40 var card = cards.getCard(data); 38 41 39 42 cards.drawCard(card, node);