sakura-editor / sakura

SAKURA Editor (Japanese text editor for MS Windows)
https://sakura-editor.github.io/
Other
1.23k stars 162 forks source link

「検索マークの切り替え」をすると検索ダイアログの検索設定が変わってしまう #1683

Open suconbu opened 3 years ago

suconbu commented 3 years ago

問題内容

題名のとおりの現象です。 例として「単語単位で検索」のチェックボックスが解除されてしまう様子を動画にしました。 search_condition

普段使っている中で少し煩雑さを感じる部分です。

いちユーザーの感覚からすると「検索ダイアログ」と「検索マークの切り替え」とは直接つながりのない機能に見えるので、検索設定は維持されるのが自然なのではと思いました。

※ヘルプにはオフになることが明記されていますので仕様通りの動作ではあります。 https://sakura-editor.github.io/help/HLP000136.html

再現手順

  1. 検索ダイアログを開き、「単語単位で検索」または「正規表現」にチェックを入れて検索を行う。
  2. メニューから「検索」→「検索マークの切り替え」を実行する。
  3. 検索ダイアログを開くと「単語単位で検索」または「正規表現」のチェックが解除されている。 ★発生

再現頻度

100%

問題のカテゴリ

環境情報

スクリーンショット

berryzplus commented 3 years ago

検索機能は共有メモリ(≒グローバル変数)を経由して実現されているので、 現状では「仕様なのでしゃあないっす」が一時回答になると思います。

「その仕様、おかしくね?」という意見はあってしかるべきですが、 たぶん「おかしくね?」を言うには代案を提示する責任がある気がするのでどうでしょう?です。

suconbu commented 3 years ago

「その仕様、おかしくね?」という意見はあってしかるべきですが、 たぶん「おかしくね?」を言うには代案を提示する責任がある気がするのでどうでしょう?です。

問題内容の下の方にちょっと書きましたが、「検索マークの切り替えをした後でも検索ダイアログの設定は以前のものが維持される」が使いやすいのではと思いました。

suconbu commented 3 years ago

共有メモリ上の検索設定を直接書き換えているのではなく、一旦 CViewCommander のメンバーとしてコピー後、書き換えをしているようでした。 これなら共有メモリ側の検索設定は変わらないはずですが……

https://github.com/sakura-editor/sakura/blob/5135813a52b3339eb94462c66dab6407ac666a9c/sakura_core/cmd/CViewCommander_Search.cpp#L1520-L1524

その直後で共有メモリの側へ書き戻しがされていました。

https://github.com/sakura-editor/sakura/blob/5135813a52b3339eb94462c66dab6407ac666a9c/sakura_core/cmd/CViewCommander_Search.cpp#L1523-L1530

お試しで 1529 行目をコメントアウトすると自分の期待する動作にはなったのですが、 意図的にされているように見えるので、もしかすると書き戻しをしなければいけない理由が何かあるのかもしれないですね。