Report/32

Last-modified: 2011-12-12 (月) 09:15:58

X1ボタンの暴発が無くなりました。

  • ページ: Report
  • 投稿者: はてなようせい
  • 優先順位: 重要
  • 状態: 保留
  • カテゴリ: Mousegesture.ahk
  • バージョン:
  • 登録日: 2011-01-01
  • 完了日:

メッセージ

MouseGesture.ahkのトリガーキーエミュレートについて
そういえば、マウ筋からMouseGesture.ahkへ乗り換えたときに一番気になったのは、登録していないジェスチャをしてしまうと、トリガーキーが発動してしまうこと。

X1ボタンから始まるジェスチャをしようとして、ジェスチャが不発に終わったときにX1本来の「戻る」機能が出てしまうってやつ。
これはちょっと使いづらい。不発の時は不発のまま、何のキーも発行して欲しくない。
仕方ないので分からないなりにMouseGesture.ahkのコードを睨んで、この変か?ってところをいじってみた。

MG_TriggerUp(name)内の

           ;ジェスチャ未発動の場合、トリガー操作をエミュレート
           CoordMode,Mouse,Screen
           SetMouseDelay,-1
           BlockInput,On
           MouseGetPos,px,py
           MouseMove,%MG_X%,%MG_Y%,0
           GoSub,MG_%name%_Down
           MouseMove,%px%,%py%,0
           Sleep,1
           GoSub,MG_%name%_Up
           BlockInput,Off

これを

           ;ジェスチャ未発動の場合、トリガー操作をエミュレート
           if(StrLen(MG_Gesture)<5){
               CoordMode,Mouse,Screen
               SetMouseDelay,-1
               BlockInput,On
               MouseGetPos,px,py
               MouseMove,%MG_X%,%MG_Y%,0
               GoSub,MG_%name%_Down
               MouseMove,%px%,%py%,0
               Sleep,1
               GoSub,MG_%name%_Up
               BlockInput,Off
           }

こう変えた。
ジェスチャはRB_LR_といった文字列として処理されているようなので、
トリガーキーが押し上げられたとき、ジェスチャが一定文字数以下のときだけ、トリガーキー操作を発行するようにした。
最短のジェスチャとしては、RB_L_と言った5文字のものが考えられるので、とりあえず5文字未満で。

これでX1ボタンの暴発が無くなりました。


  • ジェスチャが不発に終わったときにX1本来の「戻る」機能が出てしまう -- 2011-12-12 (月) 09:15:58