Button onClick not firing for touchscreen devices
-
Using that latest Qt 5.1.2, a button onclick event is not firing when run on a Windows 8 touchscreen. Using Qt 5.0, it fires just fine.
To reproduce, just create the html5application test app and change your index.html to be this:
@<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body { margin: 0; font-size: 2em; background-color: white; }
h1 { text-align: center; color: red; }
h1 + h1 { color: green; }
h1:last-child { color: blue; }
#quit { background-color: gray; color: white; font-weight: bold; display: block; text-align: right; }
</style>
[removed]
var counter = 0;
function toggleElement()
{
var elements = document.getElementsByTagName('h1');
for (var i = 0; i < elements.length; ++i)
elements[i].style.display = (counter % elements.length) == i ? '' : 'none';
counter++;
setTimeout('toggleElement()', 1000);
}
window.onload = function()
{
document.getElementById("quit").onmousedown = function()
{
Qt.quit();
};
toggleElement();
}
function clicked()
{
alert("Clicked");
}
[removed]
</head>
<body>
<a id="quit">X</a>
<h1>Hello</h1>
<h1>HTML5</h1>
<h1>World</h1>
<p><button type="button" >Click Me!</button></p>
</body>
</html>
@Works fine when compiled with 5.0 (you see the javascript alert when you touch the button) but nothing shows up on the tablet when compiled against the latest Qt.
-
Still not sure why this is firing - I didn't have the patience to find out how it was all supposed to work by looking at the source code - but I did find a work around. I just turn off all touch events:
@
vww_ui->webView->setAttribute(Qt::WA_AcceptTouchEvents, false);
@
Not really the best solution, but as we don't currently do anything with them, it works for us (for now).