[ 新規に投稿する ]

フィルタの状態の復元に関する問題No.11758
てれぱんだ さん 25/12/26 12:58 [ コメントを投稿する ]
  こんにちは

起動時に前回開いていたタブを復元する際に、フィルタの状態も復元される対応をしていただきありがとうございます。

Ver2.12β2で確認したところ、以下のような問題が発生しました。
1. フィルタが適用されているタブ(例:「C:\」を「Program」でフィルタ)を開いている状態で秀丸ファイラーを終了する。
2. フィルタが適用されているタブとは別のフォルダ/ディレクトリ(例:「D:\」)を秀丸ファイラーで開く。
3. 起動した秀丸ファイラーは(復元されたタブに加えて)「D:\」が開かれたタブがアクティブになっているが、Programでフィルタされている状態になる。

タブの復元自体は問題ないのですが、新規に追加されたタブが直前にアクティブだったタブのフィルタを引き継いでしまうようです。終了前にアクティブだったタブにフィルタが適用されていない場合は問題ありません。

ご確認よろしくお願いします。
Windows 11 Home 24H2
[ ]
RE:11758 フィルタの状態の復元に関する問題No.11759
秀丸担当 さん 25/12/26 17:01 [ コメントを投稿する ]
  バグ情報ありがとうございます。
そうなってしまうのはたしかにおかしかったです。
調べて対策致します。
[ ]
RE:11759 フィルタの状態の復元に関する問題No.11763
てれぱんだ さん 26/01/09 10:21 [ コメントを投稿する ]
  こんにちは
ご対応ありがとうございます。

Ver2.12β3で確認したところ、終了前にアクティブだったタブのフィルタが新規タブに引き継がれてしまう問題は解消されたのですが、今度はフィルタしていたタブのフィルタまで解除されてしまいました。

1. フィルタが適用されているタブ(例:「C:\」を「Program」でフィルタ)を開いている状態で秀丸ファイラーを終了する。
2. フィルタが適用されているタブとは別のフォルダ/ディレクトリ(例:「D:\」)を秀丸ファイラーで開く。
3. 起動した秀丸ファイラーは(復元されたタブに加えて)「D:\」が開かれたタブがアクティブになっている(問題なし)が、1の「Program」でフィルタされていたタブのフィルタが解除されている。


また、タブを追加せずに前回終了時のまま開いた場合は問題なくフィルタが保持されるのですが、今度はタブのフォーカスが移動する現象が起きました。
必ず発生するわけではなく、再現条件を突き止め切れていないかもなのですが、およそ以下のような感じです(説明が長くてすみません)。
・ロックされているタブがアクティブな状態で終了すると、次回起動時にそのタブより左側のタブのうち、ロックされていないタブの最も右側にあるタブがアクティブ状態で開く(タブの復元自体はされる)。
例)Aロックなし、Bロックなし、Cロックあり、Dロックなし、Eロックありで、Cのタブをアクティブにして閉じた場合、Bのタブがアクティブになる。
・ドライブの直下でフィルタ&ロックありで閉じた場合は、問題なくロックされているタブがアクティブで開く。
例)Cドライブを「Program」でフィルタ&ロックして閉じた場合は問題なくそのタブがアクティブで開くが、C:\Program Filesを「Git」でフィルタ&ロックして閉じた場合は、その左側にあるロックしてないタブの最も右側のタブがアクティブで開く。
※設定の初期タブは「最後のタブと分割を復元」を選択して、復元の詳細は何も設定していません。


以上お手数ですがご確認よろしくお願いします。
Windows 11 Home 24H2
[ ]
RE:11763 フィルタの状態の復元に関する問題No.11764
秀丸担当 さん 26/01/09 11:26 [ コメントを投稿する ]
  ご確認とバグ情報ありがとうございます。
情報いただき助かりました。
また調べて修正します。
[ ]
RE:11763 フィルタの状態の復元に関する問題No.11765
秀丸担当 さん 26/01/15 16:09 [ コメントを投稿する ]
  V2.12β4でフィルタの件を修正してみています。

タブのフォーカス(アクティブなタブ)については、ロックと条件が同じかわからないですが、もともとそれに近い動作がありました。
復元されるタブの中に、起動する予定のフォルダがあれば、そのタブがアクティブになります。
復元されるタブの中に、起動する予定のフォルダが無ければ、新しくタブができます。
このことでないとしたら、いまのところ不明です。
[ ]
(発言者削除)No.11766
てれぱんだ さん 26/01/16 11:46
 
[ ]
RE:11765 フィルタの状態の復元に関する問題No.11767
てれぱんだ さん 26/01/16 13:16 [ コメントを投稿する ]
  ご対応ありがとうございます。

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」がアクティブになる。

以上、お手数ですがご確認よろしくお願いします。
[ ]
RE:11767 フィルタの状態の復元に関する問題No.11768
秀丸担当 さん 26/01/16 16:02 [ コメントを投稿する ]
  詳しい情報ありがとうございます。
状況がわかりました。
最後に覚えているタブは位置ではなく、フォルダの場所だけなので、C:\Program Filesが選ばれるということでした。
これは今までも同じことでしたが、フィルタも覚えるようになったことで、直感とは違い違和感が出やすいうことでした。
いまのところはそういう仕様ということになってしまいますが、位置で覚えたりできてもいいと思います。
ご意見参考にさせていただきます。
[ ]
RE:11768 フィルタの状態の復元に関する問題No.11769
てれぱんだ さん 26/01/16 18:03 [ コメントを投稿する ]
  >最後に覚えているタブは位置ではなく、フォルダの場所だけ
なるほど!仕様が理解できました。

試しに単純に同じフォルダを2つ開いてみたら、再起動時は左側がアクティブになりました。そもそもフィルタなどを利用しなければ、同一のフォルダを複数開くというケースがなさそうですものね。

>ご意見参考にさせていただきます。
ありがとうございます。
[ ]
(発言者削除)No.11770
てれぱんだ さん 26/01/18 13:58
 
[ ]
RE:11765 フィルタの状態の復元に関する問題No.11771
てれぱんだ さん 26/01/18 14:27 [ コメントを投稿する ]
  こんにちは

フィルタが解除されてしまう問題について、V2.12β4で以下のような不具合を発見しました。

新規タブにフィルタを設定した場合、秀丸ファイラーの再起動後に、復元されたタブのフィルタから先頭一文字が削除されてしまいます。

再現例
1. 「C:\Program Files」フォルダを新規タブで開き、フィルタに「Windows」という文字列をセットする。
2. 秀丸ファイラーを閉じる。
3. 秀丸ファイラーを起動すると、復元されたタブのうち、フィルタをセットしているタブのフィルタが「indows」になる。

不思議なのは、「indows」を手動で「Windows」に変更すると、その後に再起動してもフィルタが維持されます。一度でも復元されたタブでは問題が起きないようです。前回起動時以降に新たに作成したタブでフィルタをセットすると、その後の起動時の復元でフィルタの先頭1文字が消えてしまうようです。

以上ご確認よろしくお願いします。
[ ]
RE:11771 フィルタの状態の復元に関する問題No.11772
秀丸担当 さん 26/01/19 10:13 [ コメントを投稿する ]
  バグ情報ありがとうございます。
こちらでも同じようにして再現させることができました。
また修正いたします。
[ ]
RE:11772 フィルタの状態の復元に関する問題No.11773
てれぱんだ さん 26/01/24 23:19 [ コメントを投稿する ]
  こんにちは
Ver2.12β5でフィルタが適切に復元されるようになりました。
ご対応ありがとうございました。
[ ]

[ 新規に投稿する ]