View Full Version : [FIXED-472][3.1] Element isVisible "deep" check fails to fully check all ancestors

23 Jan 2010, 1:53 AM
Fairly major bug, the following check in the element isVisible loop:

while(p && !/body/i.test(p.tagName)){

matches TBODY elements as well as the overall BODY element, so when using deep: true on a field in a table layout it breaks out as soon as it hits the TBODY element.

Fairly critical, but easy fix just checking for /^body/ instead!

I've noticed something else, if an element is given x-hide-display then the display:none is in the computed style (based on the class) - am I right in saying that the isVisible() check doesn't check this correctly either?

Jamie Avins
27 Jan 2010, 12:25 PM
Fixed in SVN 5948.

To your 2nd point, the check is running through getStyle (via isStyle) so getComputedStyle will be used for browsers thats support it.

27 Jan 2010, 3:25 PM
I've seen an issue where it doesn't correctly identify x-hide-display elements as hidden, can we not check for x-hide-display/x-hide-visibility/x-hidden classes as well just to make sure?

I'll see if I can get an example of it not picking up the computed style!

Jamie Avins
27 Jan 2010, 3:56 PM
When you have a test case, also list the browser tested as it's important for this issue. Also, start a new thread as it is unrelated to the specific issue already resolved.