◀Unicode版開発トップへ
  • 1361 Commit報告(Fix) カーソル位置縦線の描画不正
    • 1365 Re: Commit報告(Fix) カーソル位置縦線の描画不正
      • 1366 Re2: Commit報告(Fix) カーソル位置縦線の描画不正
  • [1361] Commit報告(Fix) カーソル位置縦線の描画不正 ryoji 2010年08月16日 13:39

    リビジョン:
    rev1806

    変更種別:
    バグ修正

    内容:
    テキストと行番号の隙間が半角文字幅より大きいと隙間位置にあるカーソルの縦線が描画されてしまう
    • [1365] Re: Commit報告(Fix) カーソル位置縦線の描画不正 もか 2010年08月19日 01:23

      なるほど。確かに1文字以上右スクロールして隙間の裏にカーソルがあると縦線だけ不正作画されてました。

      この変更後は今度は隙間が0/1pxのときも画面上に線が表示されるようになり、
      左端からカーソルを移動すると線が画面に残るようになりました。
      太線の作画判定とOFFのほうの復帰処理部分の判定も変更する必要があります。

      修正用コードはあるのですが、元の私が書いたコードがあいまいな関係で仕様そのものについて意見を聞いておきたいです。

      隙間が0のとき行番号領域の上に線を引いたほうがいいのかどうかと、
      行番号領域に線を引かない場合は、
      A. 太線のときは2px引けるときだけ引き、通常線なら1px引けるときに引く
      B. 1pxでも引けるなら太線のときも1px引く
      C. 太線・通常線どちらも2px以上の隙間で引く
      または、私が思いつかなかったほかの案のどの仕様がいいのだろう。

      旧動作は隙間1pxを死守します。隙間2pxのときで太線だと左端にカーソルがあると1px幅だけ線を引いてました。
      上記B. に加えて1pxマージンがあるという物です。
      何でそういう動作にしたか記憶・記録がないです。
      おそらく行番号の縦線と接近して並ぶのがイヤだからか、単に条件式を深く考えなかったとか。

      #これとは別に隙間の太線がOnPaintのクリッピング領域に含まれないので線が残るというバグも、あわせて修正予定です。
      • [1366] Re2: Commit報告(Fix) カーソル位置縦線の描画不正 ryoji 2010年08月19日 07:28

        ▼ もかさん
        > この変更後は今度は隙間が0/1pxのときも画面上に線が表示されるようになり、
        > 左端からカーソルを移動すると線が画面に残るようになりました。
        すみません。ミスしてしまいました。orz
        描画左端判定部は従来判定に AND で新しい判定を追加するつもりでいたのに、従来判定と差し替えてしまっていました。

        > 隙間が0のとき行番号領域の上に線を引いたほうがいいのかどうかと、
        自分は普段隙間 0 以外で使っていて、このとき行頭でも線が引かれているので、隙間 0 でも引かれたほうが自然かな?、と思いますが、よくわかりません。
        (今回の修正は隙間が半角文字幅より大きい場合の描画不正だけ対策するつもりでした)