Skip to content

Commit 01dd276

Browse files
committed
feat: rime_api add RimeApi::RimeReplaceInput
resolve #547
1 parent 767ebad commit 01dd276

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

src/rime_api.cc

+12
Original file line numberDiff line numberDiff line change
@@ -1084,6 +1084,17 @@ const char* RimeGetStateLabel(RimeSessionId session_id,
10841084
.str;
10851085
}
10861086

1087+
RIME_API Bool RimeSetInput(RimeSessionId session_id, const char* input) {
1088+
an<Session> session(Service::instance().GetSession(session_id));
1089+
if (!session)
1090+
return False;
1091+
Context* ctx = session->context();
1092+
if (!ctx)
1093+
return False;
1094+
ctx->set_input(input);
1095+
return True;
1096+
}
1097+
10871098
RIME_API RimeApi* rime_get_api() {
10881099
static RimeApi s_api = {0};
10891100
if (!s_api.data_size) {
@@ -1177,6 +1188,7 @@ RIME_API RimeApi* rime_get_api() {
11771188
s_api.delete_candidate = &RimeDeleteCandidate;
11781189
s_api.delete_candidate_on_current_page = &RimeDeleteCandidateOnCurrentPage;
11791190
s_api.get_state_label_abbreviated = &RimeGetStateLabelAbbreviated;
1191+
s_api.set_input = &RimeSetInput;
11801192
}
11811193
return &s_api;
11821194
}

src/rime_api.h

+3
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,7 @@ RIME_API Bool RimeConfigUpdateSignature(RimeConfig* config, const char* signer);
387387
RIME_API Bool RimeSimulateKeySequence(RimeSessionId session_id,
388388
const char* key_sequence);
389389

390+
RIME_API Bool RimeSetInput(RimeSessionId session_id, const char* input);
390391
// Module
391392

392393
/*!
@@ -644,6 +645,8 @@ typedef struct rime_api_t {
644645
const char* option_name,
645646
Bool state,
646647
Bool abbreviated);
648+
649+
Bool (*set_input)(RimeSessionId session_id, const char* input);
647650
} RimeApi;
648651

649652
//! API entry

0 commit comments

Comments
 (0)