aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLeif Åstrand <leif@vaadin.com>2012-05-29 16:47:04 +0300
committerLeif Åstrand <leif@vaadin.com>2012-06-06 09:33:13 +0300
commit1e6e833666cdae5bff04a4c835baf117a8aba0b5 (patch)
tree70bdda203a0e2cbc2ad8385c6db6b9f3501b0993 /src
parentf77f121d0dd47ffc23c8f07e034fd6a115d0c2b0 (diff)
downloadvaadin-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.java12
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);