Mac OS X: Worked around another Display.destroy hang when parented to an applet
This commit is contained in:
parent
19a3f6e359
commit
e584a5e0a0
|
@ -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() {
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue