diff --git a/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java b/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java
index 958ba2240f6a61ac114724a7f06f275771fd13ff..8ddd039acf167ca7de5edd51ba0b467c9605f9b2 100644
--- a/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java
+++ b/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java
@@ -32,7 +32,6 @@ import fr.soleil.docking.vl.SoleilDockingDesktop;
 public class VlDockView implements IView, Dockable, DockingActionListener, FocusListener {
     protected Object id;
     protected boolean enabled;
-    protected boolean visible;
     protected String title;
     protected Component component;
     protected Icon icon;
@@ -84,24 +83,25 @@ public class VlDockView implements IView, Dockable, DockingActionListener, Focus
     @Override
     public boolean isVisible() {
         DockableState state = dockingDesktop.getDockableState(this);
-        boolean tempVisible = false;
+        boolean visible = false;
         if (state != null) {
             Location location = state.getLocation();
-            tempVisible = (location != Location.CLOSED) && (location != Location.HIDDEN);
+            visible = (location != Location.CLOSED) && (location != Location.HIDDEN);
         }
-        return visible || tempVisible;
+        return visible;
     }
 
     @Override
     public void setVisible(boolean visible) {
-        this.visible = visible;
-        if (visible) {
-            dockingDesktop.showDockable(this);
-        } else {
-            dockingDesktop.close(this);
+        if (visible != isVisible()) {
+            if (visible) {
+                dockingDesktop.showDockable(this);
+            } else {
+                dockingDesktop.close(this);
+            }
+            component.setVisible(visible);
+            component.setEnabled(visible);
         }
-        component.setVisible(visible);
-        component.setEnabled(visible);
     }
 
     @Override