Skip to content

Commit e41bb63

Browse files
committed
fix(engine): schema doesn't match the one used by switcher
Closes #269
1 parent cbd8fb3 commit e41bb63

File tree

4 files changed

+11
-11
lines changed

4 files changed

+11
-11
lines changed

src/rime/engine.h

+5-5
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ class Engine : public Messenger {
3131
Context* context() const { return context_.get(); }
3232
CommitSink& sink() { return sink_; }
3333

34-
Context* active_context() const {
35-
return active_context_ ? active_context_ : context_.get();
34+
Engine* active_engine() {
35+
return active_engine_ ? active_engine_ : this;
3636
}
37-
void set_active_context(Context* context = nullptr) {
38-
active_context_ = context;
37+
void set_active_engine(Engine* engine = nullptr) {
38+
active_engine_ = engine;
3939
}
4040

4141
RIME_API static Engine* Create();
@@ -46,7 +46,7 @@ class Engine : public Messenger {
4646
the<Schema> schema_;
4747
the<Context> context_;
4848
CommitSink sink_;
49-
Context* active_context_ = nullptr;
49+
Engine* active_engine_ = nullptr;
5050
};
5151

5252
} // namespace rime

src/rime/service.cc

+2-2
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,11 @@ void Session::OnCommit(const string& commit_text) {
5656
}
5757

5858
Context* Session::context() const {
59-
return engine_ ? engine_->active_context() : NULL;
59+
return engine_ ? engine_->active_engine()->context() : NULL;
6060
}
6161

6262
Schema* Session::schema() const {
63-
return engine_ ? engine_->schema() : NULL;
63+
return engine_ ? engine_->active_engine()->schema() : NULL;
6464
}
6565

6666
Service::Service() {

src/rime/switcher.cc

+2-2
Original file line numberDiff line numberDiff line change
@@ -189,13 +189,13 @@ void Switcher::Activate() {
189189
LOG(INFO) << "switcher is activated.";
190190
context_->set_option("_fold_options", fold_options_);
191191
RefreshMenu();
192-
engine_->set_active_context(context_.get());
192+
engine_->set_active_engine(this);
193193
active_ = true;
194194
}
195195

196196
void Switcher::Deactivate() {
197197
context_->Clear();
198-
engine_->set_active_context();
198+
engine_->set_active_engine();
199199
active_ = false;
200200
}
201201

tools/rime_console.cc

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class RimeConsole {
5353
const Segment &current(comp.back());
5454
if (!current.menu)
5555
return;
56-
int page_size = engine_->schema()->page_size();
56+
int page_size = engine_->active_engine()->schema()->page_size();
5757
int page_no = current.selected_index / page_size;
5858
the<Page> page(current.menu->CreatePage(page_size, page_no));
5959
if (!page)
@@ -81,7 +81,7 @@ class RimeConsole {
8181
for (const KeyEvent &key : keys) {
8282
engine_->ProcessKey(key);
8383
}
84-
Context *ctx = engine_->active_context();
84+
Context *ctx = engine_->active_engine()->context();
8585
if (interactive_) {
8686
PrintComposition(ctx);
8787
}

0 commit comments

Comments
 (0)