Commit ca2ebe0
authored
Let the viewer close when Windows is shutting down (#778)
OnFormClosing cancelled every close, whatever the CloseReason. For a close the
user asked for that is right: whether closing means hide or exit is
ViewerProgram's rule and it needs a tray check to decide, so the form defers and
CloseForReal brings the answer back.
For the close Windows sends when the session is ending it is not. WinForms
answers WM_QUERYENDSESSION with !e.Cancel, so a viewer that was open at shutdown
told Windows it was preventing one, and the user got the "DiffEngineViewer is
preventing shutdown" screen. With a tray running it was worse than a prompt: the
loop's answer to a close request is to hide the window, so the process stayed up
and went on blocking until the user chose "Shut down anyway".
Do not cancel when the reason is WindowsShutDown or TaskManagerClosing. Both
mean the process is going away regardless, so refusing buys nothing. Letting the
close through is safe: the loop already watches for a disposed form and returns,
running the same shutdown it would have run anyway.1 parent d7f8a27 commit ca2ebe0
3 files changed
Lines changed: 71 additions & 4 deletions
File tree
- src
- DiffEngineViewer.Windows.Tests
- DiffEngineViewer.Windows
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
Lines changed: 53 additions & 0 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 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
312 | 312 | | |
313 | 313 | | |
314 | 314 | | |
315 | | - | |
316 | | - | |
317 | | - | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
318 | 325 | | |
319 | 326 | | |
320 | 327 | | |
| |||
323 | 330 | | |
324 | 331 | | |
325 | 332 | | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
326 | 340 | | |
327 | 341 | | |
328 | 342 | | |
| |||
0 commit comments