public IbusKeyboardSwitchingAdaptor(IIbusCommunicator ibusCommunicator) { _ibusComm = ibusCommunicator; if (KeyboardController.Instance != null) { KeyboardController.Instance.ControlAdded += OnControlRegistered; KeyboardController.Instance.ControlRemoving += OnControlRemoving; } // Don't turn on any Ibus IME keyboard until requested explicitly. // If we do nothing, the first Ibus IME keyboard is automatically activated. _ibusComm.FocusIn(); if (GlobalCachedInputContext.InputContext != null) { try { var context = GlobalCachedInputContext.InputContext; context.Reset(); GlobalCachedInputContext.Keyboard = null; context.SetEngine(""); context.Disable(); } catch (Exception e) { Console.WriteLine(e); } } _ibusComm.FocusOut(); }
public IbusKeyboardSwitchingAdaptor(IIbusCommunicator ibusCommunicator) { IBusCommunicator = ibusCommunicator; if (KeyboardController.EventProvider != null) { KeyboardController.EventProvider.ControlAdded += OnControlRegistered; KeyboardController.EventProvider.ControlRemoving += OnControlRemoving; } // Don't turn on any Ibus IME keyboard until requested explicitly. // If we do nothing, the first Ibus IME keyboard is automatically activated. IBusCommunicator.FocusIn(); if (GlobalCachedInputContext.InputContext != null) { try { var context = GlobalCachedInputContext.InputContext; context.Reset(); GlobalCachedInputContext.Keyboard = null; context.SetEngine(""); context.Disable(); } catch (Exception e) { Console.WriteLine(e); } } IBusCommunicator.FocusOut(); }
private void HandleLostFocus(object sender, EventArgs e) { if (!IBusCommunicator.Connected) { return; } IBusCommunicator.FocusOut(); var eventHandler = GetEventHandlerForControl(sender as Control); if (eventHandler == null) { return; } eventHandler.CommitOrReset(); }