eclipse.platform.swt
eclipse.platform.swt copied to clipboard
Shell close event listener not called on Command+Q on Mac
On MacOSX when I press Command+Q for quit in an SWT application the shell closes without calling the close event listener. My Mac is a bit outdated, but I have been assured by work colleagues the issue still shows with newer Macs.
Steps to reproduce:
- Launch Eclipse SWT Snippet99
- Press Command+Q
Expected: The message box asking whether to close should appear. Actual: The shell just closes.
SWT version tested: 3.125.0 (from maven central)
This bug seems to be specific to pressing the Command+Q keyboard shortcut, pressing the close button on screen works as expected.
IIRC, you need to add a SWT.Dispose listener to the display to get a notification for Cmd+Q on MacOS.
If I understand it correctly a dispose listener on the Display object will be called after the shell is closed, so attempting to cancel the dispose event will not prevent the shell being closed. Thus it does not seem to be a solution if a confirmation to quit dialog is wanted like in Snippet99 and the prompt is to appear when using Command+Q keyboard shortcut. If I have misunderstood and it does actually work as I would have hoped, then may be Snippet99 needs updating to include this as well.