private void deactivate() { SpellCheckerAgent.removeListener(visitor); if (viewer != null) { viewer.removeTextListener(this); viewer = null; } if (control != null && !control.isDisposed()) { control.removeListener(SWT.Modify, this); control.removeListener(SWT.Paint, this); control.removeListener(SWT.Dispose, this); redraw(control.getDisplay()); control = null; } if (job != null) { job.dispose(); job = null; } ranges.clear(); }