fn do_event_inner(&mut self, event: Event, win_ctx: &mut dyn WinCtx) -> (bool, bool, bool) {
        // should there be a root base state persisting in the ui state instead?
        //cortex_m::asm::bkpt(); ////
        let _cursor = match event {
            Event::MouseMoved(..) => Some(Cursor::Arrow),
            _ => None,
        };

        /* ////
        let event = match event {
            Event::Size(size) => {
                let dpi = f64::from(self.state.handle.get_dpi());
                let scale = 96.0 / dpi;
                Event::Size(Size::new(size.width * scale, size.height * scale))
            }
            other => other,
        };
        */ ////

        let mut base_state = BaseState::default();
        let mut ctx = EventCtx {
            win_ctx,
            ////cursor: &mut cursor,
            ////command_queue: self.command_queue,
            base_state: &mut base_state,
            is_handled: false,
            is_root: true,
            had_active: false, ////TODO self.window.has_active(),
            ////had_active: self.window.root.state.has_active,
            window: &AppState::<T>::new().get_handle(self.window_id),
            ////window: &self.state.handle,
            window_id: self.window_id,
        };
        AppState::<T>::new().window_event(self.window_id, &mut ctx, &event); ////
        ////self.window.event(&mut ctx, &event, self.data, self.env);

        let is_handled = ctx.is_handled;
        if ctx.base_state.request_focus {
            let focus_event = Event::FocusChanged(true);
            AppState::<T>::new().window_event(self.window_id, &mut ctx, &focus_event); ////
            ////self.window
                ////.event(&mut ctx, &focus_event, self.data, self.env);
        }
        let needs_inval = ctx.base_state.needs_inval;
        let request_anim = ctx.base_state.request_anim;
        /* ////
            if let Some(cursor) = cursor {
                win_ctx.set_cursor(&cursor);
            }
        */ ////

        (is_handled, needs_inval, request_anim)
    }
/// Send an event to the widget hierarchy.
///
/// Returns three flags. The first is true if the event was handled. The
/// second is true if invalidation is requested. The third is true if an
/// animation frame is requested.
Send an event to the widget hierarchy.
Returns three flags. The first is true if the event was handled. The
second is true if invalidation is requested. The third is true if an
animation frame is requested.
Send an event to the widget hierarchy . Returns three flags . The first is true if the event was handled . The second is true if invalidation is requested . The third is true if an animation frame is requested .
fn do_event_inner(&mut self, event: Event, win_ctx: &mut dyn WinCtx) -> (bool, bool, bool) {
        // should there be a root base state persisting in the ui state instead?
        //cortex_m::asm::bkpt(); ////
        let _cursor = match event {
            Event::MouseMoved(..) => Some(Cursor::Arrow),
            _ => None,
        };
        /* ////
        let event = match event {
            Event::Size(size) => {
                let dpi = f64::from(self.state.handle.get_dpi());
                let scale = 96.0 / dpi;
                Event::Size(Size::new(size.width * scale, size.height * scale))
            }
            other => other,
        };
        */ ////
        let mut base_state = BaseState::default();
        let mut ctx = EventCtx {
            win_ctx,
            ////cursor: &mut cursor,
            ////command_queue: self.command_queue,
            base_state: &mut base_state,
            is_handled: false,
            is_root: true,
            had_active: false, ////TODO self.window.has_active(),
            ////had_active: self.window.root.state.has_active,
            window: &AppState::<T>::new().get_handle(self.window_id),
            ////window: &self.state.handle,
            window_id: self.window_id,
        };
        AppState::<T>::new().window_event(self.window_id, &mut ctx, &event); ////
        ////self.window.event(&mut ctx, &event, self.data, self.env);
        let is_handled = ctx.is_handled;
        if ctx.base_state.request_focus {
            let focus_event = Event::FocusChanged(true);
            AppState::<T>::new().window_event(self.window_id, &mut ctx, &focus_event); ////
            ////self.window
                ////.event(&mut ctx, &focus_event, self.data, self.env);
        }
        let needs_inval = ctx.base_state.needs_inval;
        let request_anim = ctx.base_state.request_anim;
        /* ////
            if let Some(cursor) = cursor {
                win_ctx.set_cursor(&cursor);
            }
        */ ////
        (is_handled, needs_inval, request_anim)
    }
fn do_event_inner ( & mut self , event : Event , win_ctx : & mut dyn WinCtx ) -> ( bool , bool , bool ) { // should there be a root base state persisting in the ui state instead? //cortex_m::asm::bkpt(); //// let _cursor = match event { Event :: MouseMoved ( .. ) => Some ( Cursor :: Arrow ) , _ => None , } ; /* ////
        let event = match event {
            Event::Size(size) => {
                let dpi = f64::from(self.state.handle.get_dpi());
                let scale = 96.0 / dpi;
                Event::Size(Size::new(size.width * scale, size.height * scale))
            }
            other => other,
        };
        */ //// let mut base_state = BaseState :: default ( ) ; let mut ctx = EventCtx { win_ctx , ////cursor: &mut cursor, ////command_queue: self.command_queue, base_state : & mut base_state , is_handled : false , is_root : true , had_active : false , ////TODO self.window.has_active(), ////had_active: self.window.root.state.has_active, window : & AppState :: < T > :: new ( ) . get_handle ( self . window_id ) , ////window: &self.state.handle, window_id : self . window_id , } ; AppState :: < T > :: new ( ) . window_event ( self . window_id , & mut ctx , & event ) ; //// ////self.window.event(&mut ctx, &event, self.data, self.env); let is_handled = ctx . is_handled ; if ctx . base_state . request_focus { let focus_event = Event :: FocusChanged ( true ) ; AppState :: < T > :: new ( ) . window_event ( self . window_id , & mut ctx , & focus_event ) ; //// ////self.window ////.event(&mut ctx, &focus_event, self.data, self.env); } let needs_inval = ctx . base_state . needs_inval ; let request_anim = ctx . base_state . request_anim ; /* ////
            if let Some(cursor) = cursor {
                win_ctx.set_cursor(&cursor);
            }
        */ //// ( is_handled , needs_inval , request_anim ) }
Send an event to the widget hierarchy.
Send an event to the widget hierarchy .
&mut self
event
Event
win_ctx
&mut dyn WinCtx
&mut self
event
Event
win_ctx
&mut dyn WinCtx