Closed Bug 162666 Opened 23 years ago Closed 22 years ago

additional IME work / cleanup for widget/src/cocoa

Categories

(Camino Graveyard :: HTML Form Controls, defect)

PowerPC
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Camino0.8

People

(Reporter: Brade, Assigned: mikepinkerton)

Details

Attachments

(6 obsolete files)

Some or all of the additional IME work will be covered in this bug. * Cleanup the calls to [self convert: theEvent ...] * Cleanup and simplification of keyDown * make IME more closely match Cocoa behaviors * candidate window shows in left top corner of screen * korean ime does not work correctly in "character" mode * mouse click other place before the ime text may cause problem * mouse operation within IME does not work (neither carbon or window) * ime reconversion (japanese ime control+1) is not implemented yet. * remove the #ifdefs for DEBUG_IME
Status: NEW → ASSIGNED
Summary: additional IME work / cleanup → additional IME work / cleanup for widget/src/cocoa
Target Milestone: --- → Chimera0.6
reviews?
-static void convertAttributeToGeckoRange(NSAttributedString *aString, PRUint32 inCount, nsTextRange* aRanges) +static void convertAttributeToGeckoRange(NSAttributedString *aString, PRUint32 inCount, nsTextRange* aRanges, NSRange markRange) i'd prefer that |aRanges| be last if it's the resulting "out" param of the function. - case 2: return NS_TEXTRANGE_SELECTEDCONVERTEDTEXT; why did this go away? r=pink.
>- case 2: return NS_TEXTRANGE_SELECTEDCONVERTEDTEXT; > >why did this go away? That was changed as part of the "hack removal"; it gets set later based on the markRange (in convertAttributeToGeckoRange).
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
reopen bug for remaining issues
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Attached patch more fix (obsolete) — Splinter Review
@@ -171,7 +171,7 @@ simple fix. @@ -209,18 +209,6 @@ 1.effectiveRange.length is the length of each segment and be always smaller than markRange.length. This part is not necessary. 2.Using NS_TEXTRANGE_RAWINPUT and NS_TEXTRANGE_SELECTEDRAWTEXT cause some bug of IME. @@ -2963,8 +2951,9 @@ IME can handle over 300 character at a time. MAX_BUFFER_SIZE 32 is too small. I changed it to increase automatically.
Comment on attachment 133335 [details] [diff] [review] more fix I have concerns about performance with the last two chunks of this patch. It seems better to not allocate if we don't need to rather than always allocating. I might argue that MAX_BUFFER_SIZE should be bigger than 32 rather than always calling new. Can we get a patch that is tested with only the first two chunks of this patch? Thanks!
Attached patch I agree with you. (obsolete) — Splinter Review
Max character number that IME can handle: Kotoeri (default IME of MacOS X) = 100 EGBridge (IME from elgosoft.corp) = about 300 I think MAX_BUFFER_SIZE = 512 will be safe.
Attached patch latest patch. (obsolete) — Splinter Review
"new PRUnichar[len + 1]" and "buffer" are in the wrong order.
Attachment #133335 - Attachment is obsolete: true
Attachment #133403 - Attachment is obsolete: true
Comment on attachment 136043 [details] [diff] [review] when we cancel inputting with IME, we need to send an end composition event. for the ending segment in this patch, should this piece also be changed if len == 0? if (!mInComposition) { [self sendCompositionEvent:NS_COMPOSITION_START]; mInComposition = YES; }
I edit the ending segment in this patch reffering to - (void)insertText. In this part, NS_COMPOSITION_START and NS_COMPOSITION_END are used in pairs.
I understand that you only added the ending piece. However, I'm wondering if we should be calling NS_COMPOSITION_START and NS_COMPOSITION_END at all if len==0. Should the block you didn't change be changed to: if (!mInComposition && len > 0) { [self sendCompositionEvent:NS_COMPOSITION_START]; mInComposition = YES; } Or maybe this is a non-issue if mInComposition would already be set to YES from a previous keystroke if len == 0?
comment #12 It's better than my cheap way. When I test camino that include your way, it run finely.
I take back comment #13. If we start inputting with IME already and delete all markedtext, mInComposition keep "Yes" until we call -insertText and turn mIncomposition "No". I think that line for judgement len == 0 or not and sending "NS_COMPOSITION_END" and turning mInComposition into "No" should be written in -setMarkedText.
Attachment #136043 - Attachment is obsolete: true
this latest patch does nothing to fix 181198, just fwiw. what does it fix? how can i verify it's working?
This latest patch has no relation with bug181198. The following things are corrected with this patch. And this patch is working in my test build. -- Long word is truncated on conversion or crash. The 3rd and the 4th block in a patch correspond. see bug 90910. -- Improvement in the user experience in a Japanese input. Blocks other than the above.
Target Milestone: Chimera0.6 → Camino0.8
taking so we can get this landed.
Assignee: brade → pinkerton
Status: REOPENED → NEW
how do i test this? is the last patch (attachment 136659 [details] [diff] [review]) the only one i need to land? once it's landed, what about the other things covered in comment 0 of this bug?
fwiw, this patch fixes our "go back in the middle of ime on backspace" bug.
never mind the last part, i'm on crack. i was testing it incorrectly. my original comment on how to test this remains.
Attachment #100741 - Attachment is obsolete: true
Comment on attachment 136659 [details] [diff] [review] call unmarktext in -setMarkedText. landed this patch. what else needs to be done for this bug?
Attachment #136659 - Attachment is obsolete: true
Because i do not understand whether it is related to this bug, there is a bug which is reported separately.(bug 232406) When creating attachment 136659 [details] [diff] [review], it tried to fix of bug 232406. But that was not possible... Depending upon attachment 136659 [details] [diff] [review], Japanese input it becomes good in comparison with until now. As for remainder, when editing the HIRAGANA which is input temporarily, the caret just is displayed in accurately. The Japanese input of Camino will become equivalent to Mozilla/Mozilla Firebird, when the problem of this caret fixes :-)
well, since 232406 is already filed, i'm going to close this bug out. if anyone thinks we should reopen it, please feel free to do so.
f
Status: NEW → RESOLVED
Closed: 23 years ago22 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: