diff --git a/panels/keyboard/cc-keyboard-shortcut-editor.c b/panels/keyboard/cc-keyboard-shortcut-editor.c
index 861e71025..e568cc40d 100644
--- a/panels/keyboard/cc-keyboard-shortcut-editor.c
+++ b/panels/keyboard/cc-keyboard-shortcut-editor.c
@@ -319,6 +319,25 @@ set_header_mode (CcKeyboardShortcutEditor *self,
mode != HEADER_MODE_CUSTOM_EDIT);
gtk_widget_set_visible (self->replace_button, mode == HEADER_MODE_REPLACE);
gtk_widget_set_visible (self->set_button, mode == HEADER_MODE_SET);
+
+ /* By setting the default response, the action button gets the 'suggested-action' applied */
+ switch (mode)
+ {
+ case HEADER_MODE_SET:
+ gtk_dialog_set_default_response (GTK_DIALOG (self), GTK_RESPONSE_APPLY);
+ break;
+
+ case HEADER_MODE_REPLACE:
+ gtk_dialog_set_default_response (GTK_DIALOG (self), GTK_RESPONSE_ACCEPT);
+ break;
+
+ case HEADER_MODE_ADD:
+ gtk_dialog_set_default_response (GTK_DIALOG (self), GTK_RESPONSE_OK);
+ break;
+
+ default:
+ gtk_dialog_set_default_response (GTK_DIALOG (self), GTK_RESPONSE_NONE);
+ }
}
static void
diff --git a/panels/keyboard/shortcut-editor.ui b/panels/keyboard/shortcut-editor.ui
index bebec36ce..ac0f01beb 100644
--- a/panels/keyboard/shortcut-editor.ui
+++ b/panels/keyboard/shortcut-editor.ui
@@ -369,11 +369,9 @@
True
False
True
+ True
True
-
end
@@ -398,11 +396,9 @@
Set
True
True
+ True
True
-
end
@@ -411,6 +407,12 @@
+
+ cancel_button
+ replace_button
+ set_button
+ add_button
+