待辦事項 #3761

C-k を押しっぱなしにすると、期待通りに動かない
啟用日期: 2004-01-15 22:56 最後更新: 2004-01-18 23:24

回報者:
負責人:
類型:
狀態:
關閉
元件:
(無)
里程碑:
(無)
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
修正
檔案:

細節

XKeymacs 2.53 において、
C-k を押しっぱなしにすると、
期待通りに動かない。

Ticket History (3/3 Histories)

2004-01-15 22:59 Updated by: xkeymacs
評語
Logged In: YES
user_id=6083

C-f を押し続けたときに f が入力されることがある問題と同根。

C-k の実行中に C-k が来たときに無視する仕組みを作ることで
解決するかもしれないし、
多少ましになるかもしれないし、
全く変わらないかもしれない。
2004-01-17 10:00 Updated by: xkeymacs
評語
Logged In: YES
user_id=6083

CCommands::KillLine 内にいるときに押された C-k を
すべて捨てるようにしてみたものの
現象はほとんど改善されず。
# 各 case の先頭で nStep = 0 してたのを nSpte = -1 とし
# nStep が -1 のときに来た C-k を無視するようにした。

やはり、Recursive で KillLine から出たときに押される C-k を
どうにかしないことには、この問題は直らない模様。

その為には、Recursive を待っているときに、
論理的に来た C-k と物理的に来た C-k を
見分けられれば楽なのだが。
それがだめなら、C-k を受け取ったあとに数秒寝て、
その間の C-k を捨てることでも対応できるか?
2004-01-18 23:24 Updated by: xkeymacs
  • Ticket Close date is changed to 2004-01-18 23:24
  • 處理結果 Update from to 修正
  • 狀態 Update from 開啟 to 關閉
評語
Logged In: YES
user_id=6083

XKeymacs 2.54 で修正済み。

Recursive を行うのに、素直に同じキーを呼ばず、
Virtual Key Code 0x00 を呼ぶようにし、
その間に来た元のキーを全て捨てることで完全に修正。
0x07 など、他の使われてないキーを使用しても
問題を修正できることを確認。

ただし、0x00 だと他のキーボードユーティリティが
お節介に(?!)捨てさる可能性も否定できず、
そうでなくとも使っていけない気はする。
また 0x07 のような Undefined や Reserved なキーも
地球の裏側で秘かに(?!)利用されてる可能性もあり、
できることなら使いたくない。

こうすれば直るであろうことは前々から気付いていたものの
あまりにも禁断の臭いがするので
いままでは敢えて行わず、他の対応策を探っていた。
が、ユーザから見ればどのような実装でも
動かないよりは動くにこしたことはないであろうし、
そう何年も動かないままにしておくのも
それはそれで罪な気もするので、今回は敢えて直してみた。
もしかしたら、火を噴くかも。(ぉ

Attachment File List

No attachments

編輯

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登入