User-agent: Mozilla Thunderbird 1.0.7-1.4.1 (X11/20050929)
I'd suggest an experiment. Create a shell and set a layout, create a
container and set a layout, and then pass that in to a stripped down
createPartControl() method ... add your canvas and your custom control.
Then dispose() the container ... add a breakpoint in your custom control
dispose().
If it's not called in that scenario, then you probably need to ask your
question in eclipse.platform.swt