diff options
Diffstat (limited to 'src/guichan')
-rw-r--r-- | src/guichan/widgets/textbox.cpp | 15 | ||||
-rw-r--r-- | src/guichan/widgets/textfield.cpp | 6 |
2 files changed, 12 insertions, 9 deletions
diff --git a/src/guichan/widgets/textbox.cpp b/src/guichan/widgets/textbox.cpp index 3f1c51402..512471391 100644 --- a/src/guichan/widgets/textbox.cpp +++ b/src/guichan/widgets/textbox.cpp @@ -137,8 +137,9 @@ namespace gcn { mCaretRow = mouseEvent.getY() / getFont()->getHeight(); - if (mCaretRow >= static_cast<int>(mTextRows.size())) - mCaretRow = static_cast<int>(mTextRows.size() - 1); + const int sz = static_cast<int>(mTextRows.size()); + if (mCaretRow >= sz) + mCaretRow = sz - 1; mCaretColumn = getFont()->getStringIndexAt( mTextRows[mCaretRow], mouseEvent.getX()); @@ -210,8 +211,9 @@ namespace gcn { mCaretRow = row; - if (mCaretRow >= static_cast<int>(mTextRows.size())) - mCaretRow = static_cast<int>(mTextRows.size() - 1); + const int sz = static_cast<int>(mTextRows.size()); + if (mCaretRow >= sz) + mCaretRow = sz - 1; if (mCaretRow < 0) mCaretRow = 0; @@ -228,8 +230,9 @@ namespace gcn { mCaretColumn = column; - if (mCaretColumn > static_cast<int>(mTextRows[mCaretRow].size())) - mCaretColumn = static_cast<int>(mTextRows[mCaretRow].size()); + const int sz = static_cast<int>(mTextRows[mCaretRow].size()); + if (mCaretColumn > sz) + mCaretColumn = sz; if (mCaretColumn < 0) mCaretColumn = 0; diff --git a/src/guichan/widgets/textfield.cpp b/src/guichan/widgets/textfield.cpp index e5ecc172b..f0d464995 100644 --- a/src/guichan/widgets/textfield.cpp +++ b/src/guichan/widgets/textfield.cpp @@ -89,9 +89,9 @@ namespace gcn void TextField::setText(const std::string& text) { - if (text.size() < mCaretPosition) - mCaretPosition = static_cast<int>(text.size()); - + const size_t sz = text.size(); + if (sz < mCaretPosition) + mCaretPosition = sz; mText = text; } |