eclipse.platform.swt icon indicating copy to clipboard operation
eclipse.platform.swt copied to clipboard

Shell close event listener not called on Command+Q on Mac

Open mwhapples opened this issue 1 year ago • 5 comments
trafficstars

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:

  1. Launch Eclipse SWT Snippet99
  2. 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.

mwhapples avatar May 01 '24 14:05 mwhapples

IIRC, you need to add a SWT.Dispose listener to the display to get a notification for Cmd+Q on MacOS.

tmssngr avatar May 03 '24 14:05 tmssngr

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.

mwhapples avatar May 03 '24 14:05 mwhapples