過去ログより
▼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 );
}
# 関連した他の関数では上記の処理が行われているので、お
# そらく単なる書き忘れですね。揚げ足取りになってしまい
# すみません。とは言え、一通りソースを読む良い機会に
# なりました。こんな物と日夜格闘している皆さんに敬服。