https://github.com/eclipse-theia/theia/blob/v1.29.0/packages/core/src/browser/shell/application-shell.ts#L604
getLayoutData still contains unserialized widgets, so conversion happens outside the application-shell scope, therefore we need to be compatible enough with DockPanel that the outer code behaves the same.
https://github.com/eclipse-theia/theia/blob/v1.29.0/packages/core/src/browser/shell/shell-layout-restorer.ts#L156
getLayoutData from the AS is called by restorer
deflate: https://github.com/eclipse-theia/theia/blob/v1.29.0/packages/core/src/browser/shell/shell-layout-restorer.ts#L191
Assumes property names must match exactly widget or widgets by isWidget(s)Property...
Widget itself if stateful should provide storeState(), but looks like CR Patches will mostly be subject to the widget manager's whims: https://github.com/eclipse-theia/theia/blob/v1.29.0/packages/core/src/browser/widget-manager.ts
So in the end maybe a patch should not be reported as a first-class widget? (We could dig into it via our own serializer)
https://github.com/eclipse-theia/theia/blob/v1.29.0/packages/core/src/browser/shell/application-shell.ts#L604
getLayoutDatastill contains unserialized widgets, so conversion happens outside the application-shell scope, therefore we need to be compatible enough with DockPanel that the outer code behaves the same.https://github.com/eclipse-theia/theia/blob/v1.29.0/packages/core/src/browser/shell/shell-layout-restorer.ts#L156
getLayoutDatafrom theASis called by restorerdeflate: https://github.com/eclipse-theia/theia/blob/v1.29.0/packages/core/src/browser/shell/shell-layout-restorer.ts#L191Assumes property names must match exactly
widgetorwidgetsbyisWidget(s)Property...Widget itself if stateful should provide storeState(), but looks like CR Patches will mostly be subject to the widget manager's whims: https://github.com/eclipse-theia/theia/blob/v1.29.0/packages/core/src/browser/widget-manager.ts
So in the end maybe a patch should not be reported as a first-class widget? (We could dig into it via our own serializer)