+ else if (pt.y < GetBuffer().GetTopMargin() && (pt.y + newSz.y) > GetBuffer().GetTopMargin())
+ {
+ newSz.y -= (GetBuffer().GetTopMargin() - pt.y);
+ if (newSz.y > 0)
+ {
+ pt.y = GetBuffer().GetTopMargin();
+ GetCaret()->SetSize(newSz);
+ }
+ }
+ else if (pt.y < (GetClientSize().y - GetBuffer().GetBottomMargin()) && (pt.y + newSz.y) > (GetClientSize().y - GetBuffer().GetBottomMargin()))
+ {
+ newSz.y = GetClientSize().y - GetBuffer().GetBottomMargin() - pt.y;
+ GetCaret()->SetSize(newSz);
+ }