◀ANSI版開発トップへ
  • 3430 [蟲報告/修正案]「(選択)ファイル先頭に移動」における選択範囲不具合
    • 3431 「矩形範囲選択開始」をトグル化
  • [3430] [蟲報告/修正案]「(選択)ファイル先頭に移動」における選択範囲不具合 gis_dur 2004年02月21日 17:23

    過去ログより
    ▼Azumaiyaさん(2002.05.25)
    > >>2113
    > 1. 選択しながらの「ファイル先頭に移動」を使ったとき
    > に、選択開始位置よりも、ファイル先頭行が短いと選択
    > 範囲がおかしかったのを修正。
    とありますが、どうやらバグが取りきられていなかったよう
    です。以下、バグ状況と修正案です。

    【環境】
    WinXP-Home + sakura 1.4.3.7

    【再現手順】
    hoge \n
    hogefoohogefoo | (←キャレット位置)
    などとして、矩形でない通常の選択をしながらファイル先頭
    に移動する。フリーカーソルモードはオフ。

    【期待される動作】
    [hoge \n]
    [hogefoohogefoo] が選択され Caret は先頭に移動する。

    【1.4.3.7での動作】
    hoge \n[ ]
    [hogefoohogefoo] が選択され Caret は先頭に移動する。
    後の Cut, Copy, Paste の対象に一行目のhogeは含まれず。

    【修正案】
    sakura_core/CEditView_Command.cpp
    関数 CEditView::Command_GOFILETOP
    return文の直前、1304 行目に以下の4行を追加する。

    if( bSelect ){
    /* 現在のカーソル位置によって選択範囲を変更 */
    ChangeSelectAreaByCurrentCursor( m_nCaretPosX, 0 );
    }

    # 関連した他の関数では上記の処理が行われているので、お
    # そらく単なる書き忘れですね。揚げ足取りになってしまい
    # すみません。とは言え、一通りソースを読む良い機会に
    # なりました。こんな物と日夜格闘している皆さんに敬服。
    • [3431] 「矩形範囲選択開始」をトグル化 gis_dur 2004年02月21日 17:36

      ついでに「矩形範囲選択開始」を、「開始/中止」のトグル
      動作に変えてみました。自分の癖のための改造ですが、同じ
      癖の持ち主の方はご参考までに。

      【トグル化改造案】
      sakura_core/CEditView_Command.cpp
      関数 CEditView::Command_BEGIN_BOXSELECT
      1つ目と2つ目の if block の間、4036行目付近に
      以下の if block 5行を追加する。

      if( m_bBeginBoxSelect ) { /* 矩形範囲選択中 */
      /* 現在の選択範囲を非選択状態に戻す */
      DisableSelectArea( TRUE );
      return;
      }

      # 特に利点も無さそうですが、覚えるキーが1つ減ります。
      # 人の顔と名前となると益々覚えられません。:-p

      長文駄文、ご容赦ください。
      ギス