Closed Bug 278061 Opened 20 years ago Closed 20 years ago

Navi bar of ATOK does not appear

Categories

(Core :: Internationalization, defect, P2)

x86
Windows XP
defect

Tracking

()

RESOLVED FIXED
mozilla1.8beta1

People

(Reporter: masayuki, Assigned: masayuki)

Details

(Keywords: inputmethod, intl)

Attachments

(8 files, 13 obsolete files)

8.37 KB, patch
jst
: review+
Details | Diff | Splinter Review
5.76 KB, patch
roc
: review+
Details | Diff | Splinter Review
2.38 KB, patch
aaronlev
: review+
Details | Diff | Splinter Review
12.41 KB, patch
masayuki
: review+
Details | Diff | Splinter Review
7.13 KB, patch
smontagu
: review+
Details | Diff | Splinter Review
1.03 KB, patch
glazou
: review+
Details | Diff | Splinter Review
37.08 KB, patch
masayuki
: review+
bzbarsky
: superreview+
Details | Diff | Splinter Review
1.28 KB, patch
jshin1987
: review+
bzbarsky
: superreview+
Details | Diff | Splinter Review
On other applications, when we use ATOK, the navi bar appear on cursor position.
But on Mozilla does not appear the navi bar.
We need to add two functions.

1. Set composition window position.
 We don't set composition window position because we don't use composition window.
 But if we don't set composition window position, the navi bar doesn't appear.
2. Implement IMR_QUERYCHARPOSITION event on WM_IMEREQUEST.
 The navi bar is positioned to the returned cursor position by
 IMR_QUERYCHARPOSITION.
Priority: -- → P2
Target Milestone: --- → mozilla1.8beta
Status: NEW → ASSIGNED
Attached patch Patch rv1.0(editor) (obsolete) — Splinter Review
Attachment #171039 - Flags: review?(sfraser_bugs)
Attachment #171042 - Flags: review?(aaronleventhal)
Oops...
Wait to review.
I thought of more simple implementation.
Attached patch Patch rv1.1 (obsolete) — Splinter Review
I could not make more simple patch.
But I fixed some bugs of previous patch.
Attachment #171036 - Attachment is obsolete: true
Attachment #171038 - Attachment is obsolete: true
Attachment #171039 - Attachment is obsolete: true
Attachment #171040 - Attachment is obsolete: true
Attachment #171041 - Attachment is obsolete: true
Attachment #171042 - Attachment is obsolete: true
Attachment #171043 - Attachment is obsolete: true
Attached patch Patch rv1.1(editor) (obsolete) — Splinter Review
Attachment #171136 - Flags: review?(sfraser_bugs)
Attachment #171139 - Flags: review?(aaronleventhal) → review+
Attachment #171135 - Flags: review?(emaijala) → review?(timeless)
Comment on attachment 171136 [details] [diff] [review]
Patch rv1.1(editor)

> interface nsIEditorIMESupport : nsISupports
> {
...
>   void  EndComposition();
I know that this interface is using InitialCaps, but it really shouldn't.

>   [noscript] void  QueryComposition(in nsTextEventReplyPtr aReply);
If you could change the [noscript] functions to interCaps, that'd be nice :) -
note that it doesn't change anything because xpidl will make the functions
InitialCaps in the .h files.

>   void  ForceCompositionEnd();
The scriptable versions would need to be changed in concert w/ any js consumers
(hopeful there aren't many, i only see one consumer:
http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla/editor/ui/composer/content/
ComposerCommands.js&rev=1.198&mark=931-932#926
), and can be done in another bug.

would you please fix this line:
>    * GetReconvertionString()  Get the reconvertion string
to match the actual function name:
>   [noscript] void  GetReconversionString(in nsReconversionEventReplyPtr aReply);

>    * Notify for IME when the editor got focus.
it'd be nice if someone explained what this actually meant :(
I can't see why these methods are [noscript]
>   [noscript] void NotifyIMEOnFocus();
>    * Notify for IME when the editor lost focus.
>   [noscript] void NotifyIMEOnBlur();

please fix the spelling/function:
>+   * GetQueryCharPositioin()  Get the query char position
>+  [noscript] void  GetQueryCaretRect(in nsQueryCaretRectEventReplyPtr aReply);

i'm not at all fond of the this function name or the style you're using for it,
but oh well :(

>Index: editor/libeditor/base/nsEditor.cpp
>+nsEditor::GetQueryCaretRect(nsQueryCaretRectEventReply* aReply)
>+{
>+  nsCOMPtr<nsISelection> selection
please use |rv| instead of |result|:
>+  nsresult result = GetSelection(getter_AddRefs(selection));
>+  if (NS_FAILED(result))
>+    return result;
Comment on attachment 171135 [details] [diff] [review]
Patch rv1.1(widget/src/windows)

+  // We don't support other of left most postion or sIMECursorPosition.
Are you trying to say:
We only support insertion at the cursor position or at the leftmost position.
?

+  // Because array of sIMECompCharPos may be saving wrong position after
+  // compostion string is converted.

I can't understand this, i can understand that there are ways for stuff to be
corrupted.
Attachment #171135 - Flags: review?(timeless) → review+
(In reply to comment #16)
> (From update of attachment 171135 [details] [diff] [review] [edit])
> +  // We don't support other of left most postion or sIMECursorPosition.
> Are you trying to say:
> We only support insertion at the cursor position or at the leftmost position.
> ?
Yes, I will rewrite comment so.

> +  // Because array of sIMECompCharPos may be saving wrong position after
> +  // compostion string is converted.
> 
> I can't understand this, i can understand that there are ways for stuff to be
> corrupted.

You are right.
The composition string is converted by user.
But sIMECompCharPos is saved by inputted the new char.
When composition string is converted, we don't re-get the new positions.
Attachment #171137 - Flags: review?(peterv) → review?(jst)
Attached patch Patch rv1.1.1(editor) (obsolete) — Splinter Review
Attachment #171136 - Attachment is obsolete: true
Attachment #171989 - Attachment description: Patch rv1.1(editor) → Patch rv1.1.1(editor)
I rewrote the comment.
review+ is carried over.
Attachment #171135 - Attachment is obsolete: true
Attachment #171991 - Flags: review+
Comment on attachment 171989 [details] [diff] [review]
Patch rv1.1.1(editor)

+  void NotifyIMEOnBlur();

that should be interCaps. you can ask the original reviewer candidate for the
next version of this patch, i'm out of feedback.
Attachment #171989 - Flags: review?(timeless) → review-
Attachment #171989 - Attachment is obsolete: true
Attachment #172321 - Flags: review?(daniel)
Comment on attachment 172321 [details] [diff] [review]
Patch rv1.1.2(editor)

Deferring to smontagu who obviously knows/understands better this part of the
code than I do.
Attachment #172321 - Flags: review?(daniel) → review?(smontagu)
Comment on attachment 171137 [details] [diff] [review]
Patch rv1.1(dom/public, content/events)

r=jst
Attachment #171137 - Flags: review?(jst) → review+
Attachment #172321 - Flags: review?(smontagu) → review+
Attached patch Patch rv1.1.2 (obsolete) — Splinter Review
Boris Zbarsky:

if you grant this patch, please check-in.
Attachment #171134 - Attachment is obsolete: true
Attachment #172941 - Flags: superreview?(bzbarsky)
Attachment #172941 - Flags: review+
Comment on attachment 172941 [details] [diff] [review]
Patch rv1.1.2

>Index: editor/idl/nsIEditorIMESupport.idl

Please fix whatever consumers are broken by these changes... For example,
ComposerCommands.js calls ForceCompositionEnd().

The rest of the patch looks ok, but marking sr- pending consumers being fixed.
Attachment #172941 - Flags: superreview?(bzbarsky) → superreview-
Comment on attachment 172976 [details] [diff] [review]
Patch rv1.1.3(editor/ui)

r/rs=daniel@glazman.org
this patch should not be separated from 1.1.2 (editor), really...
Attachment #172976 - Flags: review?(daniel) → review+
Comment on attachment 172978 [details] [diff] [review]
Patch rv1.1.3

Thank you, Daniel.
Boris, please re-superreview it.
Attachment #172978 - Flags: superreview?(bzbarsky)
Attachment #172978 - Flags: review+
Comment on attachment 172978 [details] [diff] [review]
Patch rv1.1.3

sr=bzbarsky
Attachment #172978 - Flags: superreview?(bzbarsky) → superreview+
Thank you, Boris.

Jungshik:

Could you check-in my patch?
Last patch checked in.
   aReply = nsnull;
   return NS_ERROR_FAILURE;
 }
 
+NS_METHOD
+nsDOMUIEvent::GetQueryCaretRectReply(nsQueryCaretRectEventReply** aReply)
+{
+  if (mEvent->eventStructType == NS_QUERYCARETRECT_EVENT)
+  {
+    *aReply = &(NS_STATIC_CAST(nsQueryCaretRectEvent*, mEvent)->theReply);
+    return NS_OK;
+  }
+  aReply = nsnull;

There are two instances of |aReply = nsnull|. You meant |*aReply = nsnull|,
didn't you?
Attached patch Patch (obsolete) — Splinter Review
Jungshik:

Maybe. I copied from above function.
Can you review it?
Attachment #173174 - Flags: review?(jshin1987)
Attached patch PatchSplinter Review
Sorry, here is.
Attachment #173174 - Attachment is obsolete: true
Attachment #173175 - Flags: review?(jshin1987)
Comment on attachment 173175 [details] [diff] [review]
Patch

r=jshin
Attachment #173175 - Flags: review?(jshin1987) → review+
Comment on attachment 173175 [details] [diff] [review]
Patch

sr=bzbarsky; I'm not going to be able to check this in till late tonight,
probably, so if you find someone else go for it.
Attachment #173175 - Flags: superreview?(bzbarsky) → superreview+
Thank you Boris.
Jungshik, could you check-in the patch?
just landed. 
Status: ASSIGNED → RESOLVED
Closed: 20 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: