diff --git a/src/depends/dogtail/config.py b/src/depends/dogtail/config.py index 37d11c7..df2771b 100644 --- a/src/depends/dogtail/config.py +++ b/src/depends/dogtail/config.py @@ -114,6 +114,10 @@ class _Config(object): logDebugToStdOut (boolean): Whether to print log output to console or not (default True). + + reversed (boolean): + When traversing nodes, is reverse iteration adopted?(default False). + """ @property def scriptName(self): @@ -158,7 +162,10 @@ class _Config(object): 'checkForA11y': True, # Logging - 'logDebugToFile': True + 'logDebugToFile': True, + + # reversed + 'reversed': True } options = {} diff --git a/src/depends/dogtail/tree.py b/src/depends/dogtail/tree.py index d634adc..337409a 100644 --- a/src/depends/dogtail/tree.py +++ b/src/depends/dogtail/tree.py @@ -888,7 +888,10 @@ class Node(object): pred = lambda n: orig_pred(n) and \ n.getState().contains(pyatspi.STATE_SHOWING) if not recursive: - cIter = iter(self) + if config.reversed is False: + cIter = iter(self) + else: + cIter = reversed(self) while True: try: child = next(cIter)