最終更新: 2012-08-10T23:22+0900
Index: sakura_core/CViewCommander.cpp =================================================================== --- sakura_core/CViewCommander.cpp (リビジョン 55744) +++ sakura_core/CViewCommander.cpp (リビジョン 55745) @@ -3035,9 +3035,6 @@ // 2005.06.24 Moca m_pCommanderView->GetSelectionInfo().DisableSelectArea( bReDraw ); m_pCommanderView->GetSelectionInfo().SetSelectArea( matchLayoutRange ); - if( bReDraw ){ - m_pCommanderView->GetSelectionInfo().DrawSelectArea(); - } } /* カーソル移動 */ @@ -3046,6 +3043,15 @@ GetCaret().MoveCursor( matchLayoutRange.GetFrom(), bReDraw ); GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2(); + if( bReDraw && !keepCurrentSelection ){ + // keepCurrentSelectionのときは不要っぽい。 + // ステータスバーに表示される選択領域のサイズが + // (たぶんカーソル移動によって)消去されないように + // 後ろの方に移動してきた。 + /* 選択領域描画 */ + m_pCommanderView->GetSelectionInfo().DrawSelectArea(); + } + /* メッセージ */ if( PointCompare( originalSearchPos, searchPos ) < 0 ) { m_pCommanderView->SendStatusMessage(_T("▲末尾から再検索しました")); @@ -3218,10 +3224,6 @@ } else { // マッチ範囲で選択範囲を置き換える。 sel.DisableSelectArea( bRedraw ); sel.SetSelectArea( matchLayoutRange ); - if( bRedraw ){ - /* 選択領域描画 */ - sel.DrawSelectArea(); - } } /* カーソル移動 */ @@ -3230,6 +3232,15 @@ GetCaret().MoveCursor( matchLayoutRange.GetFrom(), bRedraw ); GetCaret().m_nCaretPosX_Prev = GetCaret().GetCaretLayoutPos().GetX2(); + if( bRedraw && !keepCurrentSelection ){ + // keepCurrentSelectionのときは不要っぽい。 + // ステータスバーに表示される選択領域のサイズが + // (たぶんカーソル移動によって)消去されないように + // 後ろの方に移動してきた。 + /* 選択領域描画 */ + sel.DrawSelectArea(); + } + /* メッセージ */ if( PointCompare( originalSearchPos, searchPos ) > 0 ) { m_pCommanderView->SendStatusMessage(_T("▼先頭から再検索しました"));