diff --git a/core/modules/views/src/Tests/Plugin/PagerTest.php b/core/modules/views/src/Tests/Plugin/PagerTest.php index bdd95ed..395188b 100644 --- a/core/modules/views/src/Tests/Plugin/PagerTest.php +++ b/core/modules/views/src/Tests/Plugin/PagerTest.php @@ -47,6 +47,9 @@ class PagerTest extends PluginTestBase { * @see https://www.drupal.org/node/652712 */ public function testStorePagerSettings() { + // Show the master display so the override selection is shown. + \Drupal::configFactory()->getEditable('views.settings')->set('ui.show.master_display', TRUE)->save(); + $admin_user = $this->drupalCreateUser(array('administer views', 'administer site configuration')); $this->drupalLogin($admin_user); // Test behavior described in diff --git a/core/modules/views_ui/admin.inc b/core/modules/views_ui/admin.inc index 6170ed4..fd0434f 100644 --- a/core/modules/views_ui/admin.inc +++ b/core/modules/views_ui/admin.inc @@ -230,7 +230,11 @@ function views_ui_standard_display_dropdown(&$form, FormStateInterface $form_sta $form['progress']['#weight'] = -1001; } - if ($current_display->isDefaultDisplay()) { + // The dropdown should not be added when : + // - this is the default display. + // - there is no master shown and just one additional display (mostly page) + // and the current display is defaulted. + if ($current_display->isDefaultDisplay() || ($current_display->isDefaulted($section) && !\Drupal::config('views.settings')->get('ui.show.master_display') && count($displays) <= 2)) { return; } @@ -258,6 +262,7 @@ function views_ui_standard_display_dropdown(&$form, FormStateInterface $form_sta '#title' => t('For'), // @TODO: Translators may need more context than this. '#options' => $display_dropdown, ); + if ($current_display->isDefaulted($section)) { $form['override']['dropdown']['#default_value'] = 'defaults'; }