aboutsummaryrefslogtreecommitdiff
path: root/src/osx/gui/InputMethod.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/osx/gui/InputMethod.mm')
-rw-r--r--src/osx/gui/InputMethod.mm17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/osx/gui/InputMethod.mm b/src/osx/gui/InputMethod.mm
index e6105354..2331d8b7 100644
--- a/src/osx/gui/InputMethod.mm
+++ b/src/osx/gui/InputMethod.mm
@@ -32,6 +32,19 @@ void OsxInputMethodContextPrivate::PerformSel(SEL sel) {
[window_->p_->GetNSWindow() performSelector:sel];
}
+void OsxInputMethodContextPrivate::Activate() {
+ if (!window_->p_->GetNSWindow()) return;
+ auto input_context = [[window_->p_->GetNSWindow() contentView] inputContext];
+ Ensures(input_context);
+ [input_context activate];
+}
+
+void OsxInputMethodContextPrivate::Deactivate() {
+ if (!window_->p_->GetNSWindow()) return;
+ auto input_context = [[window_->p_->GetNSWindow() contentView] inputContext];
+ Ensures(input_context);
+ [input_context deactivate];
+}
}
OsxInputMethodContext::OsxInputMethodContext(OsxWindow* window)
@@ -41,9 +54,9 @@ OsxInputMethodContext::OsxInputMethodContext(OsxWindow* window)
OsxInputMethodContext::~OsxInputMethodContext() {}
-void OsxInputMethodContext::EnableIME() { [[NSTextInputContext currentInputContext] activate]; }
+void OsxInputMethodContext::EnableIME() { p_->Activate(); }
-void OsxInputMethodContext::DisableIME() { [[NSTextInputContext currentInputContext] deactivate]; }
+void OsxInputMethodContext::DisableIME() { p_->Deactivate(); }
bool OsxInputMethodContext::ShouldManuallyDrawCompositionText() { return true; }