◀ANSI版開発トップへ
  • 3539 [報告]最後まで選択後、削除できない
    • 3540 RE: [報告]最後まで選択後、削除できない
      • 3541 Re2: [報告]最後まで選択後、削除できない
        • 3542 Re3: [報告]最後まで選択後、削除できない
          • 3543 Re4: [報告]最後まで選択後、削除できない
            • 3549 Re5: [報告]最後まで選択後、削除できない
            • 3557 Command_GOLINEENDの謎
          • 3544 Re4: [報告]最後まで選択後、削除できない
  • [3539] [報告]最後まで選択後、削除できない FILE 2004年04月18日 15:52

     こんにちは。
     下記の現象が発生しましたので、ご報告いたします。
     いつも報告ばかりですみません。

    現象/再現手順:
     0.サクラエディタ起動(無題)
     1.文字入力する(単数行)
     2.先頭から末尾まで選択
     3.削除(しようとしても削除できない)

    キー入力に直すと、
     Tab, Left, Shift+Ctrl+End, Delete

    試したバージョン:
     WinMe:1.4.5.1 / WinXP:1.4.5.0, 1.4.5.1

    以上、ご確認よろしくお願いいたします。
    • [3540] RE: [報告]最後まで選択後、削除できない げんた 2004年04月18日 21:34

      >キー入力に直すと、
      > Tab, Left, Shift+Ctrl+End, Delete
      む.本当だ.行末までの選択がShift+Endだと削除できるのに...
      • [3541] Re2: [報告]最後まで選択後、削除できない もか 2004年04月19日 01:24

        1.4.5.1 - 1.4.3.5 ×
        この間は、全滅のようです。それ以前は未調査。
        カーソルを行ったり来たり、いろいろやってみると、前の行が反転したり矩形選択っぽくなったりもします。
        最近の変更の影響というより、だいぶ前か元から変なのかも。

        #私、直す気無しだったりする
        • [3542] Re3: [報告]最後まで選択後、削除できない じゅうじ 2004年04月19日 05:07

          ▼ もかさん
          > #私、直す気無しだったりする

          削除まで行なわなくても、選択で問題が発生しました。

          --- コピー ~ CEditView_Command.cpp Sun Apr 11 12:29:36 2004
          +++ CEditView_Command.cpp Mon Apr 19 04:58:48 2004
          @@ -1340,8 +1340,22 @@
          /* ファイルの最後に移動 */
          void CEditView::Command_GOFILEEND( int bSelect )
          {
          + //Command_GOFILETOP() からif()ごとコピー 2004.04.19 じゅうじ
          + if( bSelect ){
          + if( !IsTextSelected() ){ /* テキストが選択されているか */
          + /* 現在のカーソル位置から選択を開始する */
          + BeginSelectArea();
          + }
          + /* 現在のカーソル位置によって選択範囲を変更 */
          + ChangeSelectAreaByCurrentCursor( m_nCaretPosX, 0 );
          + }else{
          + if( IsTextSelected() ){ /* テキストが選択されているか */
          + /* 現在の選択範囲を非選択状態に戻す */
          + DisableSelectArea( TRUE );
          // 2001.12.13 hor BOX選択中にファイルの最後にジャンプすると[EOF]の行が反転したままになるの修正
          - if( !bSelect && IsTextSelected() ) DisableSelectArea( TRUE ); // 2001.12.21 hor Add
          +// if( !bSelect && IsTextSelected() ) DisableSelectArea( TRUE ); // 2001.12.21 hor Add
          + }
          + }
          AddCurrentLineToHistory();
          Cursor_UPDOWN( m_pcEditDoc->m_cLayoutMgr.GetLineCount() , bSelect );
          Command_DOWN( bSelect, TRUE );

          #このAddCurrentLineToHistory()より後ろは、私、解っていません。
          • [3543] Re4: [報告]最後まで選択後、削除できない fotomo 2004年04月19日 10:55

            僕の持ってるソースは、本家のソースからかなり修正して
            しまったので、参考になるかわかりませんが・・・・。

            void CEditView::Command_GOFILEEND( int bSelect )
            関数内で、以下のような部分があると思いますが。

            > Cursor_UPDOWN( m_pcEditDoc->m_cLayoutMgr.GetLineCount() , bSelect );
            > Command_DOWN( bSelect, TRUE );
            > if( !m_bBeginBoxSelect ) Command_GOLINEEND( bSelect, TRUE );

            3行目のCommand_GOLINEEND関数の第二引数をFALSEにすると、
            当該現象は起こらなくなるかもしれません。
            (僕のやつは、ここで直りましたが・・。)
            • [3549] Re5: [報告]最後まで選択後、削除できない FILE 2004年04月25日 14:40

              ▼ fotomoさん
              > 僕の持ってるソースは、本家のソースからかなり修正して
              > しまったので、参考になるかわかりませんが・・・・。
              >
              > void CEditView::Command_GOFILEEND( int bSelect )
              > 関数内で、以下のような部分があると思いますが。
              >
              > > Cursor_UPDOWN( m_pcEditDoc->m_cLayoutMgr.GetLineCount() , bSelect );
              > > Command_DOWN( bSelect, TRUE );
              > > if( !m_bBeginBoxSelect ) Command_GOLINEEND( bSelect, TRUE );
              >
              > 3行目のCommand_GOLINEEND関数の第二引数をFALSEにすると、
              > 当該現象は起こらなくなるかもしれません。
              > (僕のやつは、ここで直りましたが・・。)

               こんにちは。

               上記の修正で、再現しない事を確認いたしました。
               (Win95 / WinXP, 1.4.5.1)

               >>dev:3544の選択開始関連も、再現しなくなりました。

               追試、ご対応してくださった皆様、ありがとうございました。
            • [3557] Command_GOLINEENDの謎 げんた 2004年05月01日 15:36

              >void CEditView::Command_GOFILEEND( int bSelect )
              >3行目のCommand_GOLINEEND関数の第二引数をFALSEにすると、
              >当該現象は起こらなくなるかもしれません。
              Cursor_UPDOWNで移動量が0でかつその行が改行で終わっていない場合に選択がうまく初期化されないのがまず原因の1つ.Command_GOLINEENDの第2引数がTRUEだと上の選択が初期化されないケースで選択範囲がおかしくなる.

              しかしながら,Cursor_UPDOWNで選択を初期化しないケース及びCommand_GOLINEENDの引数は何か意図があってこうなっているように見えます.背景に何があったか想像できる方いらっしゃいますか.
          • [3544] Re4: [報告]最後まで選択後、削除できない じゅうじ 2004年04月19日 22:20

            ▼補足(自分に応援)

            2行入力して、最初1行目にカーソルを持って行って、
            Ctrl+Shift+End と入力し、次に2行目にカーソルを持って行って、
            Ctrl+Shift+End と入力すると、最初のカーソル位置から
            選択開始します。
            ===================
            aaaaIbbbbbb
            bbbIccccc[EOF]
            ===================
            (カーソルは、キャレットを表します)