Index: src/desktop/view/View.cpp
--- src/desktop/view/View.cpp.orig
+++ src/desktop/view/View.cpp
@@ -20,18 +20,16 @@ IView::~IView() {
     Event::bus()->m_events.view.destroy.emit({.view = m_self, .type = m_type});
 }
 
-void IView::initView(WP<IView> self, eViewType type) {
-    const auto VIEW = self.lock();
-
-    if (!VIEW)
+void IView::initView(SP<IView> self, eViewType type) {
+    if (!self)
         return;
 
     m_self        = self;
     m_type        = type;
-    m_address     = rc<uintptr_t>(VIEW.get());
+    m_address     = rc<uintptr_t>(self.get());
     m_initialized = true;
 
-    Event::bus()->m_events.view.create.emit(VIEW);
+    Event::bus()->m_events.view.create.emit(self);
 }
 
 SP<CWLSurfaceResource> IView::resource() const {
