aboutsummaryrefslogtreecommitdiffstats
path: root/src/nativewindow/classes/com/sun
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2009-08-10 14:02:05 -0700
committerSven Gothel <[email protected]>2009-08-10 14:02:05 -0700
commitaf51e1b06228c44adbb40eff1529eda7a6e9e408 (patch)
treeaba9c08b9dd71908495e8a499b507603c4374024 /src/nativewindow/classes/com/sun
parent8ef9d7364a942c19ec5e1f306e08193e83f4fea6 (diff)
NativeWindow: Add destroy() method, allowing external module to dispose a NativeWindow instance
Diffstat (limited to 'src/nativewindow/classes/com/sun')
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/NullWindow.java4
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/jawt/JAWTWindow.java10
2 files changed, 14 insertions, 0 deletions
diff --git a/src/nativewindow/classes/com/sun/nativewindow/impl/NullWindow.java b/src/nativewindow/classes/com/sun/nativewindow/impl/NullWindow.java
index 48a04a3c9..800148b8d 100644
--- a/src/nativewindow/classes/com/sun/nativewindow/impl/NullWindow.java
+++ b/src/nativewindow/classes/com/sun/nativewindow/impl/NullWindow.java
@@ -57,6 +57,10 @@ public class NullWindow implements NativeWindow {
protected void initNative() throws NativeWindowException {
}
+ public void destroy() {
+ invalidate();
+ }
+
public synchronized void invalidate() {
displayHandle=0;
scrnIndex=-1;
diff --git a/src/nativewindow/classes/com/sun/nativewindow/impl/jawt/JAWTWindow.java b/src/nativewindow/classes/com/sun/nativewindow/impl/jawt/JAWTWindow.java
index 5ad2804c1..4bb240e94 100644
--- a/src/nativewindow/classes/com/sun/nativewindow/impl/jawt/JAWTWindow.java
+++ b/src/nativewindow/classes/com/sun/nativewindow/impl/jawt/JAWTWindow.java
@@ -39,6 +39,7 @@ package com.sun.nativewindow.impl.jawt;
import com.sun.nativewindow.impl.*;
import java.awt.Component;
+import java.awt.Window;
import java.awt.GraphicsEnvironment;
import javax.media.nativewindow.*;
import com.sun.nativewindow.impl.*;
@@ -81,6 +82,15 @@ public abstract class JAWTWindow implements NativeWindow {
drawable= 0;
}
+ public synchronized void destroy() {
+ if(null!=component) {
+ if(component instanceof Window) {
+ ((Window)component).dispose();
+ }
+ }
+ invalidate();
+ }
+
private volatile Exception lockedStack = null;
public synchronized int lockSurface() throws NativeWindowException {