Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Further address review comments on sequential two-flick gestures
- Import TouchAction directly in touchHandler.py for brevity
- Remove new sequential action_* aliases (never existed before this PR)
- Convert original action_* aliases to MovedSymbol deprecations in __getattr__
- Replace actionLabels with RemovedSymbol pointing to TouchAction(value).displayString
- Update all internal touchTracker.py usages to reference TouchAction members directly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
  • Loading branch information
kefaslungu and claude committed Jun 9, 2026
commit 2459a63b06c9860120fbf6bd140ee967535cbe7c
95 changes: 48 additions & 47 deletions source/touchHandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
import screenExplorer
from logHandler import log
import touchTracker
from touchTracker import TouchAction
import core
import systemUtils
from utils import _deprecate
Expand Down Expand Up @@ -191,68 +192,68 @@ class POINTER_TOUCH_INFO(Structure):
touchThread = None


_flickActions: frozenset[touchTracker.TouchAction] = frozenset(
_flickActions: frozenset[TouchAction] = frozenset(
{
touchTracker.TouchAction.FLICK_RIGHT,
touchTracker.TouchAction.FLICK_LEFT,
touchTracker.TouchAction.FLICK_UP,
touchTracker.TouchAction.FLICK_DOWN,
TouchAction.FLICK_RIGHT,
TouchAction.FLICK_LEFT,
TouchAction.FLICK_UP,
TouchAction.FLICK_DOWN,
},
)
"""The set of single-direction flick actions that can begin a sequential flick gesture."""

_flickSequenceMap: dict[
tuple[touchTracker.TouchAction, touchTracker.TouchAction],
touchTracker.TouchAction,
tuple[TouchAction, TouchAction],
TouchAction,
] = {
(
touchTracker.TouchAction.FLICK_RIGHT,
touchTracker.TouchAction.FLICK_LEFT,
): touchTracker.TouchAction.FLICK_RIGHT_THEN_LEFT,
TouchAction.FLICK_RIGHT,
TouchAction.FLICK_LEFT,
): TouchAction.FLICK_RIGHT_THEN_LEFT,
(
touchTracker.TouchAction.FLICK_LEFT,
touchTracker.TouchAction.FLICK_RIGHT,
): touchTracker.TouchAction.FLICK_LEFT_THEN_RIGHT,
TouchAction.FLICK_LEFT,
TouchAction.FLICK_RIGHT,
): TouchAction.FLICK_LEFT_THEN_RIGHT,
(
touchTracker.TouchAction.FLICK_UP,
touchTracker.TouchAction.FLICK_DOWN,
): touchTracker.TouchAction.FLICK_UP_THEN_DOWN,
TouchAction.FLICK_UP,
TouchAction.FLICK_DOWN,
): TouchAction.FLICK_UP_THEN_DOWN,
(
touchTracker.TouchAction.FLICK_DOWN,
touchTracker.TouchAction.FLICK_UP,
): touchTracker.TouchAction.FLICK_DOWN_THEN_UP,
TouchAction.FLICK_DOWN,
TouchAction.FLICK_UP,
): TouchAction.FLICK_DOWN_THEN_UP,
(
touchTracker.TouchAction.FLICK_RIGHT,
touchTracker.TouchAction.FLICK_UP,
): touchTracker.TouchAction.FLICK_RIGHT_THEN_UP,
TouchAction.FLICK_RIGHT,
TouchAction.FLICK_UP,
): TouchAction.FLICK_RIGHT_THEN_UP,
(
touchTracker.TouchAction.FLICK_RIGHT,
touchTracker.TouchAction.FLICK_DOWN,
): touchTracker.TouchAction.FLICK_RIGHT_THEN_DOWN,
TouchAction.FLICK_RIGHT,
TouchAction.FLICK_DOWN,
): TouchAction.FLICK_RIGHT_THEN_DOWN,
(
touchTracker.TouchAction.FLICK_LEFT,
touchTracker.TouchAction.FLICK_UP,
): touchTracker.TouchAction.FLICK_LEFT_THEN_UP,
TouchAction.FLICK_LEFT,
TouchAction.FLICK_UP,
): TouchAction.FLICK_LEFT_THEN_UP,
(
touchTracker.TouchAction.FLICK_LEFT,
touchTracker.TouchAction.FLICK_DOWN,
): touchTracker.TouchAction.FLICK_LEFT_THEN_DOWN,
TouchAction.FLICK_LEFT,
TouchAction.FLICK_DOWN,
): TouchAction.FLICK_LEFT_THEN_DOWN,
(
touchTracker.TouchAction.FLICK_UP,
touchTracker.TouchAction.FLICK_RIGHT,
): touchTracker.TouchAction.FLICK_UP_THEN_RIGHT,
TouchAction.FLICK_UP,
TouchAction.FLICK_RIGHT,
): TouchAction.FLICK_UP_THEN_RIGHT,
(
touchTracker.TouchAction.FLICK_UP,
touchTracker.TouchAction.FLICK_LEFT,
): touchTracker.TouchAction.FLICK_UP_THEN_LEFT,
TouchAction.FLICK_UP,
TouchAction.FLICK_LEFT,
): TouchAction.FLICK_UP_THEN_LEFT,
(
touchTracker.TouchAction.FLICK_DOWN,
touchTracker.TouchAction.FLICK_RIGHT,
): touchTracker.TouchAction.FLICK_DOWN_THEN_RIGHT,
TouchAction.FLICK_DOWN,
TouchAction.FLICK_RIGHT,
): TouchAction.FLICK_DOWN_THEN_RIGHT,
(
touchTracker.TouchAction.FLICK_DOWN,
touchTracker.TouchAction.FLICK_LEFT,
): touchTracker.TouchAction.FLICK_DOWN_THEN_LEFT,
TouchAction.FLICK_DOWN,
TouchAction.FLICK_LEFT,
): TouchAction.FLICK_DOWN_THEN_LEFT,
}
"""Maps (firstFlickAction, secondFlickAction) to the corresponding sequential flick action."""

Expand Down Expand Up @@ -291,12 +292,12 @@ class TouchInputGesture(inputCore.InputGesture):
}

def _get_speechEffectWhenExecuted(self):
if self.tracker.action in (touchTracker.TouchAction.HOVER, touchTracker.TouchAction.HOVER_UP):
if self.tracker.action in (TouchAction.HOVER, TouchAction.HOVER_UP):
return None
return super(TouchInputGesture, self).speechEffectWhenExecuted

def _get_reportInInputHelp(self):
return self.tracker.action != touchTracker.TouchAction.HOVER
return self.tracker.action != TouchAction.HOVER

def __init__(self, preheldTracker, tracker, mode):
super(TouchInputGesture, self).__init__()
Expand Down Expand Up @@ -333,7 +334,7 @@ def getDisplayTextForIdentifier(cls, identifier):
foundAction = foundPlural = False
for subID in reversed(ID.split("_")):
if not foundAction:
action = touchTracker.TouchAction(subID).displayString
action = TouchAction(subID).displayString
foundAction = True
continue
if not foundPlural:
Expand Down Expand Up @@ -363,7 +364,7 @@ def _get__immediate(self):
# Because touch may produce a hover gesture for every pump, an immediate pump
# can result in exhaustion of the window message queue. Thus, don't do
# immediate pumps for hover gestures.
return not self.tracker.action == touchTracker.TouchAction.HOVER
return not self.tracker.action == TouchAction.HOVER


inputCore.registerGestureSource("ts", TouchInputGesture)
Expand Down
Loading