◀一般トップへ
  • 7825 カーソル移動のバグ?
    • 7826 Re:カーソル移動のバグ?
      • 7827 Re2:カーソル移動のバグ?
        • 7828 Re3:カーソル移動のバグ?
          • 7829 Re4:カーソル移動のバグ?
            • 7830 Re5:カーソル移動のバグ?
  • [7825] カーソル移動のバグ? sawada 2014年05月08日 09:23

    サクラエディタ起動後、
    "1" "Enter" "2" "Enter" "333" "Enter"
    と入力後 "←" を押したままにしてオートリピートすると
    カーソルが 1 の後ろ(右側)で止まる。
    (1 の前に行かない)
    一度 "←" を放してもう一度 "←" を押すと
    1 の前(左側)に移動する。

    Ver2.1.1.2 unicode
    Win7 pro 32bit
    • [7826] Re:カーソル移動のバグ? LR4 2014年05月08日 13:03

      ↓また当て推量ですが…

      --- sakura_core/cmd/CViewCommander_Cursor.cpp (リビジョン 3706)
      +++ sakura_core/cmd/CViewCommander_Cursor.cpp (作業コピー)
      @@ -205,6 +205,10 @@
      ptPos.x += it.getColumn() - it.getColumnDelta();
      ptPos.y --;
      } else {
      + if( 0 < nRepCount ){
      + GetCaret().MoveCursor( ptCaretMove, true, _CARETMARGINRATE, bUnderlineDoNotOFF );
      + GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2();
      + }
      nRes = 0;
      break; // これ以上左に動けぬ。
      }
      • [7827] Re2:カーソル移動のバグ? もか 2014年05月08日 18:22

        LR4さんのコードでパッチを登録しました
        https://sourceforge.net/p/sakura-editor/patchunicode/813/
        ・左移動で左隅に移動することを確認
        ・左選択も正常に反映されることを確認
        • [7828] Re3:カーソル移動のバグ? LR4 2014年05月08日 19:35

          ▼ もかさん
          > LR4さんのコードでパッチを登録しました

          ご確認ありがとうございます。
          提示したコードとパッチではMoveCursorの第1引数に違いがあるようです。
          ptPosではなくptCaretMoveを使うほうが良いのでは?と思いました。
          ※ptPosとした場合の実害についてはよくわかりませんが。(^^;;;
          • [7829] Re4:カーソル移動のバグ? もか 2014年05月08日 23:11

            すみません、下のほうからコピペしてきたら違っていたようです。
            もっとも、ptPosもptCaretMoveも0,0を指しているはずなので、このif内では中身は同じです。
            パッチを更新しました。
            • [7830] Re5:カーソル移動のバグ? LR4 2014年05月08日 23:41

              蛇足ですが、

              > もっとも、ptPosもptCaretMoveも0,0を指しているはずなので、このif内では中身は同じです。

              矩形選択を拡張している最中だとy!=0でもif内に入るかな?なんて思いました。さらに、折り返しインデントの設定が「論理行先頭」になっていて、カーソル位置が折り返し行頭に到達した場合はx!=0でも入りそうな気がするです。
              なので、やはりptCaretMoveのほうが適切かと…