@@ -8,7 +8,7 @@ use accesskit::{
88 Tree as TreeData , TreeUpdate ,
99} ;
1010use accesskit_consumer:: { FilterResult , Tree } ;
11- use objc2:: rc:: { Id , WeakId } ;
11+ use objc2:: rc:: { Retained , Weak } ;
1212use objc2_app_kit:: NSView ;
1313use objc2_foundation:: { MainThreadMarker , NSArray , NSObject , NSPoint } ;
1414use std:: { ffi:: c_void, ptr:: null_mut, rc:: Rc } ;
@@ -25,7 +25,7 @@ const PLACEHOLDER_ROOT_ID: NodeId = NodeId(0);
2525
2626enum State {
2727 Inactive {
28- view : WeakId < NSView > ,
28+ view : Weak < NSView > ,
2929 is_view_focused : bool ,
3030 action_handler : Rc < dyn ActionHandlerNoMut > ,
3131 mtm : MainThreadMarker ,
@@ -62,8 +62,8 @@ impl Adapter {
6262 is_view_focused : bool ,
6363 action_handler : impl ' static + ActionHandler ,
6464 ) -> Self {
65- let view = unsafe { Id :: retain ( view as * mut NSView ) } . unwrap ( ) ;
66- let view = WeakId :: from_id ( & view) ;
65+ let view = unsafe { Retained :: retain ( view as * mut NSView ) } . unwrap ( ) ;
66+ let view = Weak :: from_retained ( & view) ;
6767 let mtm = MainThreadMarker :: new ( ) . unwrap ( ) ;
6868 let state = State :: Inactive {
6969 view,
@@ -202,20 +202,22 @@ impl Adapter {
202202 let state = tree. state ( ) ;
203203 let node = state. root ( ) ;
204204 let platform_nodes = if filter ( & node) == FilterResult :: Include {
205- vec ! [ Id :: into_super( Id :: into_super(
206- context. get_or_create_platform_node( node. id( ) ) ,
207- ) ) ]
205+ vec ! [ context
206+ . get_or_create_platform_node( node. id( ) )
207+ . into_super( )
208+ . into_super( ) ]
208209 } else {
209210 node. filtered_children ( filter)
210211 . map ( |node| {
211- Id :: into_super ( Id :: into_super (
212- context. get_or_create_platform_node ( node. id ( ) ) ,
213- ) )
212+ context
213+ . get_or_create_platform_node ( node. id ( ) )
214+ . into_super ( )
215+ . into_super ( )
214216 } )
215- . collect :: < Vec < Id < NSObject > > > ( )
217+ . collect :: < Vec < Retained < NSObject > > > ( )
216218 } ;
217- let array = NSArray :: from_vec ( platform_nodes) ;
218- Id :: autorelease_return ( array)
219+ let array = NSArray :: from_retained_slice ( & platform_nodes) ;
220+ Retained :: autorelease_return ( array)
219221 }
220222
221223 pub fn focus < H : ActivationHandler + ?Sized > (
@@ -227,14 +229,14 @@ impl Adapter {
227229 let state = tree. state ( ) ;
228230 if let Some ( node) = state. focus ( ) {
229231 if can_be_focused ( & node) {
230- return Id :: autorelease_return ( context. get_or_create_platform_node ( node. id ( ) ) )
232+ return Retained :: autorelease_return ( context. get_or_create_platform_node ( node. id ( ) ) )
231233 as * mut _ ;
232234 }
233235 }
234236 null_mut ( )
235237 }
236238
237- fn weak_view ( & self ) -> & WeakId < NSView > {
239+ fn weak_view ( & self ) -> & Weak < NSView > {
238240 match & self . state {
239241 State :: Inactive { view, .. } => view,
240242 State :: Placeholder {
@@ -263,6 +265,6 @@ impl Adapter {
263265 let root = state. root ( ) ;
264266 let point = from_ns_point ( & view, & root, point) ;
265267 let node = root. node_at_point ( point, & filter) . unwrap_or ( root) ;
266- Id :: autorelease_return ( context. get_or_create_platform_node ( node. id ( ) ) ) as * mut _
268+ Retained :: autorelease_return ( context. get_or_create_platform_node ( node. id ( ) ) ) as * mut _
267269 }
268270}
0 commit comments