]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.event/src/org/simantics/event/view/contribution/ProjectEventsRule.java
Sync git svn branch with SVN repository r33324.
[simantics/platform.git] / bundles / org.simantics.event / src / org / simantics / event / view / contribution / ProjectEventsRule.java
index e6e59966c37f7d0a15696d6d7d53e369f048ff6e..9b9ea8bfe07437702a1403ce715e567d33637595 100644 (file)
@@ -116,20 +116,25 @@ public enum ProjectEventsRule implements ChildRule {
             if (!showHiddenEvents && graph.hasStatement(event, EVENT.Hidden))\r
                 continue;\r
 \r
+            boolean isReturnEvent = hideReturnEvents || showOnlyActiveEvents\r
+                    ? graph.hasStatement(event, EVENT.ReturnEvent) : false;\r
+\r
+            // Skip all return events if thus preferred.\r
+            if (hideReturnEvents && isReturnEvent) {\r
+                continue;\r
+            }\r
+\r
+            // Skip all return events and starting events that have been returned,\r
+            // if thus preferred. Also skip events that are defined non-returnable.\r
             if (showOnlyActiveEvents\r
-                    && (graph.hasStatement(event, EVENT.Returns)\r
+                    && (isReturnEvent\r
+                            || graph.hasStatement(event, EVENT.Returns)\r
                             || graph.hasStatement(event, EVENT.ReturnedBy)\r
                             || graph.hasStatement(event, EVENT.NoReturn)))\r
             {\r
                 continue;\r
             }\r
 \r
-            // Skip return events if thus preferred.\r
-            if (hideReturnEvents && graph.hasStatement(event, EVENT.ReturnEvent)) {\r
-                if (graph.getPossibleObject(event, EVENT.Returns) != null)\r
-                    continue;\r
-            }\r
-\r
             // Filter by event type severity\r
             Resource eventType = graph.getPossibleObject(event, EVENT.Event_type);\r
             if (eventType != null) {\r