diff --git a/core/modules/rest/lib/Drupal/rest/Tests/Views/StyleSerializerTest.php b/core/modules/rest/lib/Drupal/rest/Tests/Views/StyleSerializerTest.php
index 6594cfd..287d0b1 100644
--- a/core/modules/rest/lib/Drupal/rest/Tests/Views/StyleSerializerTest.php
+++ b/core/modules/rest/lib/Drupal/rest/Tests/Views/StyleSerializerTest.php
@@ -178,7 +178,7 @@ public function testUIFieldAlias() {
 
     // Test the UI settings for adding field ID aliases.
     $this->drupalGet('admin/structure/views/view/test_serializer_display_field/edit/rest_export_1');
-    $row_options = 'admin/structure/views/nojs/display/test_serializer_display_field/rest_export_1/row_options';
+    $row_options = 'admin/structure/views/nojs/display/test_serializer_display_field/rest_export_1/row';
     $this->assertLinkByHref($row_options);
 
     // Test an empty string for an alias, this should not be used. This also
@@ -245,7 +245,7 @@ public function testFieldRawOutput() {
 
     // Test the UI settings for adding field ID aliases.
     $this->drupalGet('admin/structure/views/view/test_serializer_display_field/edit/rest_export_1');
-    $row_options = 'admin/structure/views/nojs/display/test_serializer_display_field/rest_export_1/row_options';
+    $row_options = 'admin/structure/views/nojs/display/test_serializer_display_field/rest_export_1/row';
     $this->assertLinkByHref($row_options);
 
     // Test an empty string for an alias, this should not be used. This also
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php b/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
index f37f950..7e3b008 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
@@ -1131,11 +1131,6 @@ public function optionsSummary(&$categories, &$options) {
       'desc' => t('Change the way content is formatted.'),
     );
 
-    // This adds a 'Settings' link to the style_options setting if the style has options.
-    if ($style_plugin_instance->usesOptions()) {
-      $options['style']['links']['style_options'] = t('Change settings for this format');
-    }
-
     if ($style_plugin_instance->usesRowPlugin()) {
       $row_plugin_instance = $this->getPlugin('row');
       $row_summary = empty($row_plugin_instance->definition['title']) ? t('Missing style plugin') : $row_plugin_instance->summaryTitle();
@@ -1148,10 +1143,6 @@ public function optionsSummary(&$categories, &$options) {
         'setting' => $row_summary,
         'desc' => t('Change the way each row in the view is styled.'),
       );
-      // This adds a 'Settings' link to the row_options setting if the row style has options.
-      if ($row_plugin_instance->usesOptions()) {
-        $options['row']['links']['row_options'] = t('Change settings for this style');
-      }
     }
     if ($this->usesAJAX()) {
       $options['use_ajax'] = array(
@@ -1627,63 +1618,46 @@ public function buildOptionsForm(&$form, &$form_state) {
         $form['#title'] .= t('How should this view be styled');
         $style_plugin = $this->getPlugin('style');
         $form['style'] =  array(
-          '#title' => t('Style'),
+          '#title' => t('Select the format'),
           '#title_display' => 'invisible',
           '#type' => 'radios',
           '#options' => views_fetch_plugin_names('style', $this->getType(), array($this->view->storage->get('base_table'))),
           '#default_value' => $style_plugin->definition['id'],
           '#description' => t('If the style you choose has settings, be sure to click the settings button that will appear next to it in the View summary.'),
         );
-
-        if ($style_plugin->usesOptions()) {
-          $form['markup'] = array(
-            '#prefix' => '<div class="form-item description">',
-            '#suffix' => '</div>',
-            '#markup' => t('You may also adjust the !settings for the currently selected style.', array('!settings' => $this->optionLink(t('settings'), 'style_options'))),
-          );
-        }
-
-        break;
-      case 'style_options':
-        $form['#title'] .= t('Style options');
-        $style = TRUE;
-        $style_plugin = $this->getOption('style');
-        $name = $style_plugin['type'];
-
-      case 'row_options':
-        if (!isset($name)) {
-          $row_plugin = $this->getOption('row');
-          $name = $row_plugin['type'];
-        }
-        // if row, $style will be empty.
-        if (empty($style)) {
-          $form['#title'] .= t('Row style options');
-        }
-        $plugin = $this->getPlugin(empty($style) ? 'row' : 'style', $name);
-        if ($plugin) {
-          $form[$form_state['section']] = array(
-            '#tree' => TRUE,
+        views_ui_add_ajax_trigger($form, 'style', array('options', 'style_options'));
+
+        if ($style_plugin) {
+          $form['style_options'] = array(
+            '#type' => 'fieldset',
+            '#collapsed' => FALSE,
+            '#collapsible' => FALSE,
+            '#title' => $this->t('Options'),
+             '#tree' => TRUE,
           );
-          $plugin->buildOptionsForm($form[$form_state['section']], $form_state);
+          $style_plugin->buildOptionsForm($form['style_options'], $form_state);
         }
         break;
       case 'row':
         $form['#title'] .= t('How should each row in this view be styled');
         $row_plugin_instance = $this->getPlugin('row');
         $form['row'] =  array(
-          '#title' => t('Row'),
+          '#title' => $this->t('Select the row format'),
           '#title_display' => 'invisible',
           '#type' => 'radios',
           '#options' => views_fetch_plugin_names('row', $this->getType(), array($this->view->storage->get('base_table'))),
           '#default_value' => $row_plugin_instance->definition['id'],
         );
 
-        if ($row_plugin_instance->usesOptions()) {
-          $form['markup'] = array(
-            '#prefix' => '<div class="form-item description">',
-            '#suffix' => '</div>',
-            '#markup' => t('You may also adjust the !settings for the currently selected row style.', array('!settings' => $this->optionLink(t('settings'), 'row_options'))),
+        if ($row_plugin_instance) {
+          $form['row_options'] = array(
+            '#type' => 'fieldset',
+            '#collapsed' => FALSE,
+            '#collapsible' => FALSE,
+            '#title' => t('Options'),
+            '#tree' => TRUE,
           );
+          $row_plugin_instance->buildOptionsForm($form['row_options'], $form_state);
         }
 
         break;
@@ -2293,10 +2267,18 @@ public function submitOptionsForm(&$form, &$form_state) {
 
             // send ajax form to options page if we use it.
             if ($plugin->usesOptions()) {
-              $form_state['view']->addFormToStack('display', $this->display['id'], 'row_options');
+              $form_state['view']->addFormToStack('display', $this->display['id'], 'row');
             }
           }
         }
+
+        $plugin = $this->getPlugin('row');
+        if ($plugin) {
+          $row = $this->getOption('row');
+          $plugin->submitOptionsForm($form['row_options'], $form_state);
+          $row['options'] = $form_state['values']['row_options'];
+          $this->setOption('row', $row);
+        }
         break;
       case 'style':
         // This if prevents resetting options to default if they don't change
@@ -2309,29 +2291,18 @@ public function submitOptionsForm(&$form, &$form_state) {
             $this->setOption($section, $row);
             // send ajax form to options page if we use it.
             if ($plugin->usesOptions()) {
-              $form_state['view']->addFormToStack('display', $this->display['id'], 'style_options');
+              $form_state['view']->addFormToStack('display', $this->display['id'], 'style');
             }
           }
         }
-        break;
-      case 'style_options':
         $plugin = $this->getPlugin('style');
         if ($plugin) {
           $style = $this->getOption('style');
           $plugin->submitOptionsForm($form['style_options'], $form_state);
-          $style['options'] = $form_state['values'][$section];
+          $style['options'] = $form_state['values']['style_options'];
           $this->setOption('style', $style);
         }
         break;
-      case 'row_options':
-        $plugin = $this->getPlugin('row');
-        if ($plugin) {
-          $row = $this->getOption('row');
-          $plugin->submitOptionsForm($form['row_options'], $form_state);
-          $row['options'] = $form_state['values'][$section];
-          $this->setOption('row', $row);
-        }
-        break;
       case 'exposed_block':
         $this->setOption($section, (bool) $form_state['values'][$section]);
         break;
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/RowUITest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/RowUITest.php
index 0414933..cee348f 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/RowUITest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/RowUITest.php
@@ -37,7 +37,6 @@ public function testRowUI() {
     $view_edit_url = "admin/structure/views/view/$view_name/edit";
 
     $row_plugin_url = "admin/structure/views/nojs/display/$view_name/default/row";
-    $row_options_url = "admin/structure/views/nojs/display/$view_name/default/row_options";
 
     $this->drupalGet($row_plugin_url);
     $this->assertFieldByName('row', 'fields', 'The default row plugin selected in the UI should be fields.');
@@ -52,7 +51,7 @@ public function testRowUI() {
       'row_options[test_option]' => $random_name
     );
     $this->drupalPostForm(NULL, $edit, t('Apply'));
-    $this->drupalGet($row_options_url);
+    $this->drupalGet($row_plugin_url);
     $this->assertFieldByName('row_options[test_option]', $random_name, 'Make sure the custom settings form field has the expected value stored.');
 
     $this->drupalPostForm($view_edit_url, array(), t('Save'));
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php
index 317f0c7..dcdda41 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php
@@ -37,7 +37,6 @@ public function testStyleUI() {
     $view_edit_url = "admin/structure/views/view/$view_name/edit";
 
     $style_plugin_url = "admin/structure/views/nojs/display/$view_name/default/style";
-    $style_options_url = "admin/structure/views/nojs/display/$view_name/default/style_options";
 
     $this->drupalGet($style_plugin_url);
     $this->assertFieldByName('style', 'default', 'The default style plugin selected in the UI should be unformatted list.');
@@ -52,7 +51,7 @@ public function testStyleUI() {
       'style_options[test_option]' => $random_name
     );
     $this->drupalPostForm(NULL, $edit, t('Apply'));
-    $this->drupalGet($style_options_url);
+    $this->drupalGet($style_plugin_url);
     $this->assertFieldByName('style_options[test_option]', $random_name, 'Make sure the custom settings form field has the expected value stored.');
 
     $this->drupalPostForm($view_edit_url, array(), t('Save'));
