private static void UpdateInteractorPropertiesIfNecessary(IEnumerable <BehaviorMap> behaviorMaps) { if (!behaviorMaps.Any(x => x.IsModified)) { return; } FormsCrawler.UpdateInteractorProperties(behaviorMaps); foreach (var connector in behaviorMaps) { connector.MarkAsUnmodified(); } }
private void HandleQueryInner(Query query) { using (query) { var maps = GetBehaviorMaps(); UpdateInteractorPropertiesIfNecessary(maps); Rectangle queryRect; if (TryGetQueryRectangle(query, out queryRect)) { var interactors = FormsCrawler.GetInteractors(maps, queryRect, query.WindowIds); SendQueryReply(query, interactors); } RemoveStaleBehaviorMaps(); } }