libbluray | branch: master | hpi1 <[email protected]> | Mon Mar 28 16:55:18 2016 +0300| [7fdd333f81ac021b8dddd00c515a21b155fa71de] | committer: hpi1
Fix HScene.setVisible() Other scenes were hidden, but visible state was never restored. Fixes lost key focus with multi-HScene discs. > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=7fdd333f81ac021b8dddd00c515a21b155fa71de --- src/libbluray/bdj/java/org/havi/ui/HScene.java | 16 ++++++++++++++-- 1 file changed, 14 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 96b9c38..905a4b2 100644 --- a/src/libbluray/bdj/java/org/havi/ui/HScene.java +++ b/src/libbluray/bdj/java/org/havi/ui/HScene.java @@ -382,15 +382,27 @@ public class HScene extends Container implements HComponentOrdering { } public void setVisible(boolean visible) { + if (visible == isVisible()) + return; super.setVisible(visible); + + /* + * This doesn't work + * - visible state of other HScenes is never restored + * => no focus, key events are lost + * - Scenes are not wiped from GUI + if (visible) { for (int i = 0; i < GUIManager.getInstance().getComponentCount(); i++) { Component c = GUIManager.getInstance().getComponent(i); if (c != this) c.setVisible(false); - } + } } - GUIManager.getInstance().setVisible(visible); + */ + + if (visible) + GUIManager.getInstance().setVisible(visible); } public int getBackgroundMode() { _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
