aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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);