Mac OS X: Worked around another Display.destroy hang when parented to an applet

This commit is contained in:
Elias Naur 2008-04-30 13:47:26 +00:00
parent 19a3f6e359
commit e584a5e0a0
2 changed files with 7 additions and 7 deletions

View File

@ -53,18 +53,19 @@ final class MacOSXCanvasListener implements ComponentListener, HierarchyListener
public MacOSXCanvasListener(Canvas canvas) {
this.canvas = canvas;
// ((MacOSXDisplay)Display.getImplementation()).setView(this);
}
public void enableListeners() {
canvas.addComponentListener(this);
canvas.addHierarchyListener(this);
setUpdate();
}
public void disableListeners() {
canvas.removeComponentListener(this);
canvas.removeHierarchyListener(this);
// Mac OS X applets will hang in Display.destroy() when parented when removing the listeners directly
java.awt.EventQueue.invokeLater(new Runnable() {
public final void run() {
canvas.removeComponentListener(MacOSXCanvasListener.this);
canvas.removeHierarchyListener(MacOSXCanvasListener.this);
}
});
}
public boolean syncShouldUpdateContext() {

View File

@ -107,7 +107,6 @@ final class MacOSXDisplay implements DisplayImplementation {
canvas = parent;
}
canvas_listener = new MacOSXCanvasListener(canvas);
canvas_listener.enableListeners();
robot = AWTUtil.createRobot(canvas);
} catch (LWJGLException e) {
destroyWindow();