libbluray | branch: master | hpi1 <[email protected]> | Tue Dec 10 10:33:54 2013 +0200| [24d4a73f2f0a8cd7c40f83909cdefda70e56ccf3] | committer: hpi1
Properly dispose HScene > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=24d4a73f2f0a8cd7c40f83909cdefda70e56ccf3 --- src/libbluray/bdj/java/org/havi/ui/HScene.java | 30 ++++++++++++++++++-- .../bdj/java/org/havi/ui/HSceneFactory.java | 1 + 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/libbluray/bdj/java/org/havi/ui/HScene.java b/src/libbluray/bdj/java/org/havi/ui/HScene.java index 336b91a..390ddac 100644 --- a/src/libbluray/bdj/java/org/havi/ui/HScene.java +++ b/src/libbluray/bdj/java/org/havi/ui/HScene.java @@ -242,8 +242,34 @@ public class HScene extends Container implements HComponentOrdering { return null; } - public void dispose() { - // TODO not implemented + public synchronized void dispose() { + if (null != BDJXletContext.getCurrentContext()) + HSceneFactory.getInstance().dispose(this); + } + + protected void disposeImpl() + { + // called by HSceneFactory + try { + removeAll(); + + Graphics g = GUIManager.getInstance().getGraphics(); + Rectangle r = getBounds(); + g.clearRect(r.x, r.y, r.width, r.height); + + if (image != null) { + image.flush(); + } + if (shortcuts != null) { + shortcuts.clear(); + } + } finally { + image = null; + eventGroup = null; + shortcuts = null; + windowListener = null; + context = null; + } } public boolean addShortcut(int keyCode, HActionable act) { diff --git a/src/libbluray/bdj/java/org/havi/ui/HSceneFactory.java b/src/libbluray/bdj/java/org/havi/ui/HSceneFactory.java index 4f2318c..b6e9fb9 100644 --- a/src/libbluray/bdj/java/org/havi/ui/HSceneFactory.java +++ b/src/libbluray/bdj/java/org/havi/ui/HSceneFactory.java @@ -109,6 +109,7 @@ public class HSceneFactory extends Object { logger.error("wrong HScene"); } + scene.disposeImpl(); GUIManager.getInstance().remove(scene); defaultHScene = null; } _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
