(U+6215): Apply new conventions for glyph granularity.
[chise/xemacs-chise.git.1] / src / input-method-motif.c
index d209e88..f51e4e7 100644 (file)
@@ -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)