Exemple #1
0
        private static void UpdateInteractorPropertiesIfNecessary(IEnumerable <BehaviorMap> behaviorMaps)
        {
            if (!behaviorMaps.Any(x => x.IsModified))
            {
                return;
            }

            FormsCrawler.UpdateInteractorProperties(behaviorMaps);

            foreach (var connector in behaviorMaps)
            {
                connector.MarkAsUnmodified();
            }
        }
Exemple #2
0
        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();
            }
        }