libbluray | branch: master | hpi1 <[email protected]> | Thu May 23 16:56:54 2013 +0300| [4a1ac78ce1d4fca5582a2d1320442cac2f2a8402] | committer: hpi1
Delay opening of overlay until something is drawn. Move all updateGraphics() calls to BDRootWindow. > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=4a1ac78ce1d4fca5582a2d1320442cac2f2a8402 --- src/libbluray/bdj/java/java/awt/BDRootWindow.java | 26 +++++++++++++++++--- src/libbluray/bdj/java/org/videolan/BDJLoader.java | 3 ++- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/libbluray/bdj/java/java/awt/BDRootWindow.java b/src/libbluray/bdj/java/java/awt/BDRootWindow.java index c30a305..75604b5 100644 --- a/src/libbluray/bdj/java/java/awt/BDRootWindow.java +++ b/src/libbluray/bdj/java/java/awt/BDRootWindow.java @@ -47,10 +47,6 @@ public class BDRootWindow extends Frame { } } super.setBounds(x, y, width, height); - - Libbluray.updateGraphic(width, height, null); - - dirty.add(new Rectangle(0, 0, width - 1, height - 1)); } } @@ -90,6 +86,11 @@ public class BDRootWindow extends Frame { dirty.clear(); if (!a.isEmpty()) { + if (!overlay_open) { + Libbluray.updateGraphic(getWidth(), getHeight(), null); + overlay_open = true; + a = new Area(getWidth(), getHeight()); /* force full plane update */ + } Libbluray.updateGraphic(getWidth(), getHeight(), backBuffer, a.x0, a.y0, a.x1, a.y1); } } @@ -114,6 +115,22 @@ public class BDRootWindow extends Frame { private int changeCount; } + private void close() { + if (overlay_open) { + Libbluray.updateGraphic(0, 0, null); + overlay_open = false; + } + } + + public void setVisible(boolean visible) { + + super.setVisible(visible); + + if (!visible) { + close(); + } + } + public void dispose() { if (isVisible()) { @@ -138,6 +155,7 @@ public class BDRootWindow extends Frame { private int changeCount = 0; private Timer timer = new Timer(); private TimerTask timerTask = null; + private boolean overlay_open = false; private static final long serialVersionUID = -8325961861529007953L; } diff --git a/src/libbluray/bdj/java/org/videolan/BDJLoader.java b/src/libbluray/bdj/java/org/videolan/BDJLoader.java index 991d255..8f77242 100644 --- a/src/libbluray/bdj/java/org/videolan/BDJLoader.java +++ b/src/libbluray/bdj/java/org/videolan/BDJLoader.java @@ -215,7 +215,8 @@ public class BDJLoader { } ((BDJAppsDatabase)db).newDatabase(null, null); - Libbluray.updateGraphic(0, 0, null); + //GUIManager.shutdown() does not work with J2ME (window can't be opened again) + GUIManager.getInstance().setVisible(false); return true; } catch (Throwable e) { _______________________________________________ libbluray-devel mailing list [email protected] http://mailman.videolan.org/listinfo/libbluray-devel
