diff --git a/src/Plugin/DisplayVariant/PanelsDisplayVariant.php b/src/Plugin/DisplayVariant/PanelsDisplayVariant.php index c4527be..c8b3918 100644 --- a/src/Plugin/DisplayVariant/PanelsDisplayVariant.php +++ b/src/Plugin/DisplayVariant/PanelsDisplayVariant.php @@ -343,7 +343,8 @@ class PanelsDisplayVariant extends BlockDisplayVariant { // Validate layout settings. if ($form_state->hasValue('layout_settings')) { - $layout = $this->layoutManager->createInstance($form_state->getValue('layout'), $this->configuration['layout_settings']); + $layout_settings = $this->configuration['layout'] == $form_state->getValue('layout') ? $this->configuration['layout_settings'] : []; + $layout = $this->layoutManager->createInstance($form_state->getValue('layout'), $layout_settings); list ($layout_settings_form, $layout_settings_form_state) = $this->getLayoutSettingsForm($form, $form_state); $layout->validateConfigurationForm($layout_settings_form, $layout_settings_form_state); @@ -365,7 +366,8 @@ class PanelsDisplayVariant extends BlockDisplayVariant { // Submit layout settings. if ($form_state->hasValue('layout_settings')) { - $layout = $form_state->has('layout_plugin') ? $form_state->get('layout_plugin') : $this->getLayout(); + $layout_settings = $this->configuration['layout'] == $form_state->getValue('layout') ? $this->configuration['layout_settings'] : []; + $layout = $form_state->has('layout_plugin') ? $form_state->get('layout_plugin') : $this->layoutManager->createInstance($form_state->getValue('layout'), $layout_settings); list ($layout_settings_form, $layout_settings_form_state) = $this->getLayoutSettingsForm($form, $form_state); $layout->submitConfigurationForm($layout_settings_form, $layout_settings_form_state); $this->configuration['layout_settings'] = $layout->getConfiguration();