KeyConfig.jsで右クリックにmenuを登録した時、セーブ画面やロード画面を右クリックで閉じられるようにする
タイトルの長さが圧を生み出す! そんな感じの話です。
ティラノはデフォルトだと、data>systemフォルダ内のkeyConfig.jsで、右クリックはhidemessageが登録されています。
hidemessageはkag.key_mouse.js内でkeyconfig設定の影響を受けない+hidemessageタグに加えてメニューが開かれてる時にはメニューを閉じる処理が入っています(正確にはメニューを閉じるボタンを押す処理)。そのためメニューと同じようにセーブ画面やロード画面でも、右クリックで閉じられるわけですね。
ただこの時、右クリックにmenuを登録したりすると、セーブやロードを右クリックで閉じられなくなります。というのもmenuはkag.key_mouse.js内では、keyconfig設定の影響を受けるからです。
このrole内で処理されるのがsaveやloadやmenuやbacklogなので、enable_keyconfigがfalseの時、つまりstop_keyconfig状態の時には、ここで処理が終わり、役割の処理までいかないわけですね。roleはbuttonのroleと似たような感じです。
じゃあ右クリックで閉じるにはどうするか、というと、hidemessageと似たようなことをやってしまいます。
//★メニューが非表示でなければメニューを閉じる
if($(".layer_menu").css("display") != "none") {
$(".menu_close").click();
return false;
}
//★追加ここまで
//キーコンフィグが有効化否か
if(that.kag.stat.enable_keyconfig==false){
return false;
}
キーコンフィグ判定がされる前に、メニューが表示されていたら閉じる処理をぶっこみます。こうすると、セーブ画面やロード画面を開いている時に、右クリックで閉じるようになります。問答無用です。
問題としてはこれ、「メニューの閉じるボタン」を押しているので、メニュー経由でセーブやロード画面を開くと、消去がフェードじゃなく即消去になる点ですね。これはkag.menu.jsをいじらないとちょっと解消できません。ただまあセーブやロードを単独で呼び出す場合には、これでいけるんじゃないかなと思います。