Bug 365222 - LaunchConfigurationEditDialog does not return correct
return code when the user clicks "Continue"
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationEditDialog.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationEditDialog.java
index d99f93c..2882cf0 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationEditDialog.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationEditDialog.java
@@ -70,17 +70,25 @@
 		return IDebugUIConstants.PLUGIN_ID + ".LAUNCH_CONFIGURATION_EDIT_DIALOG_SECTION"; //$NON-NLS-1$
 	}
 
-	/**
+	/* (non-Javadoc)
 	 * @see org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog#buttonPressed(int)
 	 */
 	protected void buttonPressed(int buttonId) {
-		int status = shouldSaveCurrentConfig();
-		if(status != IDialogConstants.CANCEL_ID) {
-			if(status != ID_DISCARD_BUTTON) {
-				if(status == IDialogConstants.YES_ID) {
-					getTabViewer().handleApplyPressed();
+		switch (buttonId) {
+			case ID_LAUNCH_BUTTON: {
+				int status = shouldSaveCurrentConfig();
+				if (status == IDialogConstants.YES_ID) {
+					okPressed();
 				}
+				setReturnCode(OK);
+				if (status != IDialogConstants.CANCEL_ID) {
+					close();
+				}
+				break;
+			}
+			case ID_CANCEL_BUTTON: {
 				cancelPressed();
+				break;
 			}
 		}
 	}