X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Finput-method-motif.c;h=f51e4e71f8baf914b334d78bc870416fce67e3b4;hb=021b0929854c960c0941faee7e6c84fbce8b1776;hp=d209e885c212c399ffb4154f62215eb86b6d30a2;hpb=b5eeb6918c29470b36f8461c402eb0c65cb19bd2;p=chise%2Fxemacs-chise.git.1 diff --git a/src/input-method-motif.c b/src/input-method-motif.c index d209e88..f51e4e7 100644 --- a/src/input-method-motif.c +++ b/src/input-method-motif.c @@ -41,7 +41,7 @@ Initialize_Locale (void) { char *locale; - /* dverna - Nov. 98: ### DON'T DO THIS !!! The default XtLanguageProc + /* dverna - Nov. 98: #### DON'T DO THIS !!! The default XtLanguageProc routine calls setlocale(LC_ALL, lang) which fucks up our lower-level locale management, and especially the value of LC_NUMERIC. Anyway, since at this point, we don't know yet whether we're gonna need an X11 frame, @@ -94,6 +94,13 @@ XIM_init_device (struct device *d) /* Nothing to do */ } +/* Callback for the deleting frame. */ +static void +XIM_delete_frame (Widget w, XtPointer client_data, XtPointer call_data) +{ + XmImUnregister ((Widget) client_data); +} + void XIM_init_frame (struct frame *f) { @@ -152,6 +159,8 @@ XIM_init_frame (struct frame *f) NULL); XmFontListEntryFree (&fontlistEntry); + + XtAddCallback (w, XmNdestroyCallback, XIM_delete_frame, (XtPointer) w); } void @@ -162,7 +171,7 @@ XIM_SetGeometry (struct frame *f) void XIM_SetSpotLocation (struct frame *f, int x, int y) { - /* ### FIX: Must make sure spot fits within Preedit Area */ + /* #### FIX: Must make sure spot fits within Preedit Area */ XPoint *spot = &(FRAME_X_XIC_SPOT (f)); if (spot->x == (short) x && spot->y == (short) y)