Skip to content

Commit

Permalink
Make sure click events can always trigger tap, even on touch only dev…
Browse files Browse the repository at this point in the history
…ices

Fixes #3957
  • Loading branch information
dfreedm committed Sep 21, 2016
1 parent ff6e884 commit 02441ca
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 6 deletions.
10 changes: 4 additions & 6 deletions src/standard/gestures.html
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,9 @@
};

function setupTeardownMouseCanceller(setup) {
for (var i = 0, en; i < MOUSE_EVENTS.length; i++) {
en = MOUSE_EVENTS[i];
var events = IS_TOUCH_ONLY ? ['click'] : MOUSE_EVENTS;
for (var i = 0, en; i < events.length; i++) {
en = events[i];
if (setup) {
document.addEventListener(en, mouseCanceller, true);
} else {
Expand All @@ -82,9 +83,6 @@
}

function ignoreMouse() {
if (IS_TOUCH_ONLY) {
return;
}
if (!POINTERSTATE.mouse.mouseIgnoreJob) {
setupTeardownMouseCanceller(true);
}
Expand Down Expand Up @@ -318,7 +316,7 @@
for (var i = 0, dep, gd; i < deps.length; i++) {
dep = deps[i];
// don't add mouse handlers on iOS because they cause gray selection overlays
if (IS_TOUCH_ONLY && MOUSE_EVENTS.indexOf(dep) > -1) {
if (IS_TOUCH_ONLY && MOUSE_EVENTS.indexOf(dep) > -1 && dep !== 'click') {
continue;
}
gd = gobj[dep];
Expand Down
50 changes: 50 additions & 0 deletions test/smoke/ios-voiceover.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<!DOCTYPE html>
<!--
@license
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
<script src="../../../webcomponentsjs/webcomponents.js"></script>

<link rel="import" href="../../polymer.html">

<title>Polymer</title>

</head>
<body>
<dom-module id="link-tap">
<template>
<style>
a {
font-size: 12em;
display: block;
}
</style>
<a id="normal" href="javascript:void(0)" on-tap="logTap">
normal
</a>
<pre id="pre"></pre>
</template>
<script>
HTMLImports.whenReady(function() {
Polymer({
is: 'link-tap',
logTap: function() {
this.$.pre.textContent += 'tap ' + performance.now() + '\n';
}
});
});
</script>
</dom-module>
<link-tap></link-tap>
</body>
</html>

0 comments on commit 02441ca

Please sign in to comment.