◀ANSI版開発トップへ
  • 3559 [報告]キャレットが浮いた状態でCtrl+Delete
    • 3560 Re: [報告]キャレットが浮いた状態でCtrl+Delete
      • 3561 Re2: [報告]キャレットが浮いた状態でCtrl+Delete
  • [3559] [報告]キャレットが浮いた状態でCtrl+Delete FILE 2004年05月02日 13:33

     こんにちは。
     下記の現象が発生しましたので、ご報告いたします。

    現象/再現手順:
     0.サクラエディタ起動(無題)
     1.F4, Enter, ↑, Tab, Ctrl+Tab, Delete, Shift+Ctrl+Tab
       この時点でキャレット(文字カーソル)が浮いた状態に。
       (ビュー毎に位置を覚えているから?)
     2.ここで、Ctrl+Delete(単語の右端まで削除)すると、[EOF]が
       2つになる。 再描画(F5)すると、下の[EOF]は消える。
     3.半角の"・"(0x0d)が残っているが、BackSpaceやDeleteでは
       削除できない。ただし、選択すれば削除可能。

    試したバージョン:
     WinMe 1.4.6.0

    以上、ご確認よろしくお願いいたします。
    • [3560] Re: [報告]キャレットが浮いた状態でCtrl+Delete げんた 2004年05月02日 19:56

      CEditView::GetAdjustCursorPos()でファイル末尾だけでなくX座標の調整も行わないとダメみたいですね.
      • [3561] Re2: [報告]キャレットが浮いた状態でCtrl+Delete もか 2004年05月02日 22:10

        GetAdjustCursorPosで、改行以降のX座標位置を調整していないのは、意図的な実装です。
        というのも、矩形選択中と直後やフリーカーソルモードの場合は、改行以降でも正しい座標だからです。
        そうすると、単語の右端まで削除の動作が変だということになります。
        GetAdjustCursorPosは色々な場所から間接的に呼ばれるため、この関数でX座標を考慮し、動作モードと選択の状態に依存するように修正すると、思わぬ副作用がでるかもしれません。
        例えば、置換で改行コードの真中にカーソルを移動したい場合などがあります。