| |
ご対応ありがとうございます。
V2.12β4を試したところ、フィルタが解除される問題は解消されました。
タブのフォーカスが移動してしまう問題もほぼ解消したのですが、前回のコメントで報告できていなかった、別の条件でまだ発生します。(また説明が長いです。すみません。)
なお、タブのフォーカスが移動してしまう問題は、前回終了時のタブを復元する際に発生します。追加で新しくタブを開く場合は問題ありません。
V2.12β4でも発生するのは、以下のような場合です。
1. スクリプトを使って、タブAから特定の文字列でフィルタした新規タブBを開き、そのタブの名称を変更する。
2. 上記のタブBがアクティブの状態で終了する。
3. スタートメニューから秀丸ファイラーClassicを開く。
4. タブAとタブBが復元されるが、タブAがアクティブで開く。
以下のスクリプトをツールバーに登録して、「C:\Program Files」フォルダで「Windows」で始まるフォルダを選択した状態でスクリプトを実行すると、「re:.*Windows」というフィルタを適用した新規タブが「[Windows]」というタブ名で開きます。このタブをアクティブにして終了してから、再度秀丸ファイラーClassicを開くと、「[Windows]」タブではなく、「C:\Program Files」タブがアクティブで開きます。
var PATTERN = '(Windows).+';
var dll = loadDll("HmFilerClassicJre.dll");
var obj = dll.dllFuncStr;
var iItem = getNextItem(-1, 2);
if (iItem < 0) {
message("選択ファイルがありません");
} else {
var fileName = getItemText(iItem);
var str = obj.ReplaceRegular( PATTERN, fileName, 0, "\\1" );
if (PATTERN == null || PATTERN == "") endMacro();
if (str) {
Command("新しいタブ");
open("re:.*" + str);
var num = getCurrentTab();
setTabName("[" + str + "]", num);
// Command("タブをロック");
} else {
message("正規表現にマッチしませんでした");
}
}
ちなみに、「C:\Program Files」タブと「[Windows]」タブの間に別のタブを開いたりしても、「C:\Program Files」タブがアクティブになるので、スクリプトで作成したタブの元のタブがアクティブになるような動作に見えます。
※「C:\Program Files」、「C:\」、「[Windows]」で「[Windows]」をアクティブで終了しても、「C:\Program Files」がアクティブになる。
以上、お手数ですがご確認よろしくお願いします。
|
|