From f0cd9e9d8724d11f41a6497eca8ca4156e2e139d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 25 Oct 2006 12:25:41 +0000 Subject: [PATCH] Canceling an input method now removes the complete inline from the text. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19118 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/TextView.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/kits/interface/TextView.cpp b/src/kits/interface/TextView.cpp index 1a728430ca..2a66dcca2b 100644 --- a/src/kits/interface/TextView.cpp +++ b/src/kits/interface/TextView.cpp @@ -4438,14 +4438,21 @@ BTextView::CancelInputMethod() { if (!fInline) return; - + BMessage message(B_INPUT_METHOD_EVENT); message.AddInt32("be:opcode", B_INPUT_METHOD_STOPPED); fInline->Method()->SendMessage(&message); - + + // Delete the previously inserted text (if any) + if (fInline->IsActive()) { + int32 oldOffset = fInline->Offset(); + DeleteText(oldOffset, oldOffset + fInline->Length()); + fClickOffset = fSelStart = fSelEnd = oldOffset; + } + delete fInline; fInline = NULL; - + if (Window()) Refresh(0, fText->Length(), true, false); }