待辦事項 #3762

Windows XP 上で右 Shift が変
啟用日期: 2004-01-15 23:01 最後更新: 2004-01-18 23:27

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

細節

XKeymacs 2.53 において、
Windows XP 上で
右 Shift を用いて M-< したあとで C-s すると
右 Shift が押しっぱなしになる。

Ticket History (3/4 Histories)

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

XKeymacs 2.24.1 において、
C-f を押し続けたときに f が入力されることがある問題を直すために
キーの論理的状態ではなく、物理的状態を見るようにしたことが発端。

ただし Windows XP 上のメモ帳などでのみ起き、
Windows 2000 上では全く起きない。

2.24.1 への変更では IsDown のキー判定しか触ってないのだが、
2.53 の IsDown を論理的状態を見るように変更するだけでは
問題は直らない。(振る舞いは変わるが、期待通りに動かない)

右 Shift が押されるときの、スタックトレースが欲しい。
2004-01-15 23:05 Updated by: xkeymacs
  • 負責人 Update from (無) to xkeymacs
2004-01-17 19:21 Updated by: xkeymacs
評語
Logged In: YES
user_id=6083

XKeymacs 2.53 において、
メモ帳で右 Shift を用いた M-< を起こなったあと、
任意のキー(A とか B とか)を押して
小文字が入力されることを確認してから
マウスで XKeymacs を終了し
マウスでメモ帳のウィンドウを選択すると
A とか B とかを押したときに大文字が入力される。
もとい、左の Shift が押しっぱなしになっている。

その間、XKeymacs が keybd_event で
Shift (VK_SHIFT, VK_LSHIFT) を押してないことは確認。
# 終了せずに C-s したときも
# keybd_event で Shift を押してないことは確認済み

つまり、左の Shift キーを押しているのは
XKeymacs ではなく Windows XP である可能性が高そう。
そうだと仮定すると、XKeymacs が生きてる限りは
Window の遷移時に物理的に Shift が押されてないにも関わらず
論理的に Shift が押されている場合に
Shift を Release してやれば対処できそうな予感。
ただ、それで対処はできたとしても、
なぜ Shift が OS に押されてしまうのか疑問。
2 回押して、1 回しか離してないと、
Window 遷移時に OS が数を数えなおして論理的に押してしまう???
2004-01-18 23:27 Updated by: xkeymacs
  • Ticket Close date is changed to 2004-01-18 23:27
  • 處理結果 Update from to 修正
  • 狀態 Update from 開啟 to 關閉
評語
Logged In: YES
user_id=6083

XKeymacs 2.54 で修正済み。

OS が Windows XP 以降であれば、
AdKduAu および CdKduCu の後で
常に(それまでの Shift の状態に関わらず)
Shift を押さないようにすることで対応。
これで良いのかどうか解らないが、
Shift を用いたコマンドを連打する際は
Shift キーの物理的状態を参照しているので問題なく動く。

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. » 登入