From 12c22eafeb6e37f3e85004359208b400c0cc6808 Mon Sep 17 00:00:00 2001 From: Daniel Werner Date: Thu, 7 Nov 2024 20:23:38 +0100 Subject: [PATCH 1/3] Fix layout persistence when switching between orthogonal, flight, and oblique mode --- .../view/layouting/flex_layout_wrapper.tsx | 10 ++++++---- .../view/layouting/tracing_layout_view.tsx | 17 ++++++++++------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx b/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx index a754e7d1bfd..2dc276b680f 100644 --- a/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx +++ b/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx @@ -207,10 +207,12 @@ class FlexLayoutWrapper extends React.PureComponent { rebuildLayout() { const model = this.loadCurrentModel(); this.updateToModelStateAndAdjustIt(model); - this.setState({ - model, - }); - setTimeout(this.onLayoutChange, 1); + this.setState( + { + model, + }, + () => this.onLayoutChange(), + ); if (this.props.layoutName !== DEFAULT_LAYOUT_NAME) { sendAnalyticsEvent("load_custom_layout", { diff --git a/frontend/javascripts/oxalis/view/layouting/tracing_layout_view.tsx b/frontend/javascripts/oxalis/view/layouting/tracing_layout_view.tsx index 7362b366cd8..c5d7e1888e3 100644 --- a/frontend/javascripts/oxalis/view/layouting/tracing_layout_view.tsx +++ b/frontend/javascripts/oxalis/view/layouting/tracing_layout_view.tsx @@ -194,13 +194,16 @@ class TracingLayoutView extends React.PureComponent { app.vent.emit("rerender"); if (model != null) { - this.setState({ - model, - }); - } - - if (this.props.autoSaveLayouts) { - this.saveCurrentLayout(layoutName); + this.setState( + { + model, + }, + () => { + if (this.props.autoSaveLayouts) { + this.saveCurrentLayout(layoutName); + } + }, + ); } }; From b0abc0514224524a10ae2a60003fcb78bb48cda7 Mon Sep 17 00:00:00 2001 From: Daniel Werner Date: Thu, 7 Nov 2024 20:32:03 +0100 Subject: [PATCH 2/3] update changelog --- CHANGELOG.unreleased.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index 4b428dc411f..84c4d61bd4c 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -41,6 +41,7 @@ For upgrade instructions, please check the [migration guide](MIGRATIONS.released - Fixed downloading task annotations of teams you are not in, when accessing directly via URI. [#8155](https://github.com/scalableminds/webknossos/pull/8155) - Deleting a bounding box is now possible independently of a visible segmentation layer. [#8164](https://github.com/scalableminds/webknossos/pull/8164) - S3-compliant object storages can now be accessed via HTTPS. [#8167](https://github.com/scalableminds/webknossos/pull/8167) +- Fixed a layout persistence bug leading to empty viewports, triggered when switching between orthogonal, flight, or oblique mode. [#8177](https://github.com/scalableminds/webknossos/pull/8177) ### Removed From ced9dfe352f1ebbf7bda0d1bc2721f95bb6f6cbc Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 11 Nov 2024 10:51:22 +0100 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: MichaelBuessemeyer <39529669+MichaelBuessemeyer@users.noreply.github.com> --- .../oxalis/view/layouting/flex_layout_wrapper.tsx | 7 +------ .../oxalis/view/layouting/tracing_layout_view.tsx | 15 +++++---------- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx b/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx index 2dc276b680f..c386b076092 100644 --- a/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx +++ b/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx @@ -207,12 +207,7 @@ class FlexLayoutWrapper extends React.PureComponent { rebuildLayout() { const model = this.loadCurrentModel(); this.updateToModelStateAndAdjustIt(model); - this.setState( - { - model, - }, - () => this.onLayoutChange(), - ); + this.setState({ model }, () => this.onLayoutChange()); if (this.props.layoutName !== DEFAULT_LAYOUT_NAME) { sendAnalyticsEvent("load_custom_layout", { diff --git a/frontend/javascripts/oxalis/view/layouting/tracing_layout_view.tsx b/frontend/javascripts/oxalis/view/layouting/tracing_layout_view.tsx index c5d7e1888e3..1a51f571cb4 100644 --- a/frontend/javascripts/oxalis/view/layouting/tracing_layout_view.tsx +++ b/frontend/javascripts/oxalis/view/layouting/tracing_layout_view.tsx @@ -194,16 +194,11 @@ class TracingLayoutView extends React.PureComponent { app.vent.emit("rerender"); if (model != null) { - this.setState( - { - model, - }, - () => { - if (this.props.autoSaveLayouts) { - this.saveCurrentLayout(layoutName); - } - }, - ); + this.setState({ model }, () => { + if (this.props.autoSaveLayouts) { + this.saveCurrentLayout(layoutName); + } + }); } };