libbluray | branch: master | hpi1 <[email protected]> | Thu Dec 19 10:52:13 
2013 +0200| [bbe069c4c9c96193bf6bef540e0e47c9f26eda2a] | committer: hpi1

org.dvb.event.EventManager: post events to xlet event queue

> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=bbe069c4c9c96193bf6bef540e0e47c9f26eda2a
---

 .../bdj/java/org/dvb/event/EventManager.java       |   25 ++++++++++++++++----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/src/libbluray/bdj/java/org/dvb/event/EventManager.java 
b/src/libbluray/bdj/java/org/dvb/event/EventManager.java
index 00b1441..f5d8fcc 100644
--- a/src/libbluray/bdj/java/org/dvb/event/EventManager.java
+++ b/src/libbluray/bdj/java/org/dvb/event/EventManager.java
@@ -34,6 +34,7 @@ import org.videolan.BDJAction;
 import org.videolan.BDJActionManager;
 import org.videolan.BDJXletContext;
 import org.videolan.GUIManager;
+import org.videolan.Logger;
 
 public class EventManager implements ResourceServer {
     public static EventManager getInstance() {
@@ -139,6 +140,10 @@ public class EventManager implements ResourceServer {
             BDJXletContext context = focusHScene.getXletContext();
             for (Iterator it = exclusiveAWTEventListener.iterator(); 
it.hasNext(); ) {
                 UserEventItem item = (UserEventItem)it.next();
+                if (item.context == null) {
+                    it.remove();
+                    continue;
+                }
                 if (item.context == context) {
                     if (item.userEvents.contains(ue)) {
                         result = BDJHelper.postKeyEvent(type, modifiers, 
keyCode);
@@ -150,9 +155,13 @@ public class EventManager implements ResourceServer {
 
         for (Iterator it = exclusiveUserEventListener.iterator(); 
it.hasNext(); ) {
             UserEventItem item = (UserEventItem)it.next();
+            if (item.context == null) {
+                it.remove();
+                continue;
+            }
             if (item.userEvents.contains(ue)) {
-                    BDJActionManager.getInstance().putCallback(new 
UserEventAction(item, ue));
-                    return true;
+                item.context.putCallback(new UserEventAction(item, ue));
+                return true;
             }
         }
 
@@ -160,9 +169,13 @@ public class EventManager implements ResourceServer {
 
         for (Iterator it = sharedUserEventListener.iterator(); it.hasNext(); ) 
{
             UserEventItem item = (UserEventItem)it.next();
+            if (item.context == null) {
+                it.remove();
+                continue;
+            }
             if (item.userEvents.contains(ue)) {
-                    BDJActionManager.getInstance().putCallback(new 
UserEventAction(item, ue));
-                    result = true;
+                item.context.putCallback(new UserEventAction(item, ue));
+                result = true;
             }
         }
 
@@ -217,6 +230,9 @@ public class EventManager implements ResourceServer {
             this.listener = listener;
             this.client = client;
             this.userEvents = userEvents.getNewInstance();
+            if (context == null) {
+                Logger.getLogger(EventManager.class.getName()).error("Missing 
xlet context: " + Logger.dumpStack());
+            }
         }
 
         public BDJXletContext context;
@@ -227,7 +243,6 @@ public class EventManager implements ResourceServer {
 
     private class UserEventAction extends BDJAction {
         public UserEventAction(UserEventItem item, UserEvent event) {
-            super(item.context);
             this.listener = item.listener;
             this.event = event;
         }

_______________________________________________
libbluray-devel mailing list
[email protected]
https://mailman.videolan.org/listinfo/libbluray-devel

Reply via email to