void (EditableArea area) { try { removeListeners(); if (mySurfaceArea == area) { try { myTreeArea.setCanvasSelection(true); myTreeArea.setSelection(mySurfaceArea.getSelection()); } finally { myTreeArea.setCanvasSelection(false); } } else { mySurfaceArea.setSelection(myTreeArea.getSelection()); mySurfaceArea.scrollToSelection(); } } finally { addListeners(); } }