I confirm the bug with Chrome 4 / Safari 4
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
I confirm the bug with Chrome 4 / Safari 4.
At the same time I can see this bug with FF3.6 and with IE6 as well ... :(
See http://www.pharmacycharts.com/safari-cursor-bug.html where I made a
similar test, a
paragraph changes its cursor for wait for 1 sec, during which it also has
yellow BG.
Important issue, please fix.
Just come across this. It is indeed only evident in chrome, the other
browsers are fine. 9 months and still unconfirmed status? We need a comment
please google?
I have seen the same problem. The cursor works correctly in IE8 and FF 3.5
but not on Chrome or Safari 5.0
this is a confirmed error.
please verify!!
All, I have a solution for this . A nitty gritty solution .See my blog guys.
http://arunmobc.blogspot.com/2011/02/cursor-not-changing-issue.html
Sorry sogeeky, by all browsers I meant FF(Win/Mac), IE > 6,Safari(Mac).
Ofcourse :). The flicker will be there , but I think if you tweak the
shake effect you can reduce the flicker a bit.
da..@sogeeky.net. Can you please comment on my original blog.
Hi David, I don't see this in Chrome9 . Press F12 on this window and go to
the javascript console and execute the following. And immediately move the
cursor (before 3 seconds) and wait . You can see the cursor changing to
default. Are talking about Chrome9 on Mac?
document.body.style.cursor="wait";
setTimeout(function(){document.body.style.cursor="default";},3000);
Hi David, I don't see the issue in Chrome9 . Press Ctrl+Shift+I on this
window and click the icon with greater than arrow and triple equal to and
go to the javascript console and execute the following. After executing
this script move the cursor (before 3 seconds) to an area where the cursor
is in "wait" state and don't move the mouse after this. You can see the
cursor changing to default without moving the mouse . Are talking about
arun.geo, I don't know about Mac but the issue is still present in Chrome9
under Linux. What a pain...
Yes, chrome 9 on Mac. I'll try your latest and report back. I'll also test
the previous solution on windows.
Is it a big deal to fix this on Chrome. I heard they follow good
development practices and has a release almost every 6months like 6,7,8 and
now 9 . Why can't Chrome fix it.May be we are asking too much. I dont know
how they are using Webkit, is it a common lib that they dont' want to break
just to fix this bug?
A year since this has been reported... I've noticed that chrome can change
the cursor while loading content, so why the same event can't be triggered
from JavaScript?
I've found a partial workaround on this issue (tested in Chrome 9 in Ubuntu
Linux) similar to those mentioned by David and Arun. If you have a
scrollable container div on the page (I tested with a div with overflow:
hidden) and you need to change mouse cursor when the mouse is over that div
you can simply change its scrollLeft property, i.e.:
myDiv.scrollLeft +=1;
myDiv.scrollLeft -=1; // to get it back
And there doesn't seem to be any flicker.
I got this idea when I saw this SmoothScroll jQuery plugin:
http://www.smoothdivscroll.com/basicDemo.htm
You can see that in that demo the mouse cursor changes when you place it on
the right/left side of the image gallery and it turns back to default by
itself if there's nowhere left to scroll. Just place the cursor to the
right side and don't move it until it reaches the end.
There is, however, a limitation: this doesn't work if mouse button is
pressed. So still no solution if you need to change the cursor on mousedown
(which IMHO is common like when doing hand-dragging).
P.S. I am surprised that the status of this bug still
remains 'Unconfirmed'. Please give it some attention!
I see what I did wrong. I had no content inside my div that would trigger
an overflow, so the browser was ignoring the scroll since there was nothing
to scroll. This simple example works great (just be sure to move the mouse
so the cursor appears in the first place):
<html>
<body>
<div id="mouseMask" style="width: 100%; height: 100%; overflow: hidden;">
<div style="width: 200%; height: 200%;">
</div>
</div>
<script>
function changeIt() {
document.body.style.cursor = "progress";
document.getElementById("mouseMask").scrollLeft = 1;
document.getElementById("mouseMask").scrollLeft = 0;
}
window.setTimeout("changeIt()", 5000);
</script>
</body>
</html>
Also note that this workaround works in Safari 5 as well (but not Safari
4). That's good enough for me.
Comment 39 works unless the cursor is above input fields.
Yeah it got better in Chrome 11 but sadly the problem didn't go away
completely... While everything now works as expected in simple case, it
doesn't work if you are holding a mouse button.
So unfortunately it's still impossible to change the mouse cursor
on 'mousedown' event. It may be essential in rich web applications.
I've made another test case to illustrate the issue:
http://jsfiddle.net/dipish/WQ8RQ/
Feel free to play with it, I wish there were some kind of workaround!
function mouse_move(){
if (mouse_down==true){
my_div.style.cursor="hand"
}
}
The script still not work in Chrome. Working fine in IE.
Chrome show 'Text' cursor when mousemove during mousedown.
Yes, I need this fixed as well.
I'm designing a card game where you can drag-and-drop, and the mouse will
not change to the grab hand if the mouse is being held(clicked).
So changing the mouse inside of onMouseDown() fails still.
There is another problem, which I believe to be related. I have a
server-side pagemap on a page. The cursor is a crosshair + on the map. The
user clicks on the map and the page reloads with some content changed. The
map reloads with its content chaned, but it is located in the same place.
The cursor is an arrow and it will not change to crosshair when moved. It
only changes when the cursor is moved off the map and then back.
So, briefly: the cursor does not change when content is loaded "under" it,
even if there is a pageload.