Terminal: Windows Terminal 1.1 memecah input WinCompose

Dibuat pada 27 Jul 2020  ·  3Komentar  ·  Sumber: microsoft/terminal

Lingkungan Hidup

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)

Langkah-langkah untuk mereproduksi

  1. Mulai WinCompose dan Windows Terminal (cmd, PowerShell, atau WSL tidak masalah)
  2. Masukkan karakter apa pun menggunakan kunci penulisan WinCompose
    misal rightAlt + o a

Perilaku yang diharapkan


Karakter yang benar ('å' dalam contoh di atas) dikirim ke terminal.

Perilaku sebenarnya


Tampaknya tidak ada karakter yang dikirim, setidaknya tidak ada yang ditampilkan.

Mungkin terkait dengan # 6309 karena pengaturan "experimental.input.forceVT": true memberikan perilaku yang diharapkan.

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

Komentar yang paling membantu

Sejauh yang saya lihat, masalah ini telah diperbaiki di # 7900. Saya akan menutup masalah ini untuk saat ini karena WinCompose berfungsi dengan baik di pihak saya dengan versi WT terbaru.

Hal baiknya adalah sekarang saya akhirnya mengerti, mengapa kami menerima peristiwa penting yang aneh, yang berisi kode pemindaian yang tidak valid, untuk aplikasi pihak ketiga yang menggunakan SendInput : WT tidak menggunakan TranslateMessage(Ex) dengan benar. (Maksud saya, ada alasan yang sangat spesifik mengapa tidak ... Yaitu kebutuhan untuk menerima peristiwa kunci bahkan untuk kunci karakter.)

Semua 3 komentar

Hah. Ini juga tidak benar-benar berfungsi di konsol tradisional, dan itu agak kebetulan yang berhasil di WT. Itu _harus_, meskipun.

Inilah yang saya dapatkan jika saya mengintip peristiwa penting yang keluar dari WC ke konsol tradisional:

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

dan inilah yang saya dapatkan dari keran:

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

255 itu pasti tidak benar

Jadi, bagaimana aplikasi pihak ketiga mengirim karakter Unicode ke Terminal Windows jika SendInput() tidak lagi berfungsi secara default?

Sejauh yang saya lihat, masalah ini telah diperbaiki di # 7900. Saya akan menutup masalah ini untuk saat ini karena WinCompose berfungsi dengan baik di pihak saya dengan versi WT terbaru.

Hal baiknya adalah sekarang saya akhirnya mengerti, mengapa kami menerima peristiwa penting yang aneh, yang berisi kode pemindaian yang tidak valid, untuk aplikasi pihak ketiga yang menggunakan SendInput : WT tidak menggunakan TranslateMessage(Ex) dengan benar. (Maksud saya, ada alasan yang sangat spesifik mengapa tidak ... Yaitu kebutuhan untuk menerima peristiwa kunci bahkan untuk kunci karakter.)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat