6885735: closed/java/awt/Component/DisablingLWDisabledHW/DisablingLWDisabledHW.html fails
Use isRecursivelyVisibleUpToHeavyweightContainer() instead of isRecursivelyVisible() to determine if the peer needs to be hidden. Reviewed-by: art, dcherepanov
This commit is contained in:
parent
370b3a923b
commit
b32d27a253
@ -6720,12 +6720,13 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// It's native. If the parent is lightweight it
|
||||
// will need some help.
|
||||
Container parent = this.parent;
|
||||
if (parent != null && parent.peer instanceof LightweightPeer) {
|
||||
// It's native. If the parent is lightweight it will need some
|
||||
// help.
|
||||
Container parent = getContainer();
|
||||
if (parent != null && parent.isLightweight()) {
|
||||
relocateComponent();
|
||||
if (!isRecursivelyVisible()) {
|
||||
if (!parent.isRecursivelyVisibleUpToHeavyweightContainer())
|
||||
{
|
||||
peer.setVisible(false);
|
||||
}
|
||||
}
|
||||
|
@ -4092,16 +4092,29 @@ public class Container extends Component {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* Checks if the container and its direct lightweight containers are
|
||||
* visible.
|
||||
*
|
||||
* Consider the heavyweight container hides or shows the HW descendants
|
||||
* automatically. Therefore we care of LW containers' visibility only.
|
||||
*
|
||||
* This method MUST be invoked under the TreeLock.
|
||||
*/
|
||||
private boolean isRecursivelyVisibleUpToHeavyweightContainer() {
|
||||
final boolean isRecursivelyVisibleUpToHeavyweightContainer() {
|
||||
if (!isLightweight()) {
|
||||
return true;
|
||||
}
|
||||
return isVisible() && (getContainer() == null ||
|
||||
getContainer().isRecursivelyVisibleUpToHeavyweightContainer());
|
||||
|
||||
for (Container cont = getContainer();
|
||||
cont != null && cont.isLightweight();
|
||||
cont = cont.getContainer())
|
||||
{
|
||||
if (!cont.isVisible()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
x
Reference in New Issue
Block a user