imservice: Call show/hide directly
This commit is contained in:
		@ -28,15 +28,11 @@ struct imservice* get_imservice(EekboardContextService *context,
 | 
			
		||||
    return imservice;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void imservice_make_visible(EekboardContextService *context,
 | 
			
		||||
                            struct zwp_input_method_v2 *im) {
 | 
			
		||||
    (void)im;
 | 
			
		||||
void imservice_make_visible(EekboardContextService *context) {
 | 
			
		||||
    eekboard_context_service_show_keyboard (context);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void imservice_try_hide(EekboardContextService *context,
 | 
			
		||||
                        struct zwp_input_method_v2 *im) {
 | 
			
		||||
    (void)im;
 | 
			
		||||
void imservice_try_hide(EekboardContextService *context) {
 | 
			
		||||
    eekboard_context_service_hide_keyboard (context);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -31,10 +31,10 @@ pub mod c {
 | 
			
		||||
    
 | 
			
		||||
    #[no_mangle]
 | 
			
		||||
    extern "C" {
 | 
			
		||||
        fn imservice_make_visible(imservice: *const UIManager);
 | 
			
		||||
        fn imservice_try_hide(imservice: *const UIManager);
 | 
			
		||||
        fn imservice_destroy_im(im: *mut c::InputMethod);
 | 
			
		||||
        fn eekboard_context_service_set_hint_purpose(imservice: *const UIManager, hint: u32, purpose: u32);
 | 
			
		||||
        fn eekboard_context_service_show_keyboard(imservice: *const UIManager);
 | 
			
		||||
        fn eekboard_context_service_hide_keyboard(imservice: *const UIManager);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    // The following defined in Rust. TODO: wrap naked pointers to Rust data inside RefCells to prevent multiple writers
 | 
			
		||||
@ -152,13 +152,13 @@ pub mod c {
 | 
			
		||||
        };
 | 
			
		||||
        if active_changed {
 | 
			
		||||
            if imservice.current.active {
 | 
			
		||||
                imservice_make_visible(imservice.ui_manager);
 | 
			
		||||
                eekboard_context_service_show_keyboard(imservice.ui_manager);
 | 
			
		||||
                eekboard_context_service_set_hint_purpose(
 | 
			
		||||
                    imservice.ui_manager,
 | 
			
		||||
                    imservice.current.content_hint.bits(),
 | 
			
		||||
                    imservice.current.content_purpose.as_num());
 | 
			
		||||
            } else {
 | 
			
		||||
                imservice_try_hide(imservice.ui_manager);
 | 
			
		||||
                eekboard_context_service_hide_keyboard(imservice.ui_manager);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@ -176,7 +176,7 @@ pub mod c {
 | 
			
		||||
        // the keyboard is already decommissioned
 | 
			
		||||
        imservice.current.active = false;
 | 
			
		||||
 | 
			
		||||
        imservice_try_hide(imservice.ui_manager);
 | 
			
		||||
        eekboard_context_service_hide_keyboard(imservice.ui_manager);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // FIXME: destroy and deallocate
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user