Terminal: Windowsターミナル1.1はWinCompose入力を壊します

作成日 2020年07月27日  ·  3コメント  ·  ソース: microsoft/terminal

環境

Windows build number: 10.0.19041.0
Windows Terminal version (if applicable): 1.1.2021.0

Any other software?
Ubuntu 20.04 LTS (WSL2)
WinCompose v0.9.4 (https://github.com/samhocevar/wincompose/releases/tag/v0.9.4)

再現する手順

  1. WinComposeとWindowsターミナルを起動します(cmd、powershell、またはWSLは関係ありません)
  2. WinComposeコンポーズキーを使用して任意の文字を入力します
    例: rightAlt + o a

予想される行動


正しい文字(上記の例では「å」)が端末に送信されます。

実際の動作


文字が送信されていないようで、少なくとも何も表示されていません。

"experimental.input.forceVT": trueを設定すると期待される動作が得られるため、おそらく#6309に関連しています。

Area-Input Issue-Bug Needs-Tag-Fix Priority-1 Product-Terminal

最も参考になるコメント

私が見る限り、この問題は#7900で修正されました。 WinComposeは最新のWTバージョンで問題なく動作するため、この問題は今のところクローズします。

良いことは、 SendInputを使用しているサードパーティアプリケーションで、無効なスキャンコードを含む奇妙なキーイベントを受け取っている理由をようやく理解したことです。WTはTranslateMessage(Ex)適切に使用しません。 (つまり、そうでないという非常に具体的な理由があります。つまり、文字キーの場合でもキーイベントを受信する必要があります。)

全てのコメント3件

ええと。 これは従来のコンソールでも正確に機能するわけではなく、WTで機能したのはややまぐれでした。 しかし、それは_すべき_です。

これは、WCから従来のコンソールに送られる主要なイベントを覗いてみると得られるものです。

v 001 0010 002a 0000 ^@   00000010
^ 001 0010 002a 0000 ^@   00000000
v 001 0000 0000 00f6 �    00000000
^ 001 00e7 0000 00f6 �    00000000
^ 001 004f 0018 006f o    00000000

そして、これが私がタップを乗り越えているものです:

␛[255;0;0;1;16;1_␛[255;0;0;0;16;1_

その255は間違いなく正しくありません

では、 SendInput()がデフォルトで機能しなくなった場合、サードパーティアプリケーションはどのようにUnicode文字をWindowsターミナルに送信する必要がありますか?

私が見る限り、この問題は#7900で修正されました。 WinComposeは最新のWTバージョンで問題なく動作するため、この問題は今のところクローズします。

良いことは、 SendInputを使用しているサードパーティアプリケーションで、無効なスキャンコードを含む奇妙なキーイベントを受け取っている理由をようやく理解したことです。WTはTranslateMessage(Ex)適切に使用しません。 (つまり、そうでないという非常に具体的な理由があります。つまり、文字キーの場合でもキーイベントを受信する必要があります。)

このページは役に立ちましたか?
0 / 5 - 0 評価