imservice: Call show/hide directly
This commit is contained in:
@ -28,15 +28,11 @@ struct imservice* get_imservice(EekboardContextService *context,
|
|||||||
return imservice;
|
return imservice;
|
||||||
}
|
}
|
||||||
|
|
||||||
void imservice_make_visible(EekboardContextService *context,
|
void imservice_make_visible(EekboardContextService *context) {
|
||||||
struct zwp_input_method_v2 *im) {
|
|
||||||
(void)im;
|
|
||||||
eekboard_context_service_show_keyboard (context);
|
eekboard_context_service_show_keyboard (context);
|
||||||
}
|
}
|
||||||
|
|
||||||
void imservice_try_hide(EekboardContextService *context,
|
void imservice_try_hide(EekboardContextService *context) {
|
||||||
struct zwp_input_method_v2 *im) {
|
|
||||||
(void)im;
|
|
||||||
eekboard_context_service_hide_keyboard (context);
|
eekboard_context_service_hide_keyboard (context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -31,10 +31,10 @@ pub mod c {
|
|||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
extern "C" {
|
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 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_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
|
// 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 active_changed {
|
||||||
if imservice.current.active {
|
if imservice.current.active {
|
||||||
imservice_make_visible(imservice.ui_manager);
|
eekboard_context_service_show_keyboard(imservice.ui_manager);
|
||||||
eekboard_context_service_set_hint_purpose(
|
eekboard_context_service_set_hint_purpose(
|
||||||
imservice.ui_manager,
|
imservice.ui_manager,
|
||||||
imservice.current.content_hint.bits(),
|
imservice.current.content_hint.bits(),
|
||||||
imservice.current.content_purpose.as_num());
|
imservice.current.content_purpose.as_num());
|
||||||
} else {
|
} 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
|
// the keyboard is already decommissioned
|
||||||
imservice.current.active = false;
|
imservice.current.active = false;
|
||||||
|
|
||||||
imservice_try_hide(imservice.ui_manager);
|
eekboard_context_service_hide_keyboard(imservice.ui_manager);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: destroy and deallocate
|
// FIXME: destroy and deallocate
|
||||||
|
|||||||
Reference in New Issue
Block a user