+ return;
+}
+
+/* Create X input method for device */
+void
+XIM_init_device (struct device *d)
+{
+ /* do nothing here */
+ return;
+}
+
+/* Callback for when the frame was deleted (closed) */
+static void
+XIM_delete_frame (Widget w, XtPointer client_data, XtPointer call_data)
+{
+ struct frame *f = (struct frame *)client_data;
+ struct device *d = XDEVICE (FRAME_DEVICE ((struct frame *)client_data));
+ Display *dpy = DEVICE_X_DISPLAY (d);
+
+ XUnregisterIMInstantiateCallback (dpy, NULL, NULL, NULL,
+ IMInstantiateCallback, (XtPointer)f);
+
+ if ( FRAME_X_XIC (f) )
+ {
+ XDestroyIC (FRAME_X_XIC(f));
+ FRAME_X_XIC (f) = NULL;
+ }
+ return;
+}
+
+/* Create an X input context for this frame.
+ - Register the IM to be initiated later using XRegisterIMInstantiateCallback
+ */
+void
+XIM_init_frame (struct frame *f)
+{
+ struct device *d = XDEVICE (FRAME_DEVICE (f));
+
+ XRegisterIMInstantiateCallback (DEVICE_X_DISPLAY (d), NULL, NULL, NULL,
+ IMInstantiateCallback, (XtPointer)f);
+
+#if 0
+ if ( FRAME_X_XIC (f) )
+ return;