Изнутри Restore менять размеры нельзя. Я делал "отложенно" с помощью Services.Action:## Код:
```
TYPE
      (** SetSizeAction используется для отложенной установки размера view. **)
      SetSizeAction = POINTER TO RECORD (Services.Action)
         view: View;
         width, height: INTEGER
      END;

   (* SetSizeAction *)

   PROCEDURE (a: SetSizeAction) Do;
      VAR m: Models.Model;
   BEGIN
      m := a.view.context.ThisModel();
      Models.BeginModification(Models.notRecorded, m);
      a.view.context.SetSize(a.width, a.height);
      Models.EndModification(Models.notRecorded, m)
   END Do;

   PROCEDURE SetSizeLater (v: View; width, height: INTEGER);
      VAR action: SetSizeAction;
   BEGIN
      NEW(action);
      action.view := v;
      action.width := width;
      action.height := height;
      Services.DoLater(action, Services.now);
   END SetSizeLater;
```

Примерно так. Для установки размеров отображений следует использовать процедуру SetSizeLater. Код немного подправил прямо в браузере перед отправкой, так что мог что-то проглядеть. Models.notRecorded - недокументированная константа = 3. Можно Models.BeginModification/EndModification убрать, но тогда при каждом изменении размера документ будет получать статус "изменённый" и спрашивать о сохранении при закрытии окна. Мне это было крайне нежелательно, поскольку объекты всегда имели автоматический размер.