Commit 8a591fd
authored
Relaunch a tracked move the way the tool says to (#849)
DiffRunner starts a diff tool with the UseShellExecute and CreateNoWindow the tool
declares. The tray's "Open diff tool" hard coded ShellExecute and left CreateNoWindow
off, so the same tool was started two different ways depending on which surface asked
- and the flag a console subsystem tool sets specifically to keep a window off the
screen was the one being dropped.
Measured before changing anything, because the comment that flag carries says a
window flashes without it. On Windows 11 nothing flashes: the console window the
hard coded pair produces is zero sized, WS_EX_TOOLWINDOW and WS_EX_NOACTIVATE, so
nobody sees it, and a conhost child is attached either way. What the tool's own flags
change here is that the window object is not created at all. The reason to do it is
still the first paragraph: one launch contract rather than two, on a machine where
that comment may well have been earned.
The flags are resolved rather than carried, because the payload has no room for them
- PiperServer's format is frozen, and every stable DiffEngine embeds the client that
writes it. By path first, and then by the executable's name, which is what the
bundled viewer needs: the path a move carries is the sending process's, and that one
is inside that project's package folder, somewhere the tray has never looked. An exe
that resolves to neither keeps the pair this always used.
Note that following the tool now also means following UseShellExecute, so a viewer
reopened from the tray inherits the tray's handles rather than being detached from
them. The tray is a long lived process whose output nobody is reading, which is not
the case the ShellExecute default was there to protect.1 parent 57cb77c commit 8a591fd
2 files changed
Lines changed: 121 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
9 | 50 | | |
10 | 51 | | |
11 | 52 | | |
| |||
24 | 65 | | |
25 | 66 | | |
26 | 67 | | |
| 68 | + | |
27 | 69 | | |
28 | 70 | | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
| 71 | + | |
| 72 | + | |
33 | 73 | | |
34 | 74 | | |
35 | 75 | | |
| |||
0 commit comments