Ao clicar na área do canvas com a tecla ALT pressionada, nada ocorre, parece que o mouse fica "bloqueado", assim não consigo diminuir o raio nem utilizar a função desenhaCirculo() com o raio atual.Fiz um teste com outra tecla e o código funcionou (tecla CTRL).
Obs.: Quando aperto as duas teclas juntas o alerta é mostrado normalmente.
Estou utilizando o UBUNTU 16.04 e o erro ocorre tanto no Google Chrome como no Firefox. Segue o código abaixo:
<canvas id="tela" width="600" height="400"></canvas>
<canvas id="indicador_cor" width="50" height="50"></canvas>
<button>Limpar Tela</button>
<script>
var tela = document.querySelector("#tela");
var pincel = tela.getContext("2d");
var indicadorCor = document.querySelector("#indicador_cor");
var pincelIndicadorCor = indicadorCor.getContext("2d");
pincelIndicadorCor.fillStyle = "blue";
pincelIndicadorCor.fillRect(0, 0, 50, 50);
var button = document.querySelector("button");
pincel.fillStyle = "gray";
pincel.fillRect(0, 0, 600, 400);
pincel.fillStyle = "blue";
function desenhaCirculo(evento) {
// console.log(evento);
var x = evento.pageX - tela.offsetLeft;
var y = evento.pageY - tela.offsetTop;
// console.log("Cliquei nas coordenadas:\nx = " + x + " e y = " + y);
pincel.fillStyle = cores[posicao];
pincel.beginPath();
if (evento.shiftKey && evento.altKey) {
alert("Utilizar uma tecla de cada vez!");
} else if (evento.shiftKey && raio + adicional <= 40) {
raio = raio + adicional;
} else if (evento.altKey && raio - adicional >= 10) {
raio = raio - adicional;
}
// if (evento.shiftKey && evento.ctrlKey) {
// alert("Utilizar uma tecla de cada vez!");
// } else if (evento.shiftKey && raio + adicional <= 40) {
// raio = raio + adicional;
// } else if (evento.ctrlKey && raio - adicional >= 10) {
// raio = raio - adicional;
// }
pincel.arc(x, y, raio, 0, 2 * Math.PI);
pincel.fill();
}
function limpaTela() {
pincel.fillStyle = "gray";
pincel.fillRect(0, 0, 600, 400);
pincel.fillStyle = "blue";
posicao = 0;
mudaIndicadorCor();
}
function mudaCor() {
posicao++;
if (posicao >= cores.length) {
posicao = 0;
}
mudaIndicadorCor();
return false;
}
function mudaIndicadorCor() {
pincelIndicadorCor.fillStyle = cores[posicao];
pincelIndicadorCor.fillRect(0, 0, 50, 50);
}
var cores = ["blue", "red", "green"];
var posicao = 0;
var raio = 10;
var adicional = 5;
tela.onclick = desenhaCirculo;
button.onclick = limpaTela;
tela.oncontextmenu = mudaCor;
</script>
Existe algum erro que não estou conseguindo visualizar no código ou é alguma configuração do meu sistema operacional?