Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Pazderski2019-06-04 16:58:00 +0000
committerEric Williams2019-06-05 19:07:54 +0000
commitbd6f468e1dbeb44d8ddaadc278bdf81133e8ac8b (patch)
tree7a78092b51ae0e7a7671bbaf1f308f830f829e4c /examples
parent35ff15b051926ac9eae77a05c9af93019bda2686 (diff)
downloadeclipse.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.java14
-rw-r--r--examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet288.java2
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). */

Back to the top