Opened 13 years ago

Closed 12 years ago

#145 closed bug (fixed)

The judgment of "be:confirmed" is too early.

Reported by: bxi07354@… Owned by: jackburton
Priority: normal Milestone: R1
Component: - General Version:
Keywords: Cc: diver
Blocked By: Blocking:
Has a Patch: no Platform: All

Description (last modified by jackburton)

src/kits/interface/BTextView/TextView.cpp

BTextView::HandleInputMethodChanged(BMessage *message)

After InsertText() is done, it is necessary to judge "be:confirmed".

Attachments (1)

TextView.cpp.patch (1.4 KB) - added by bxi07354@… 13 years ago.
TextView.cpp

Download all attachments as: .zip

Change History (16)

comment:1 Changed 13 years ago by jackburton

More details please.

comment:2 Changed 13 years ago by jackburton

Summary: The judgment of "be:confirmed" is too early. The judgment of "be:confirmed" is too early.

comment:3 Changed 13 years ago by bxi07354@…

B_INPUT_METHOD_EVENT HandleInputMethodChanged


CURRENT

  1. be:string="a" be:confirmed="false" InsertText("a");
  2. be:string="ab" be:confirmed="false" DeleteText("a"; InsertText("ab");
  3. be:string="abc" be:confirmed="true" return; OPINION
  4. be:string="a" be:confirmed="false" InsertText("a");
  5. be:string="ab" be:confirmed="false" DeleteText("a"; InsertText("ab");
  6. be:string="abc" be:confirmed="true" DeleteText("ab"; InsertText("abc")

comment:4 Changed 13 years ago by jackburton

Sorry, I meant: Why do you think we should change how it's done ? Does this cause any problem at all? IIRC me and Andrew (Bachmann) came to the current solution after careful testing with a couple input add-ons.

comment:5 Changed 13 years ago by jackburton

  1. be:string="a" be:confirmed="false" InsertText("a");
  2. be:string="ab" be:confirmed="false" DeleteText("a"; InsertText("ab");
  3. be:string="abc" be:confirmed="true" return;

Which IME is causing this ? With the ones we tested, the sequence is:

  1. be:string="a" be:confirmed="false" InsertText("a");
  2. be:string="ab" be:confirmed="false" DeleteText("a"; InsertText("ab");
  3. be:string="abc" be:confirmed="false" DeleteText("ab"; InsertText("abc");
  4. be:string="abc" be:confirmed="true" return;

comment:6 Changed 13 years ago by bxi07354@…

Sorry. I cannot explain in English. example1. be:string="a" be:confirmed="false" InsertText("a"); 2. be:string="bc" be:confirmed="false" DeleteText("a"); InsertText("bc"); 3. be:string="edf" be:confirmed="false" DeleteText("bc"); InsertText("def"); 4. be:string="" be:confirmed="true" DeleteText("def");be:confirmed="true" shows present be:string. It is not previous one be:string. bool confirmed = false; if (message->FindBool("be:confirmed", &confirmed) == B_OK && confirmed) { fInline->SetActive(false); Refresh(0, fInline->Offset() + fInline->Length(), true, false); return; }It is moved to the 4470th line.

comment:7 Changed 13 years ago by jackburton

What I'm trying to explain is that this implementation works fine in BeOS R5, tested with the R5 IME and with another IME which I can't remember. If isn't working correctly in Haiku, maybe it's an issue of our input server or the IME which you're testing with (I suppose it's Canna).

comment:8 Changed 13 years ago by bxi07354@…

This problem is not in canna. It becomes a problem by skkIM. (http://bebits.com/app/675)

comment:9 Changed 13 years ago by jackburton

Status: newassigned

comment:10 Changed 13 years ago by jackburton

I'll try to have a look.

comment:11 Changed 13 years ago by jackburton

Owner: changed from bpmagic@… to jackburton

comment:12 Changed 13 years ago by korli

Could you provide a patch ("diff -u") ? :)

comment:13 Changed 13 years ago by jackburton

Jerome, please don't apply any patch yet. As you can see in the svn history, in rev 9761 we were handling the confirmation later, but we changed it in rev 9759 because of problems with some IME.

Changed 13 years ago by bxi07354@…

Attachment: TextView.cpp.patch added

TextView.cpp

comment:14 Changed 13 years ago by diver

Cc: diver added

comment:15 Changed 12 years ago by jackburton

Description: modified (diff)
Platform: All
Resolution: fixed
Status: assignedclosed

Fixed by Axel in svn.

Note: See TracTickets for help on using tickets.