ltk/input/pointer/
release.rsuse crate::app::App;
use crate::event_loop::AppData;
use crate::platform::Platform;
use super::super::event::PointerInput;
impl<A: App, P: Platform> AppData<A, P>
{
pub( super ) fn on_pointer_release( &mut self, input: &PointerInput )
{
let focus = input.focus;
let pos = self.surface( focus ).to_physical( input.position.0, input.position.1 );
self.pointer_pos = pos;
self.app.on_pointer_move( pos.x, pos.y );
self.app.on_pointer_button( pos.x, pos.y, false );
if self.osk_release( focus, pos ) { return; }
let global_drag = self.has_active_long_press_drag();
let swipe = self.swipe_config( focus );
let events_out =
{
let ss = self.surface_mut( focus );
ss.needs_redraw = true;
ss.gesture.on_release( pos, &ss.frame.widget_rects, &swipe, global_drag )
};
self.apply_release_events( focus, events_out );
self.stop_button_repeat();
self.dispatch_cursor_shape( focus );
}
}