diff options
author | Andrey Loskutov | 2022-02-18 10:21:52 +0000 |
---|---|---|
committer | Andrey Loskutov | 2022-02-18 16:36:47 +0000 |
commit | a30da53f3a5a0d1b0befd73a55b77fd7ac68b359 (patch) | |
tree | 5702c1d25e07902cdb214aaddfb1f9c4edb0b64b | |
parent | 4f5c0274a0707c974528cb23578d60a8ac4033d0 (diff) | |
download | eclipse.platform.ui-Y20220219-0600.tar.gz eclipse.platform.ui-Y20220219-0600.tar.xz eclipse.platform.ui-Y20220219-0600.zip |
Bug 578378 - SWTError: No more handles if "Run in background" isY20220220-0600Y20220219-0600I20220220-1800I20220220-0600I20220219-1800I20220219-0600I20220218-1800
disabled
Dispose all created arrowCursors' properly.
Change-Id: Icd4c46657f59c4dd5285c2b4aa12bbc89e967aaf
Reviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.ui/+/190942
Reviewed-by: Matthias Becker <ma.becker@sap.com>
Reviewed-by: Lars Vogel <Lars.Vogel@vogella.com>
Reviewed-by: Andrey Loskutov <loskutov@gmx.de>
Tested-by: Andrey Loskutov <loskutov@gmx.de>
3 files changed, 9 insertions, 3 deletions
diff --git a/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ProgressMonitorJobsDialog.java b/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ProgressMonitorJobsDialog.java index a6f701f7359..0f6bdf3d87d 100644 --- a/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ProgressMonitorJobsDialog.java +++ b/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ProgressMonitorJobsDialog.java @@ -219,7 +219,9 @@ public class ProgressMonitorJobsDialog extends ProgressMonitorDialog { composite.setFont(parent.getFont()); // Add the buttons to the button bar. if (arrowCursor == null) { - arrowCursor = new Cursor(parent.getDisplay(), SWT.CURSOR_ARROW); + Cursor cursor = new Cursor(parent.getDisplay(), SWT.CURSOR_ARROW); + arrowCursor = cursor; + composite.addDisposeListener(e -> cursor.dispose()); } createButtonsForButtonBar(composite); return composite; diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ProgressMonitorDialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ProgressMonitorDialog.java index f81abbd43ef..f9c8d820cac 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ProgressMonitorDialog.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ProgressMonitorDialog.java @@ -395,7 +395,9 @@ public class ProgressMonitorDialog extends IconAndMessageDialog implements cancel = createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, true); if (arrowCursor == null) { - arrowCursor = new Cursor(cancel.getDisplay(), SWT.CURSOR_ARROW); + Cursor cursor = new Cursor(cancel.getDisplay(), SWT.CURSOR_ARROW); + arrowCursor = cursor; + cancel.addDisposeListener(e -> cursor.dispose()); } cancel.setCursor(arrowCursor); setOperationCancelButtonEnabled(enableCancelButton); diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressMonitorJobsDialog.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressMonitorJobsDialog.java index d843e8b7d2d..34d0fc5f740 100644 --- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressMonitorJobsDialog.java +++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressMonitorJobsDialog.java @@ -192,7 +192,9 @@ public class ProgressMonitorJobsDialog extends ProgressMonitorDialog { composite.setFont(parent.getFont()); // Add the buttons to the button bar. if (arrowCursor == null) { - arrowCursor = new Cursor(parent.getDisplay(), SWT.CURSOR_ARROW); + Cursor cursor = new Cursor(parent.getDisplay(), SWT.CURSOR_ARROW); + arrowCursor = cursor; + composite.addDisposeListener(e -> cursor.dispose()); } createButtonsForButtonBar(composite); return composite; |