diff options
| author | Jens Baumgart | 2010-08-31 13:47:09 +0000 |
|---|---|---|
| committer | Jens Baumgart | 2010-08-31 13:47:09 +0000 |
| commit | d1877a91a7991b381e4e51528520d35ae6a3dbac (patch) | |
| tree | 84a93ef0391e394a2fdd3510b71878bafe1ff55b | |
| parent | a0afa5b7cf320872a5976e6f1c5df2d41489a18e (diff) | |
| download | egit-d1877a91a7991b381e4e51528520d35ae6a3dbac.tar.gz egit-d1877a91a7991b381e4e51528520d35ae6a3dbac.tar.xz egit-d1877a91a7991b381e4e51528520d35ae6a3dbac.zip | |
Fix bugs in MergeActionHandler
1. Add missing scheduling rule to execution job.
2. The information dialog sometimes closed automatically.
This was caused by the usage of the wrong parent shell.
Change-Id: I0764c163cb643d68a3013801eba5a82e08ad8dc7
Signed-off-by: Jens Baumgart <jens.baumgart@sap.com>
| -rw-r--r-- | org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/MergeActionHandler.java | 40 |
1 files changed, 18 insertions, 22 deletions
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/MergeActionHandler.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/MergeActionHandler.java index 0dbce0f177..e4721b62a6 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/MergeActionHandler.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/MergeActionHandler.java @@ -34,6 +34,8 @@ import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.RepositoryState; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.PlatformUI; /** * Action for selecting a commit and merging it with the current branch. @@ -68,6 +70,7 @@ public class MergeActionHandler extends RepositoryActionHandler { } }; job.setUser(true); + job.setRule(op.getSchedulingRule()); job.addJobChangeListener(new JobChangeAdapter() { @Override public void done(IJobChangeEvent cevent) { @@ -75,18 +78,16 @@ public class MergeActionHandler extends RepositoryActionHandler { if (result.getSeverity() == IStatus.CANCEL) { Display.getDefault().asyncExec(new Runnable() { public void run() { - try { - MessageDialog - .openInformation( - getShell(event), - UIText.MergeAction_MergeCanceledTitle, - UIText.MergeAction_MergeCanceledMessage); - } catch (ExecutionException e) { - Activator - .handleError( - UIText.MergeAction_MergeCanceledMessage, - null, true); - } + // don't use getShell(event) here since + // the active shell has changed since the + // execution has been triggered. + Shell shell = PlatformUI.getWorkbench() + .getActiveWorkbenchWindow().getShell(); + MessageDialog + .openInformation( + shell, + UIText.MergeAction_MergeCanceledTitle, + UIText.MergeAction_MergeCanceledMessage); } }); } else if (!result.isOK()) { @@ -95,16 +96,11 @@ public class MergeActionHandler extends RepositoryActionHandler { } else { Display.getDefault().asyncExec(new Runnable() { public void run() { - try { - MessageDialog - .openInformation( - getShell(event), - UIText.MergeAction_MergeResultTitle, - op.getResult().toString()); - } catch (ExecutionException e) { - Activator.handleError(op.getResult() - .toString(), null, true); - } + Shell shell = PlatformUI.getWorkbench() + .getActiveWorkbenchWindow().getShell(); + MessageDialog.openInformation(shell, + UIText.MergeAction_MergeResultTitle, op + .getResult().toString()); } }); } |
