Skip to content

Commit 81c823a

Browse files
authored
Merge pull request #377 from spyoungtech/mousemove-coordmode
add coord_mode keyword arg for mouse_move also fixes `send_mode` keyword in AHK v1
2 parents c88fd5f + 5810aa5 commit 81c823a

File tree

5 files changed

+90
-8
lines changed

5 files changed

+90
-8
lines changed

ahk/_async/engine.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -750,13 +750,13 @@ def mouse_position(self, new_position: Tuple[int, int]) -> None:
750750

751751
# fmt: off
752752
@overload
753-
async def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, speed: Optional[int] = None, relative: bool = False, send_mode: Optional[SendMode] = None) -> None: ...
753+
async def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, speed: Optional[int] = None, relative: bool = False, send_mode: Optional[SendMode] = None, coord_mode: Optional[CoordModeRelativeTo] = None) -> None: ...
754754
@overload
755-
async def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, blocking: Literal[True], speed: Optional[int] = None, relative: bool = False, send_mode: Optional[SendMode] = None) -> None: ...
755+
async def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, blocking: Literal[True], speed: Optional[int] = None, relative: bool = False, send_mode: Optional[SendMode] = None, coord_mode: Optional[CoordModeRelativeTo] = None) -> None: ...
756756
@overload
757-
async def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, blocking: Literal[False], speed: Optional[int] = None, relative: bool = False, send_mode: Optional[SendMode] = None) -> AsyncFutureResult[None]: ...
757+
async def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, blocking: Literal[False], speed: Optional[int] = None, relative: bool = False, send_mode: Optional[SendMode] = None, coord_mode: Optional[CoordModeRelativeTo] = None) -> AsyncFutureResult[None]: ...
758758
@overload
759-
async def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, speed: Optional[int] = None, relative: bool = False, blocking: bool = True, send_mode: Optional[SendMode] = None) -> Union[None, AsyncFutureResult[None]]: ...
759+
async def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, speed: Optional[int] = None, relative: bool = False, blocking: bool = True, send_mode: Optional[SendMode] = None, coord_mode: Optional[CoordModeRelativeTo] = None) -> Union[None, AsyncFutureResult[None]]: ...
760760
# fmt: on
761761
async def mouse_move(
762762
self,
@@ -767,6 +767,7 @@ async def mouse_move(
767767
relative: bool = False,
768768
send_mode: Optional[SendMode] = None,
769769
blocking: bool = True,
770+
coord_mode: Optional[CoordModeRelativeTo] = None,
770771
) -> Union[None, AsyncFutureResult[None]]:
771772
"""
772773
Analog for `MouseMove <https://www.autohotkey.com/docs/commands/MouseMove.htm>`_
@@ -791,6 +792,11 @@ async def mouse_move(
791792
else:
792793
args.append('')
793794

795+
if coord_mode:
796+
args.append(coord_mode)
797+
else:
798+
args.append('')
799+
794800
resp = await self._transport.function_call('AHKMouseMove', args, blocking=blocking)
795801
return resp
796802

ahk/_constants.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1707,11 +1707,34 @@
17071707
y := args[2]
17081708
speed := args[3]
17091709
relative := args[4]
1710+
send_mode := args[5]
1711+
coord_mode := args[6]
1712+
1713+
current_send_mode := Format("{}", A_SendMode)
1714+
current_coord_mode := Format("{}", A_CoordModeMouse)
1715+
1716+
if (send_mode != "") {
1717+
SendMode, %send_mode%
1718+
}
1719+
1720+
if (coord_mode != "") {
1721+
CoordMode, Mouse, %coord_mode%
1722+
}
1723+
17101724
if (relative != "") {
17111725
MouseMove, %x%, %y%, %speed%, R
17121726
} else {
17131727
MouseMove, %x%, %y%, %speed%
17141728
}
1729+
1730+
if (send_mode != "") {
1731+
SendMode, %current_send_mode%
1732+
}
1733+
1734+
if (coord_mode != "") {
1735+
CoordMode, Mouse, %current_coord_mode%
1736+
}
1737+
17151738
resp := FormatNoValueResponse()
17161739
return resp
17171740
{% endblock AHKMouseMove %}
@@ -4820,8 +4843,16 @@
48204843
speed := args[3]
48214844
relative := args[4]
48224845
send_mode := args[5]
4846+
coord_mode := args[6]
48234847
current_send_mode := Format("{}", A_SendMode)
48244848
4849+
current_coord_mode := Format("{}", A_CoordModeMouse)
4850+
if (coord_mode != "") {
4851+
CoordMode("Mouse", coord_mode)
4852+
}
4853+
4854+
4855+
48254856
if (send_mode != "") {
48264857
SendMode send_mode
48274858
}
@@ -4836,6 +4867,10 @@
48364867
SendMode current_send_mode
48374868
}
48384869
4870+
if (coord_mode != "") {
4871+
CoordMode("Mouse", current_coord_mode)
4872+
}
4873+
48394874
resp := FormatNoValueResponse()
48404875
return resp
48414876
{% endblock AHKMouseMove %}

ahk/_sync/engine.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -740,13 +740,13 @@ def mouse_position(self, new_position: Tuple[int, int]) -> None:
740740

741741
# fmt: off
742742
@overload
743-
def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, speed: Optional[int] = None, relative: bool = False, send_mode: Optional[SendMode] = None) -> None: ...
743+
def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, speed: Optional[int] = None, relative: bool = False, send_mode: Optional[SendMode] = None, coord_mode: Optional[CoordModeRelativeTo] = None) -> None: ...
744744
@overload
745-
def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, blocking: Literal[True], speed: Optional[int] = None, relative: bool = False, send_mode: Optional[SendMode] = None) -> None: ...
745+
def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, blocking: Literal[True], speed: Optional[int] = None, relative: bool = False, send_mode: Optional[SendMode] = None, coord_mode: Optional[CoordModeRelativeTo] = None) -> None: ...
746746
@overload
747-
def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, blocking: Literal[False], speed: Optional[int] = None, relative: bool = False, send_mode: Optional[SendMode] = None) -> FutureResult[None]: ...
747+
def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, blocking: Literal[False], speed: Optional[int] = None, relative: bool = False, send_mode: Optional[SendMode] = None, coord_mode: Optional[CoordModeRelativeTo] = None) -> FutureResult[None]: ...
748748
@overload
749-
def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, speed: Optional[int] = None, relative: bool = False, blocking: bool = True, send_mode: Optional[SendMode] = None) -> Union[None, FutureResult[None]]: ...
749+
def mouse_move(self, x: Optional[Union[str, int]] = None, y: Optional[Union[str, int]] = None, *, speed: Optional[int] = None, relative: bool = False, blocking: bool = True, send_mode: Optional[SendMode] = None, coord_mode: Optional[CoordModeRelativeTo] = None) -> Union[None, FutureResult[None]]: ...
750750
# fmt: on
751751
def mouse_move(
752752
self,
@@ -757,6 +757,7 @@ def mouse_move(
757757
relative: bool = False,
758758
send_mode: Optional[SendMode] = None,
759759
blocking: bool = True,
760+
coord_mode: Optional[CoordModeRelativeTo] = None,
760761
) -> Union[None, FutureResult[None]]:
761762
"""
762763
Analog for `MouseMove <https://www.autohotkey.com/docs/commands/MouseMove.htm>`_
@@ -781,6 +782,11 @@ def mouse_move(
781782
else:
782783
args.append('')
783784

785+
if coord_mode:
786+
args.append(coord_mode)
787+
else:
788+
args.append('')
789+
784790
resp = self._transport.function_call('AHKMouseMove', args, blocking=blocking)
785791
return resp
786792

ahk/templates/daemon-v2.ahk

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1807,8 +1807,16 @@ AHKMouseMove(args*) {
18071807
speed := args[3]
18081808
relative := args[4]
18091809
send_mode := args[5]
1810+
coord_mode := args[6]
18101811
current_send_mode := Format("{}", A_SendMode)
18111812

1813+
current_coord_mode := Format("{}", A_CoordModeMouse)
1814+
if (coord_mode != "") {
1815+
CoordMode("Mouse", coord_mode)
1816+
}
1817+
1818+
1819+
18121820
if (send_mode != "") {
18131821
SendMode send_mode
18141822
}
@@ -1823,6 +1831,10 @@ AHKMouseMove(args*) {
18231831
SendMode current_send_mode
18241832
}
18251833

1834+
if (coord_mode != "") {
1835+
CoordMode("Mouse", current_coord_mode)
1836+
}
1837+
18261838
resp := FormatNoValueResponse()
18271839
return resp
18281840
{% endblock AHKMouseMove %}

ahk/templates/daemon.ahk

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1704,11 +1704,34 @@ AHKMouseMove(args*) {
17041704
y := args[2]
17051705
speed := args[3]
17061706
relative := args[4]
1707+
send_mode := args[5]
1708+
coord_mode := args[6]
1709+
1710+
current_send_mode := Format("{}", A_SendMode)
1711+
current_coord_mode := Format("{}", A_CoordModeMouse)
1712+
1713+
if (send_mode != "") {
1714+
SendMode, %send_mode%
1715+
}
1716+
1717+
if (coord_mode != "") {
1718+
CoordMode, Mouse, %coord_mode%
1719+
}
1720+
17071721
if (relative != "") {
17081722
MouseMove, %x%, %y%, %speed%, R
17091723
} else {
17101724
MouseMove, %x%, %y%, %speed%
17111725
}
1726+
1727+
if (send_mode != "") {
1728+
SendMode, %current_send_mode%
1729+
}
1730+
1731+
if (coord_mode != "") {
1732+
CoordMode, Mouse, %current_coord_mode%
1733+
}
1734+
17121735
resp := FormatNoValueResponse()
17131736
return resp
17141737
{% endblock AHKMouseMove %}

0 commit comments

Comments
 (0)