Tíquete #42179

上書きモードのときはキャレットを太くしたい

: 2021-05-05 11:05 Última Atualização: 2021-05-05 15:28

Relator:
(Anônimo)
Dono:
(Nenhum)
Estado:
Fechado
Componente:
(Nenhum)
Marcos:
(Nenhum)
Prioridade:
5 - Medium
Gravidade:
5 - Medium
Resolução:
Fixed
Arquivo:
Nenhum

Details

テキスト比較画面で、上書きモードのときはキャレットを太くしたいという要望です。

CCrystalTextView::UpdateCaret() で、キャレットを太くしようとしている箇所がありますが、m_bOverrideCaret フラグは初期化した後どこからも更新されていないため、キャレットが細いままです。

CCrystalEditView の下にある m_bOvrMode を CCrystalTextView の下に移設して、UpdateCaret() から参照すればそれらしい動作になりました。

(全角文字の上に来たときも GetCharWidth() の処理結果は「W」の幅のまま固定のようですが)

  1. void CCrystalTextView::
  2. UpdateCaret ()
  3. {
  4. ASSERT_VALIDTEXTPOS (m_ptCursorPos);
  5. if (m_bFocused && !m_bCursorHidden &&
  6. CalculateActualOffset (m_ptCursorPos.y, m_ptCursorPos.x) >= m_nOffsetChar)
  7. {
  8. int nCaretHeight = GetLineVisible(m_ptCursorPos.y) ? GetLineHeight () : 0;
  9. // ↓ このフラグはずっと false のまま。
  10. if (m_bOverrideCaret) //UPDATE
  11. CreateSolidCaret(GetCharWidth(), nCaretHeight);
  12. else
  13. CreateSolidCaret (2, nCaretHeight);
  14. SetCaretPos (TextToClient (m_ptCursorPos));
  15. ShowCaret ();
  16. UpdateCompositionWindowPos(); /* IME */
  17. }
  18. else
  19. {
  20. HideCaret ();
  21. }
  22. OnUpdateCaret();
  23. }
  1. void CCrystalEditView::
  2. OnEditSwitchOvrmode ()
  3. {
  4. m_bOvrMode = !m_bOvrMode;
  5. UpdateCaret(); //追加:キャレットの更新
  6. }

Ticket History (2/2 Histories)

2021-05-05 11:05 Updated by: None
  • New Ticket "上書きモードのときはキャレットを太くしたい" created
2021-05-05 15:28 Updated by: sdottaka
  • Estado Update from Aberto to Fechado
  • Resolução Update from Nenhum to Fixed
Comentário

ご連絡ありがとうございます。以下のコミットで修正しました。

https://github.com/WinMerge/winmerge/commit/746b1c3470de094ca1d2bdc51aba65c98e55c87e

Attachment File List

No attachments

Editar

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login