diff options
author | Paul Pazderski | 2019-06-04 16:58:00 +0000 |
---|---|---|
committer | Eric Williams | 2019-06-05 19:07:54 +0000 |
commit | bd6f468e1dbeb44d8ddaadc278bdf81133e8ac8b (patch) | |
tree | 7a78092b51ae0e7a7671bbaf1f308f830f829e4c /examples | |
parent | 35ff15b051926ac9eae77a05c9af93019bda2686 (diff) | |
download | eclipse.platform.swt-bd6f468e1dbeb44d8ddaadc278bdf81133e8ac8b.tar.gz eclipse.platform.swt-bd6f468e1dbeb44d8ddaadc278bdf81133e8ac8b.tar.xz eclipse.platform.swt-bd6f468e1dbeb44d8ddaadc278bdf81133e8ac8b.zip |
Bug 547938 - [Snippets] End daemon threads properly and do not rely only
on there daemon trait
Change-Id: Iee3f9d609166852a26cc8532a131279cd6e91e05
Signed-off-by: Paul Pazderski <paul-eclipse@ppazderski.de>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet141.java | 14 | ||||
-rw-r--r-- | examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet288.java | 2 |
2 files changed, 11 insertions, 5 deletions
diff --git a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet141.java b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet141.java index 4682539db7..58f99ad8b8 100644 --- a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet141.java +++ b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet141.java @@ -13,16 +13,18 @@ *******************************************************************************/ package org.eclipse.swt.snippets; +import java.util.concurrent.atomic.*; + +import org.eclipse.swt.*; +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.widgets.*; + /* * Image example snippet: display an animated GIF * * For a list of all SWT example snippets see * http://www.eclipse.org/swt/snippets/ */ -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; - public class Snippet141 { static Display display; static Shell shell; @@ -45,6 +47,7 @@ public class Snippet141 { FileDialog dialog = new FileDialog(shell); dialog.setFilterExtensions(new String[] {"*.gif"}); String fileName = dialog.open(); + final AtomicBoolean stopAnimation = new AtomicBoolean(false); if (fileName != null) { loader = new ImageLoader(); try { @@ -79,7 +82,7 @@ public class Snippet141 { /* Now loop through the images, creating and drawing each one * on the off-screen image before drawing it on the shell. */ int repeatCount = loader.repeatCount; - while (loader.repeatCount == 0 || repeatCount > 0) { + while ((loader.repeatCount == 0 || repeatCount > 0) && !stopAnimation.get()) { switch (imageData.disposalMethod) { case SWT.DM_FILL_BACKGROUND: /* Fill with the background color before drawing. */ @@ -156,6 +159,7 @@ public class Snippet141 { while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } + stopAnimation.set(true); display.dispose(); } } diff --git a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet288.java b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet288.java index 1b7db121e5..30bc06576d 100644 --- a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet288.java +++ b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet288.java @@ -164,6 +164,8 @@ public class Snippet288 { if (!item[i].isDisposed()) item[i].setImage(image[i][imageDataIndex]); }); + } else { + break; } /* Sleep for the specified delay time (adding commonly-used slow-down fudge factors). */ |