По-моему, достаточно вот так (просто отказываемся брать фокус, когда невидимы):
## Код:
```
PROCEDURE (v: Invisibiler) HandlePropMsg2 (VAR msg: Properties.Message);
      VAR prop: Properties.Property;
            vis: BOOLEAN;
   BEGIN
      WITH msg: Controls.DefaultsPref DO
         msg.disabled := FALSE   
      | msg: Properties.FocusPref DO
         GetVis(v, vis);
         IF ~vis THEN
            msg.setFocus := FALSE
         ELSE
            Views.HandlePropMsg(v.inner, msg)
         END
      ELSE
         Views.HandlePropMsg(v.inner, msg)
      END
   END HandlePropMsg2;
```
