Opened 19 years ago
Closed 18 years ago
#145 closed bug (fixed)
The judgment of "be:confirmed" is too early.
Reported by: | Owned by: | jackburton | |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | - General | Version: | |
Keywords: | Cc: | diver | |
Blocked By: | Blocking: | ||
Platform: | All |
Description (last modified by )
src/kits/interface/BTextView/TextView.cpp
BTextView::HandleInputMethodChanged(BMessage *message)
After InsertText() is done, it is necessary to judge "be:confirmed".
Attachments (1)
Change History (16)
comment:1 by , 19 years ago
comment:2 by , 19 years ago
Summary: | The judgment of "be:confirmed" is too early. → The judgment of "be:confirmed" is too early. |
---|
comment:3 by , 19 years ago
B_INPUT_METHOD_EVENT HandleInputMethodChanged
CURRENT
- be:string="a" be:confirmed="false" InsertText("a");
- be:string="ab" be:confirmed="false" DeleteText("a"; InsertText("ab");
- be:string="abc" be:confirmed="true" return; OPINION
- be:string="a" be:confirmed="false" InsertText("a");
- be:string="ab" be:confirmed="false" DeleteText("a"; InsertText("ab");
- be:string="abc" be:confirmed="true" DeleteText("ab"; InsertText("abc")
comment:4 by , 19 years ago
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 by , 19 years ago
- be:string="a" be:confirmed="false" InsertText("a");
- be:string="ab" be:confirmed="false" DeleteText("a"; InsertText("ab");
- be:string="abc" be:confirmed="true" return;
Which IME is causing this ? With the ones we tested, the sequence is:
- be:string="a" be:confirmed="false" InsertText("a");
- be:string="ab" be:confirmed="false" DeleteText("a"; InsertText("ab");
- be:string="abc" be:confirmed="false" DeleteText("ab"; InsertText("abc");
- be:string="abc" be:confirmed="true" return;
comment:6 by , 19 years ago
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 by , 19 years ago
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 by , 19 years ago
This problem is not in canna. It becomes a problem by skkIM. (http://bebits.com/app/675)
comment:9 by , 19 years ago
Status: | new → assigned |
---|
comment:11 by , 19 years ago
Owner: | changed from | to
---|
comment:13 by , 19 years ago
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.
comment:14 by , 19 years ago
Cc: | added |
---|
comment:15 by , 18 years ago
Description: | modified (diff) |
---|---|
Platform: | → All |
Resolution: | → fixed |
Status: | assigned → closed |
Fixed by Axel in svn.
More details please.