diff options
author | Leif Åstrand <leif@vaadin.com> | 2012-05-29 16:47:04 +0300 |
---|---|---|
committer | Leif Åstrand <leif@vaadin.com> | 2012-06-06 09:33:13 +0300 |
commit | 1e6e833666cdae5bff04a4c835baf117a8aba0b5 (patch) | |
tree | 70bdda203a0e2cbc2ad8385c6db6b9f3501b0993 /src | |
parent | f77f121d0dd47ffc23c8f07e034fd6a115d0c2b0 (diff) | |
download | vaadin-framework-1e6e833666cdae5bff04a4c835baf117a8aba0b5.tar.gz vaadin-framework-1e6e833666cdae5bff04a4c835baf117a8aba0b5.zip |
Redefine isVisible to not paint dirty detached component (#6690)
Diffstat (limited to 'src')
-rw-r--r-- | src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java b/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java index 186126c9c6..15b148ce7f 100644 --- a/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java +++ b/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java @@ -1255,9 +1255,17 @@ public abstract class AbstractCommunicationManager implements Serializable { * @return true if the child is visible to the client, false otherwise */ static boolean isVisible(Component child) { + if (!child.isVisible()) { + return false; + } + HasComponents parent = child.getParent(); - if (parent == null || !child.isVisible()) { - return child.isVisible(); + if (parent == null) { + if (child instanceof Root) { + return child.isVisible(); + } else { + return false; + } } return parent.isComponentVisible(child) && isVisible(parent); |