Made the decision to return a null `TextLayout` when `TextPresenter.Foreground` is null for consistency with our other usages of null brushes, though not 100% sure this is correct.
* win32 ime wip
* ime window starts tracking the cursor, but coords are wrong
* fix win32 ime cursor coord
* win32-ime lang-specific behaviors
* track language id in WindowImpl
* lowercase dllimport
* create initial ime on window creation
* InputMethodManager: connect to client even if im is absent at the moment
* proposal: IKeyboardDevice.NotifyInputMethodUpdated
* finalizing
* ime: allow client to request active state change
* remove backward incompatible ActiveState.
* InputMethodManager: NotifyInputMethodUpdated: filter the window of current focused element
* [IME] [Windows] ability to enable/disable IME for any InputElement
* [IME] [Windows] Refactor Imm32InputMethod - create a single one for dispatcher. Also change a method of enabling/disabling IME to work like in WPF.
* [IME] [Windows] Fix IME after dialog show not working - active window context is not applied.
* [IME] [Windows] fix intermediate input position
* [IME] [Windows] PreEdit font size is applied
* [IME] [Windows] Make MoveImeWindow code to be exact like in chrome - fix a lot of possible issues. Added comments. Minor Refactoring
* [IME] [Windows] Refactor caret management, improve deactivation, remove comments
* [IME] [Windows] Remove redundant api changes (request from @kekekeks)
* Fix .sln and ApiCompatBesaline.txt redundant changes.
* [Windows] [IME] move IsInputMethodEnabled subscription to InputMethodManager, Move check for IsInputMethodEnabled before TextInputMethodClientRequestedEvent query
* [IME] [Windows] remove redundant SetActive(false) call, because it's called in Client setter
* remove redundant change
Co-authored-by: Yatao Li <yatli@microsoft.com>
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* Added failing tests for #838.
* Fix Text events when setting SelectedText.
Only raise a single property changed event on `Text` when setting `SelectedText`. It's a bit ugly but the whole of `TextBox` needs a refactor...
Fixes#838.
In UndoRedoHelper, the .Equals call in Snapshot() did not call Equals(UndoRedoState other). It called the default Equals(object obj) implementation. This could throw of the undo redo snapshotting. Fix that by overriding Equals(object obj).