static int ssd_dialog_released(RoadMapGuiPoint *point) { LastPointerPoint.x = -1; if( !ssd_widget_pointer_up(RoadMapDialogCurrent->container, point)) return 0; roadmap_screen_redraw (); return 0; }
int ssd_widget_pointer_up(SsdWidget widget, const RoadMapGuiPoint *point) { SsdWidget widget_next = widget; if( !widget) return 0; /* Check all the overlapping ( in terms of click area ) widgets * First widget, that it or its children handle the event - wins */ while ( widget_next != NULL ) { if ( ssd_widget_contains_point( widget_next, point, TRUE ) ) { if ( ( widget_next->pointer_up && widget_next->pointer_up( widget_next, point ) ) || ( widget_next->children && ssd_widget_pointer_up( widget_next->children, point ) ) ) { return 1; } } widget_next = widget_next->next; } return 0; }