Closed Bug 109736 Opened 24 years ago Closed 24 years ago

XIM server always receive XIMPreeditUnKnown when ResetIC

Categories

(Core :: Internationalization, defect)

x86
Linux
defect
Not set
minor

Tracking

()

VERIFIED INVALID

People

(Reporter: thhsieh, Assigned: masaki.katakai)

Details

From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.5) Gecko/20011023 BuildID: Mozilla 0.9.5 In the source of mozilla-0.9.5: widget/src/gtk/nsGtkIMEHelper.cpp function: nsIMEGtkIC::ResetIC() When XGetICValues() is called to get the current preedit state of the XIM server, it is stored in the variable "preedit_attr", and then it is freed immediately: if (!XGetICValues(mIC->xic, XNPreeditAttributes, preedit_attr, NULL)) { is_preedit_state = PR_TRUE; } XFree(preedit_attr); So actually the variable "preedit_state", which initially set to the value XIMPreeditUnKnown, does not change at all at this stage. And then it calls XSetICValues() to set the value of "preedit_state" to the XIM server: preedit_attr = XVaCreateNestedList(0, XNPreeditState, preedit_state, 0); if (is_preedit_state) { XSetICValues(mIC->xic, XNPreeditAttributes, preedit_attr, NULL); So at this step the XIM server will always receive XIMPreeditUnKnown, the initial value of the variable: "preedit_state". Reproducible: Sometimes Steps to Reproduce: 1.Start the XIM server "xcin" with the debug message turned on: xcin -v 3 2.Start mozilla, then you will see a lot of xcin messages dumpped out. 3.Go to any text input area of mozilla (e.g., editors) and type some characters. Then use mouse to change the location of the input cursor. Each time you click mouse to change the cursor position, xcin will print out the message: DEBUG: ic_set: preedit_state = XIMPreeditUnKnown. This is because, each time you click mouse to change the cursor position, the nsIMEGtkIC::ResetIC function of mozilla will be called, and it will call XSetICValues() to set the "preedit_state". But its value is always XIMPreeditUnKnown. Actual Results: Each time when the cursor position being changed by mouse, xcin with debug level 3 (xcin -v 3) will print the warning message: DEBUG: ic_set: preedit_state = XIMPreeditUnKnown. Expected Results: Each time when the cursor position being changed by mouse, xcin with debug level 3 (xcin -v 3) should not print the warning message: DEBUG: ic_set: preedit_state = XIMPreeditUnKnown. Note, please get the latest xcin package from the CVS: http://xcin.linux.org.tw/download.html#cvs otherwise xcin will not have the facility to print the debug message as mentioned above in any case.
I'll try to debug Mozilla tomorrow. If you can also build binary, put debug message to check value of preedit_state and build it. If the current codes call XSetICValues() with the correct value and xcin gets XIMPreeditUnKnown, it means xcin has a problem around XSetICValues().
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
In mozilla-i18n thread, this is a bug in xcin side and Tung-Han Hsieh has already fixed it. Will close as INVALID.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → INVALID
Verified.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.