windows.ui.core.textinput: Return success from CoreInputView Try* methods - #345
Closed
IceSqueez wants to merge 2 commits into
Closed
windows.ui.core.textinput: Return success from CoreInputView Try* methods#345IceSqueez wants to merge 2 commits into
IceSqueez wants to merge 2 commits into
Conversation
…hods. The stubs returned E_NOTIMPL, which the C++/WinRT projection turns into an unhandled hresult_not_implemented exception. Unity 6 titles (e.g. Albion Online) call CoreInputView.GetForCurrentView().TryHide() whenever a text field is committed and crash on the exception. Report success instead: TryShow* returns FALSE (no input pane can be shown), TryHide* returns TRUE (nothing is shown, so it is hidden).
…ry* methods. Mirror the InputPane implementation in windows.ui: locate the tabtip window and post WM_TABTIP_OSK_TOGGLE from TryShow*/TryHide*, so the Steam on-screen keyboard follows text field focus in titles using CoreInputView (Unity 6). TryShowWithKind only toggles the keyboard for the Default and Keyboard kinds; the other panes do not exist. Reported results are unchanged: TryShow* returns FALSE, TryHide* returns TRUE.
2 tasks
Member
|
Hello @IceSqueez, you've come across a downstream fork of wine used in Proton. This merge request should be evaluated and merged upstream first. After that's happened, then add a comment here with the commit and a Proton dev can ponder a backport. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Unity 6 titles (e.g. Albion Online, appid 761890) crash the moment a text field is committed (pressing Enter in chat, market search, etc.). The engine calls
CoreInputView.GetForCurrentView().TryHide(); the stubs inwindows.ui.core.textinputreturnE_NOTIMPL, which the C++/WinRT projection turns into an unhandledhresult_not_implementedexception:Disabling the DLL does not help either the activation failure takes the same unhandled-exception path. On Windows this API always exists and succeeds, so games have no reason to handle failure.
Fix
TryShow*/TryHide*methods:TryShow*reportsFALSE(no pane was shown),TryHide*reportsTRUE(nothing is shown, so it is hidden) same convention asinputpane2_TryShowinwindows.ui.WM_TABTIP_OSK_TOGGLE), mirroring the existingInputPaneimplementation, so the Steam on-screen keyboard follows text-field focus in CoreInputView-based titles.TryShowWithKindonly toggles the keyboard for theDefaultandKeyboardkinds.Testing
Tested with Albion Online on Arch/Hyprland: without the patch the client crashes on every text-field commit; with it chat and market search work.
The OSK toggling follows the same mechanism as the existing InputPane implementation.