Skip to content

Commit af2df95

Browse files
committed
docs: describe drags between windows and the drag-settle patch
1 parent 9aa9b24 commit af2df95

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

‎docs/tools.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ A status item is pressed through Accessibility in its owner process without movi
4949
| --- | --- |
5050
| `desktop_click` | Single, double, right, middle or triple click on an element or a screenshot point |
5151
| `desktop_scroll` | Scroll an element or point up, down, left or right |
52-
| `desktop_drag` | Press, move in a straight line, and release inside one window |
52+
| `desktop_drag` | Press, move in a straight line, and release inside one window, or into another window or app |
5353
| `desktop_hover` | Move the real pointer over an element or point, to show tooltips and hover states |
5454
| `desktop_press` | Press and hold an element or point for up to 10 seconds, then release in place |
5555
| `desktop_type` | Replace an editable field's whole value |
@@ -62,7 +62,7 @@ A status item is pressed through Accessibility in its owner process without movi
6262
| `desktop_dialog_answer` | Press one dialog button by its exact title, or replace one dialog text field's value |
6363
| `desktop_clipboard_write` | Replace the clipboard with text, an image, or file references |
6464

65-
Pointer input is delivered to the exact window without moving the physical pointer, except for `desktop_hover`. Hover effects follow the real pointer, so it moves the user's pointer and leaves it there. Before moving, it checks that the snapshot's window is still at the same place and frontmost at the point, and refuses otherwise. Afterward, it checks that the pointer arrived and the window is still frontmost there; if either can't be confirmed, the result is `unknown`. `desktop_press` holds the button through the same exact-window route as a drag, and the host always releases it, even when the call is interrupted or the window changes. When the host turns on the agent cursor, an orange arrow first glides to each click, scroll, drag, hover or press point, about a third of a second before the input is sent. It then shows a ripple for clicks, chevrons for scrolls and a trail for drags. For a press, it stays squeezed until the button is released, then ripples. The cursor fades after a few seconds idle. The cursor never takes clicks or focus and is left out of `desktop_inspect` and `desktop_screen` captures. It is decoration only: if it fails or is slow, input proceeds unchanged after at most 600 ms. Keyboard input, `desktop_type` and `desktop_select` don't show it.
65+
Pointer input is delivered to the exact window without moving the physical pointer, except for `desktop_hover` and a `desktop_drag` with `to_snapshot`. Hover effects follow the real pointer, so it moves the user's pointer and leaves it there. Before moving, it checks that the snapshot's window is still at the same place and frontmost at the point, and refuses otherwise. Afterward, it checks that the pointer arrived and the window is still frontmost there; if either can't be confirmed, the result is `unknown`. A drag into another window or app can't stay inside one window, so it also uses the real pointer, and pressing in the source may bring its app forward. Pass the destination's snapshot as `to_snapshot`. Both points must be uncovered at their snapshot positions, or the drag is refused before input. The pointer rests on the start point, then presses, pauses, moves, rests over the destination and releases. The result is always `unknown`; inspect both windows to see whether the drop happened. `desktop_press` holds the button through the same exact-window route as a drag, and the host always releases it, even when the call is interrupted or the window changes. When the host turns on the agent cursor, an orange arrow first glides to each click, scroll, drag, hover or press point, about a third of a second before the input is sent. It then shows a ripple for clicks, chevrons for scrolls and a trail for drags. For a press, it stays squeezed until the button is released, then ripples. The cursor fades after a few seconds idle. The cursor never takes clicks or focus and is left out of `desktop_inspect` and `desktop_screen` captures. It is decoration only: if it fails or is slow, input proceeds unchanged after at most 600 ms. Keyboard input, `desktop_type` and `desktop_select` don't show it.
6666

6767
When the host turns on the window highlight, the window an inspection or action targets gets an orange outline and a label such as "Claude is using TextEdit". It shows from the moment the request reaches the host, moves to a new window when the target changes, and fades about four seconds after the last request. The outline follows the window as it moves or resizes and stays directly above it in the window order, so windows in front of the target also cover the outline. It hides while the window is minimized, off screen or on another Space. Like the cursor, it never takes clicks or focus and is left out of captures. Requests without one exact window, such as `desktop_screen`, menus or the clipboard, don't show it.
6868

@@ -73,7 +73,7 @@ When the host turns on the window highlight, the window an inspection or action
7373
## Not supported
7474

7575
- **Keys outside text fields.** `desktop_key` and `desktop_insert` need a focused text control, so Escape, arrows, Return and shortcuts in lists, the Finder or canvases are refused ([#13](https://github.com/githubnext/desktop-tools/issues/13)).
76-
- **Drags between windows.** Drags are one straight line within one window; there is no drag between windows or apps.
76+
- **Confirmed drops between windows.** A drag into another window or app is always reported as `unknown`, because nothing can confirm the drop. Drags are one straight line, with no modifier keys.
7777
- **Choosing paths in file panels.** `desktop_dialog_answer` can type a file name into a save panel's field, but it can't navigate an open or save panel to a folder.
7878
- **Automatic retries.** By design, nothing is retried. After a `refused` or `unknown` result, observe again before deciding whether to act.
7979
- **Remote Macs.** The tools act on the Mac running the host app, on macOS 15 or later.

0 commit comments

Comments
 (0)