Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.2:Test
kinput2
bugzilla-63978-hoge.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bugzilla-63978-hoge.patch of Package kinput2
diff -ur kinput2-v3.1.org/lib/imlib/imconv.c kinput2-v3.1/lib/imlib/imconv.c --- kinput2-v3.1.org/lib/imlib/imconv.c 2002-10-03 18:35:30.000000000 +0900 +++ kinput2-v3.1/lib/imlib/imconv.c 2004-12-22 11:59:00.721597279 +0900 @@ -909,11 +909,20 @@ ICClearConversion(input_obj); TRACE(("\twas converting. %d bytes left\n", num_bytes)); +#if 0 + /* + * IMStopConversion() seems to not work correctly while + * resetting IC. So this block was moved to ximResetICProc(). + * If calling IMResetIC() is required in other functions, + * the following block is also used in it. + */ if (icp->common_attr.reset_state == XIMInitialState) { /* Force to end the conversion. */ TRACE(("\tback to the initial state\n")); IMStopConversion(icp); } +#endif + } return num_bytes; } @@ -965,6 +974,42 @@ /* ARGSUSED */ void +IMStatusDraw(icp) +IMIC *icp; +{ + Widget input_obj; + OCCPreeditDrawArg arg; + + TRACE(("IMStatusDraw(ic%d)\n", icp->id)); + if (!(icp->common_attr.input_style & XIMStatusCallbacks)) + return; + + + arg.caret = 0; /* ignored */ + arg.chg_first = 0; /* ignored */ + arg.chg_length = 0; /* ignored */ + arg.encoding = IMCtextAtom(icp->im->connection->proto_widget); + arg.format = 0; /* set by ICGetStatusString */ + arg.text_length = 0; /* set by ICGetStatusString */ + arg.text = NULL; /* set by ICGetStatusString */ + arg.attrs_length = 0; /* ignored */ + arg.attrs = NULL; /* ignored */ + + if (icp->conversion) { + XtVaGetValues(icp->conversion, XtNinputObject, &input_obj, NULL); + if (ICGetStatusString(input_obj, &arg.encoding, &arg.format, + &arg.text_length, &arg.text, + &arg.attrs_length) == -1) + return; + } + + statusDraw(icp, &arg); + + XtFree((char *)arg.text); +} + +/* ARGSUSED */ +void IMStatusDone(icp) IMIC *icp; { diff -ur kinput2-v3.1.org/lib/imlib/imfuncs.h kinput2-v3.1/lib/imlib/imfuncs.h --- kinput2-v3.1.org/lib/imlib/imfuncs.h 2002-10-03 18:35:30.000000000 +0900 +++ kinput2-v3.1/lib/imlib/imfuncs.h 2004-12-22 11:59:00.722597158 +0900 @@ -102,6 +102,7 @@ extern void IMSetFocus _Pt_((IMIC *icp)); extern void IMUnsetFocus _Pt_((IMIC *icp)); extern void IMStatusStart _Pt_((IMIC *icp)); +extern void IMStatusDraw _Pt_((IMIC *icp)); extern void IMStatusDone _Pt_((IMIC *icp)); extern void IMStartForwarding _Pt_((IMIC *icp)); extern void IMStopForwarding _Pt_((IMIC *icp)); diff -ur kinput2-v3.1.org/lib/imlib/imrequest.c kinput2-v3.1/lib/imlib/imrequest.c --- kinput2-v3.1.org/lib/imlib/imrequest.c 2002-10-03 18:35:30.000000000 +0900 +++ kinput2-v3.1/lib/imlib/imrequest.c 2004-12-22 12:16:30.835247338 +0900 @@ -1353,6 +1353,14 @@ IMFinishRequest(conn, offset); if (text != NULL) XtFree(text); icp->state &= ~IC_RESETTING; + + IMStatusDraw(icp); + /* moved from IMResetIC() */ + if (icp->common_attr.reset_state == XIMInitialState) { + /* Force to end the conversion. */ + TRACE(("\tback to the initial state\n")); + IMStopConversion(icp); + } } /*- ximExtMoveProc: handle XIM_EXT_MOVE request -*/
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor