1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-23 22:10:55 +01:00
phorge-phorge/webroot/rsrc/js/core
Alexander Ljungberg 4e40b17aca Don't mutate DOM by showing a tooltip on touch events
Summary:
This fix further addresses T10229. The problem and solution are the same:

- If the DOM is mutated during a touch, it never registers as a 'click' so the tapped button does not activate.
- This was partially addressed in D15136, which covered taps on code lines in a Differential view.
- Tapping on some buttons, like "Reply" or "Hide Comment" still caused the problem by showing a tooltip.
- There are probably similar buttons elsewhere, other than in Differential, exhibiting the same 'needs multiple taps to work' behaviour.
- The testing in the iOS simulator performed for D15136 did not reveal that the problem with "Hide comment" and such remained because the small device size used for testing triggered the `!= 'desktop'` path for tooltips.

To fix it:

- Don't show tooltips for touch events. You can't 'hover' with a finger (with today's tech) so that UI paradigm doesn't apply.
- Show the tooltips for regular mouse events, even if they are on the same device. Some devices have both touch and a mouse.
- No longer try to rely on a distinction between 'desktop' and 'mobile' devices. Mobile devices like the iPad Pro are essentially desktop like, and as mentioned above, a single device could be both touch and mouse enabled. It's not about the nature of the device, it's about the nature of the interaction.

Test Plan:
- Tapped "Hide Comment", "Reply" on an iPad Pro running iOS 9.2 and got single touch responses with no tooltips.
- Tried the same on an iPhone 6 running iOS 9.2.
- Hovered over the same on a regular desktop in Safari and saw tooltips. Clicked and saw regular reactions.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: Korvin

Differential Revision: https://secure.phabricator.com/D15310
2016-02-19 05:06:39 -08:00
..
behavior-active-nav.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-audio-source.js Implement macros as audio sources 2013-09-27 16:02:02 -07:00
behavior-autofocus.js Move js/application/core/ one level up 2013-04-23 10:56:46 -07:00
behavior-choose-control.js Allow installs to customize project icons 2016-01-08 14:01:53 -08:00
behavior-crop.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-dark-console.js Quicksand - fix project board page and quicksand 2015-04-28 14:51:49 -07:00
behavior-device.js Don't mutate DOM on touch-originated cursor events in Differential 2016-01-29 06:55:41 -08:00
behavior-drag-and-drop-textarea.js Don't select {F...} text after adding it to textareas 2015-12-22 08:21:06 -08:00
behavior-error-log.js Let JSHint know that the show_details function is an exported global 2014-12-30 02:51:36 -08:00
behavior-fancy-datepicker.js Fix start in fancy datepicker calendar 2015-11-05 07:07:38 -08:00
behavior-file-tree.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-form.js Apply some linter auto-fixes 2014-08-02 19:03:02 +10:00
behavior-gesture.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-global-drag-and-drop.js Quicksand and global drag and drop - install quicksand listener on event only 2015-05-06 12:59:09 -07:00
behavior-high-security-warning.js Quicksand - make things work properly with high security mode 2015-04-23 16:37:56 -07:00
behavior-history-install.js Move js/application/core/ one level up 2013-04-23 10:56:46 -07:00
behavior-hovercard.js Move PhabricatorHovercard to PHUIHovercard 2016-02-03 16:26:30 +00:00
behavior-keyboard-pager.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-keyboard-shortcuts.js Move js/application/core/ one level up 2013-04-23 10:56:46 -07:00
behavior-lightbox-attachments.js Catch undefinied title attribute in lightbox 2014-12-23 09:28:57 -08:00
behavior-line-linker.js Minor JavaScript fix 2014-12-30 02:50:32 -08:00
behavior-more.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-object-selector.js Include object url in object selector selection 2014-11-03 08:20:15 -08:00
behavior-oncopy.js Change double quotes to single quotes in JavaScript. 2014-06-24 03:35:39 +10:00
behavior-phabricator-nav.js [Redesign] Fix filetree view in Differential 2015-05-28 11:32:17 -07:00
behavior-phabricator-remarkup-assist.js Add a basic remarkup typeahead for users and projects 2016-01-15 09:11:46 -08:00
behavior-refresh-csrf.js When logged-out users hit a "Login Required" dialog, try to choose a better "next" URI 2015-12-17 08:30:03 -08:00
behavior-remarkup-preview.js Support field previews in EditEngine 2015-12-27 08:17:18 -08:00
behavior-reorder-applications.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-reveal-content.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-scrollbar.js Make scrolling happen relative to the main content frame 2015-01-25 08:42:40 -08:00
behavior-search-typeahead.js Improve type and icon information in typeahead 2016-02-05 12:48:20 -08:00
behavior-select-on-click.js Remove unused JavaScript variables. 2014-06-24 03:27:47 +10:00
behavior-time-typeahead.js Date controls should respect user time preferences 2015-06-15 10:11:10 -07:00
behavior-toggle-class.js Quicksand - fix toggle behavior to work with quicksand 2015-05-04 14:38:50 -07:00
behavior-tokenizer.js Move js/application/core/ one level up 2013-04-23 10:56:46 -07:00
behavior-tooltip.js Don't mutate DOM by showing a tooltip on touch events 2016-02-19 05:06:39 -08:00
behavior-watch-anchor.js Fix anchor-clicking scroll positions 2015-01-28 08:26:10 -08:00
behavior-workflow.js Provide a global router for Ajax requests 2014-05-05 10:57:42 -07:00
Busy.js Make busy indicator durable column aware 2015-04-01 20:10:32 -07:00
DragAndDropFileUpload.js Make waving cover files around on boards more reliable 2016-02-08 07:14:09 -08:00
DraggableList.js Replace height buffer behavior while dragging on workboards with infinite column height 2016-02-10 13:06:34 -08:00
FileUpload.js Support drag-and-drop to set cover images on workboard cards 2016-02-06 15:58:43 -08:00
Hovercard.js Move PhabricatorHovercard to PHUIHovercard 2016-02-03 16:26:30 +00:00
KeyboardShortcut.js Move js/application/core/ one level up 2013-04-23 10:56:46 -07:00
KeyboardShortcutManager.js Make scrolling happen relative to the main content frame 2015-01-25 08:42:40 -08:00
MultirowRowManager.js Clean up Multirow Manager UI 2014-11-17 14:06:05 -08:00
Notification.js Desktop Notification support 2015-06-22 13:11:37 -07:00
phtize.js Use JsShrink if jsxmin is not available 2013-05-18 17:04:22 -07:00
Prefab.js Fix blur and sort behavior for autocomplete 2016-01-15 09:33:15 -08:00
ShapedRequest.js Provide a global router for Ajax requests 2014-05-05 10:57:42 -07:00
TextAreaUtils.js Don't select {F...} text after adding it to textareas 2015-12-22 08:21:06 -08:00
Title.js Don't revert Conpherence page titles when updating notifications 2015-04-02 13:41:48 -07:00
ToolTip.js Improve minor workboard drag behaviors 2016-02-02 06:42:41 -08:00