예제 #1
0
 internal AtspiEventHandler GetChildrenChangedDelegate(EventSIO value)
 {
     if (!delegates.ContainsKey (value))
         delegates [value] = (detail, v1, v2, any, app_root) => EmitChildrenChanged (value, accessible, detail, v1, any);
     return delegates [value];
 }
예제 #2
0
 private void EmitChildrenChanged(EventSIO d, Accessible sender, string detail, int n, object childObject)
 {
     bool remove = (detail == "remove");
     childrenChangedNestLevel++;
     Registry.SuspendDBusCalls = true;
     Accessible child = MarshallAccessible (childObject, remove, true);
     childEventQueue.Enqueue (() =>
         d (sender, detail, n, child));
     Registry.SuspendDBusCalls = false;
     childrenChangedNestLevel--;
     if (childrenChangedNestLevel == 0) {
         while (childEventQueue.Count > 0)
             childEventQueue.Dequeue ()();
     }
 }