◀Unicode版開発トップへ
  • 1243 Commit報告(Keep) 検索・置換画面での冗長なキャレット消失対策を処分
  • [1243] Commit報告(Keep) 検索・置換画面での冗長なキャレット消失対策を処分 ryoji 2010年06月12日 15:55

    リビジョン:
     rev1770

    変更種別:
     保守

    内容:
    Keep: 検索・置換画面での冗長なキャレット消失対策を処分

    以前は、コンボボックス上でEnterキーを押して下検索するとコンボボックスからキャレットが消えてしまっていて、その対症療法として、下検索したら無理やりコンボにフォーカスを戻す処理を入れていたようです(rev207-)。
    そのため、[下検索]ボタンを押した場合でもコンボにフォーカスが戻るという、やや奇妙な動作になってしまっていました。
    とっくの昔にコンボ上のEnterキーでもキャレットが消えることはないように抜本対策されている(rev265-)のに、対症療法のほうだけまだ残っていたようなので、これを除去し、[下検索]ボタンを押した場合は[下検索]ボタンにフォーカスが残るようにしました。

    (参考)
    キャレット消失の原因だった箇所
    (ANSI 版ソース ssrc_2002-02-01.tar.bz2 解析結果)

    CFindDlg::OnBnClicked
    └→CEditView::HandleCommand
      └→CEditView::Command_SEARCH_NEXT
        └→CEditView::ChangeCurRegexp
          └→CEditView::RedrawAll
            └→CEditView::OnKillFocus
              └→::DestroyCaret

    今はRedrawAll()からDestroyCaret()に至るルートは無いのでキャレットが破棄されることはありません。