Browse Source

fix ime implementations with new api.

pull/7781/head
Dan Walmsley 5 years ago
parent
commit
9871144d3f
  1. 2
      src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs
  2. 2
      src/Avalonia.Input/ApiCompatBaseline.txt
  3. 7
      src/Avalonia.X11/X11Window.Xim.cs
  4. 4
      src/Web/Avalonia.Web.Blazor/AvaloniaView.razor.cs
  5. 6
      src/Windows/Avalonia.Win32/Input/Imm32InputMethod.cs

2
src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs

@ -97,7 +97,7 @@ namespace Avalonia.FreeDesktop.DBusIme.IBus
return _context.ProcessKeyEventAsync((uint)keyVal, (uint)keyCode, (uint)state); return _context.ProcessKeyEventAsync((uint)keyVal, (uint)keyCode, (uint)state);
} }
public override void SetOptions(TextInputOptionsQueryEventArgs options) public override void SetOptions(TextInputOptions options)
{ {
// No-op, because ibus // No-op, because ibus
} }

2
src/Avalonia.Input/ApiCompatBaseline.txt

@ -13,9 +13,9 @@ MembersMustExist : Member 'public void Avalonia.Input.InputElement.add_TextInput
MembersMustExist : Member 'public void Avalonia.Input.InputElement.remove_DoubleTapped(System.EventHandler<Avalonia.Interactivity.RoutedEventArgs>)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'public void Avalonia.Input.InputElement.remove_DoubleTapped(System.EventHandler<Avalonia.Interactivity.RoutedEventArgs>)' does not exist in the implementation but it does exist in the contract.
MembersMustExist : Member 'public void Avalonia.Input.InputElement.remove_Tapped(System.EventHandler<Avalonia.Interactivity.RoutedEventArgs>)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'public void Avalonia.Input.InputElement.remove_Tapped(System.EventHandler<Avalonia.Interactivity.RoutedEventArgs>)' does not exist in the implementation but it does exist in the contract.
MembersMustExist : Member 'public void Avalonia.Input.InputElement.remove_TextInputOptionsQuery(System.EventHandler<Avalonia.Input.TextInput.TextInputOptionsQueryEventArgs>)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'public void Avalonia.Input.InputElement.remove_TextInputOptionsQuery(System.EventHandler<Avalonia.Input.TextInput.TextInputOptionsQueryEventArgs>)' does not exist in the implementation but it does exist in the contract.
InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetActive(Avalonia.Input.TextInput.ITextInputMethodClient)' is present in the implementation but not in the contract.
InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetActive(System.Boolean)' is present in the contract but not in the implementation. InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetActive(System.Boolean)' is present in the contract but not in the implementation.
MembersMustExist : Member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetActive(System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetActive(System.Boolean)' does not exist in the implementation but it does exist in the contract.
InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetClient(Avalonia.Input.TextInput.ITextInputMethodClient)' is present in the implementation but not in the contract.
InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetOptions(Avalonia.Input.TextInput.TextInputOptions)' is present in the implementation but not in the contract. InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetOptions(Avalonia.Input.TextInput.TextInputOptions)' is present in the implementation but not in the contract.
InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetOptions(Avalonia.Input.TextInput.TextInputOptionsQueryEventArgs)' is present in the contract but not in the implementation. InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetOptions(Avalonia.Input.TextInput.TextInputOptionsQueryEventArgs)' is present in the contract but not in the implementation.
MembersMustExist : Member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetOptions(Avalonia.Input.TextInput.TextInputOptionsQueryEventArgs)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetOptions(Avalonia.Input.TextInput.TextInputOptionsQueryEventArgs)' does not exist in the implementation but it does exist in the contract.

7
src/Avalonia.X11/X11Window.Xim.cs

@ -10,7 +10,6 @@ namespace Avalonia.X11
{ {
partial class X11Window partial class X11Window
{ {
class XimInputMethod : ITextInputMethodImpl, IX11InputMethodControl class XimInputMethod : ITextInputMethodImpl, IX11InputMethodControl
{ {
private readonly X11Window _parent; private readonly X11Window _parent;
@ -58,9 +57,9 @@ namespace Avalonia.X11
UpdateActive(); UpdateActive();
} }
public void SetActive(bool active) public void SetClient(ITextInputMethodClient client)
{ {
_controlActive = active; _controlActive = client is { };
UpdateActive(); UpdateActive();
} }
@ -87,7 +86,7 @@ namespace Avalonia.X11
// No-op // No-op
} }
public void SetOptions(TextInputOptionsQueryEventArgs options) public void SetOptions(TextInputOptions options)
{ {
// No-op // No-op
} }

4
src/Web/Avalonia.Web.Blazor/AvaloniaView.razor.cs

@ -367,10 +367,12 @@ namespace Avalonia.Web.Blazor
} }
} }
public void SetActive(bool active) public void SetClient(ITextInputMethodClient? client)
{ {
_inputHelper.Clear(); _inputHelper.Clear();
var active = client is { };
if (active) if (active)
{ {
_inputHelper.Show(); _inputHelper.Show();

6
src/Windows/Avalonia.Win32/Input/Imm32InputMethod.cs

@ -74,12 +74,12 @@ namespace Avalonia.Win32.Input
} }
} }
public void SetActive(bool active) public void SetClient(ITextInputMethodClient client)
{ {
_active = active; _active = client is { };
Dispatcher.UIThread.Post(() => Dispatcher.UIThread.Post(() =>
{ {
if (active) if (_active)
{ {
if (DefaultImc != IntPtr.Zero) if (DefaultImc != IntPtr.Zero)
{ {

Loading…
Cancel
Save