editor: refactoring canvas element state management