Input Handling Architecture Refactor
This release fixes input routing issues where apps were opening when navigating the drawer after visiting AppsScreen.
What's Fixed
- Apps no longer receive input when the drawer is open
- Input no longer routes to inactive screens after navigation
- Eliminated race conditions in handler registration during screen transitions
Architecture Changes
- New priority-based input routing: Modal > Drawer > View
- Views now subscribe directly to InputDispatcher (no more state-checking in handlers)
- Drawer explicitly subscribes when opening, unsubscribes when closing
- Context changes (view switch, drawer open) automatically clear modal stack
Technical Details
- Removed 110+ lines of
appInputHandlerlogic from ViewModel subscribeView()replaces handlers immediately (noonDisposeraces)- Added
pushModal()/popModal()for future nested modal support