diff options
author | obo <obo@openoffice.org> | 2010-06-22 06:15:26 +0200 |
---|---|---|
committer | obo <obo@openoffice.org> | 2010-06-22 06:15:26 +0200 |
commit | 8566201473c9042e3d3dc919f854b305ab154261 (patch) | |
tree | 65b6005fbf44c176971e3fe56071542d64ef8b90 /vcl/unx/gtk/window/gtkframe.cxx | |
parent | 07eb3cf45ca8f9e930778fdc1bebcaf00416f9db (diff) | |
parent | 32da6d9b41f3b814b75bade6a6fec83014267876 (diff) |
CWS-TOOLING: integrate CWS sw33bf05
Diffstat (limited to 'vcl/unx/gtk/window/gtkframe.cxx')
-rw-r--r-- | vcl/unx/gtk/window/gtkframe.cxx | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx index a75d0b5e23..800a27422e 100644 --- a/vcl/unx/gtk/window/gtkframe.cxx +++ b/vcl/unx/gtk/window/gtkframe.cxx @@ -3757,8 +3757,21 @@ gboolean GtkSalFrame::IMHandler::signalIMDeleteSurrounding( GtkIMContext*, gint if (xText.is()) { sal_uInt32 nPosition = xText->getCaretPosition(); - xText->deleteText(nPosition + offset, nPosition + offset + nchars); - return TRUE; + // --> OD 2010-06-04 #i111768# - apply patch from kstribley: + // range checking +// xText->deleteText(nPosition + offset, nPosition + offset + nchars); + sal_Int32 nDeletePos = nPosition + offset; + sal_Int32 nDeleteEnd = nDeletePos + nchars; + if (nDeletePos < 0) + nDeletePos = 0; + if (nDeleteEnd < 0) + nDeleteEnd = 0; + if (nDeleteEnd > xText->getCharacterCount()) + nDeleteEnd = xText->getCharacterCount(); + + xText->deleteText(nDeletePos, nDeleteEnd); + // <-- + return TRUE; } return FALSE; |