Skip to content

Commit a9bc474

Browse files
committed
Search for UiScrollable in all ancestors not just parent
- This fixes Gmail scrollable problem
1 parent 2abe20c commit a9bc474

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
lines changed

src/com/dtmilano/android/culebron.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
2020
'''
2121

22-
__version__ = '10.0.0'
22+
__version__ = '10.0.3'
2323

2424
import sys
2525
import threading
@@ -1253,12 +1253,17 @@ def __init__(self, culebron, view):
12531253
items.append(ContextMenu.Command('Take view snapshot and save to file', 5, 'Ctrl+W', '<Control-W>', _saveViewSnapshotForSelectedView))
12541254
if self.view.uiScrollable:
12551255
items.append(ContextMenu.UiScrollableSubMenu(self, 'UiScrollable', view, culebron))
1256-
elif self.view.parent.uiScrollable:
1257-
# WARNING:
1258-
# A bit dangerous, but may work
1259-
# If we click ona ListView then the View pased to this ContextMenu is the child,
1260-
# perhaps we want to scroll the parent
1261-
items.append(ContextMenu.UiScrollableSubMenu(self, 'UiScrollable', view.parent, culebron))
1256+
else:
1257+
parent = self.view.parent
1258+
while parent:
1259+
if parent.uiScrollable:
1260+
# WARNING:
1261+
# A bit dangerous, but may work
1262+
# If we click ona ListView then the View pased to this ContextMenu is the child,
1263+
# perhaps we want to scroll the parent
1264+
items.append(ContextMenu.UiScrollableSubMenu(self, 'UiScrollable', parent, culebron))
1265+
break
1266+
parent = parent.parent
12621267
items.append(ContextMenu.Separator())
12631268

12641269
items.append(ContextMenu.Command('Drag dialog', 0, 'Ctrl+D', '<Control-D>', culebron.showDragDialog))

src/com/dtmilano/android/viewclient.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1155,8 +1155,9 @@ def flingBackward(self):
11551155
e = (self.x + self.w/2, self.y + self.h - self.h * self.swipeDeadZonePercentage)
11561156
else:
11571157
raise RuntimeError('Not implemented yet')
1158-
print >> sys.stderr, "flingBackward: view=", self.view.__smallStr__(), self.view.getPositionAndSize()
1159-
print >> sys.stderr, "self.view.device.drag(%s, %s, %s, %s)" % (s, e, self.duration, self.steps)
1158+
if DEBUG:
1159+
print >> sys.stderr, "flingBackward: view=", self.view.__smallStr__(), self.view.getPositionAndSize()
1160+
print >> sys.stderr, "self.view.device.drag(%s, %s, %s, %s)" % (s, e, self.duration, self.steps)
11601161
self.view.device.drag(s, e, self.duration, self.steps, 0)
11611162

11621163
def flingForward(self):
@@ -1165,8 +1166,9 @@ def flingForward(self):
11651166
e = (self.x + self.w/2, self.y + self.h * self.swipeDeadZonePercentage)
11661167
else:
11671168
raise RuntimeError('Not implemented yet')
1168-
print >> sys.stderr, "flingForward: view=", self.view.__smallStr__(), self.view.getPositionAndSize()
1169-
print >> sys.stderr, "self.view.device.drag(%s, %s, %s, %s)" % (s, e, self.duration, self.steps)
1169+
if DEBUG:
1170+
print >> sys.stderr, "flingForward: view=", self.view.__smallStr__(), self.view.getPositionAndSize()
1171+
print >> sys.stderr, "self.view.device.drag(%s, %s, %s, %s)" % (s, e, self.duration, self.steps)
11701172
self.view.device.drag(s, e, self.duration, self.steps, 0)
11711173

11721174
def flingToBeginning(self, maxSwipes):

0 commit comments

Comments
 (0)