]> Pileus Git - ~andy/gtk/commitdiff
Remove old XIM code.
authorOwen Taylor <otaylor@redhat.com>
Fri, 9 Mar 2001 20:28:20 +0000 (20:28 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Fri, 9 Mar 2001 20:28:20 +0000 (20:28 +0000)
Wed Mar  7 20:47:41 2001  Owen Taylor  <otaylor@redhat.com>

* gtk/gtktext.c gtk/gtkoldeditable.[ch] gdk/gdk.[ch]
gdk/Makefile.am gdk/x11/Makefile.am gdk/x11/gdkevents-x11.c
gdk/x11/gdkglobals-x11.c gdk/x11/gdkprivate-x11.c
gdk/x11/gdkx.h gdk/x11/gdkim-x11.c: Remove old XIM code.

* gdk/win32/gdkim-win32.c gdk/linux-fb/gdkim-fb.c: Remove
gdk_im/gdk_ic.

22 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gdk/Makefile.am
gdk/gdk.c
gdk/gdk.h
gdk/gdkinternals.h
gdk/linux-fb/gdkim-fb.c
gdk/win32/gdkim-win32.c
gdk/x11/gdkevents-x11.c
gdk/x11/gdkglobals-x11.c
gdk/x11/gdkim-x11.c
gdk/x11/gdkmain-x11.c
gdk/x11/gdkprivate-x11.h
gdk/x11/gdkx.h
gtk/gtkoldeditable.c
gtk/gtkoldeditable.h
gtk/gtktext.c

index 364f0e9d7658a9450b93b64aa4576d87a6ac59d5..5a90922c7b94dcb3e2f829ad2328ad2eeac1547b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Wed Mar  7 20:47:41 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtktext.c gtk/gtkoldeditable.[ch] gdk/gdk.[ch]
+       gdk/Makefile.am gdk/x11/Makefile.am gdk/x11/gdkevents-x11.c 
+       gdk/x11/gdkglobals-x11.c gdk/x11/gdkprivate-x11.c
+       gdk/x11/gdkx.h gdk/x11/gdkim-x11.c: Remove old XIM code.
+
+       * gdk/win32/gdkim-win32.c gdk/linux-fb/gdkim-fb.c: Remove
+       gdk_im/gdk_ic.
+
 2001-03-09  Hans Breuer  <hans@breuer.org>
 
        * gdk/gdk.def : updated
index 364f0e9d7658a9450b93b64aa4576d87a6ac59d5..5a90922c7b94dcb3e2f829ad2328ad2eeac1547b 100644 (file)
@@ -1,3 +1,13 @@
+Wed Mar  7 20:47:41 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtktext.c gtk/gtkoldeditable.[ch] gdk/gdk.[ch]
+       gdk/Makefile.am gdk/x11/Makefile.am gdk/x11/gdkevents-x11.c 
+       gdk/x11/gdkglobals-x11.c gdk/x11/gdkprivate-x11.c
+       gdk/x11/gdkx.h gdk/x11/gdkim-x11.c: Remove old XIM code.
+
+       * gdk/win32/gdkim-win32.c gdk/linux-fb/gdkim-fb.c: Remove
+       gdk_im/gdk_ic.
+
 2001-03-09  Hans Breuer  <hans@breuer.org>
 
        * gdk/gdk.def : updated
index 364f0e9d7658a9450b93b64aa4576d87a6ac59d5..5a90922c7b94dcb3e2f829ad2328ad2eeac1547b 100644 (file)
@@ -1,3 +1,13 @@
+Wed Mar  7 20:47:41 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtktext.c gtk/gtkoldeditable.[ch] gdk/gdk.[ch]
+       gdk/Makefile.am gdk/x11/Makefile.am gdk/x11/gdkevents-x11.c 
+       gdk/x11/gdkglobals-x11.c gdk/x11/gdkprivate-x11.c
+       gdk/x11/gdkx.h gdk/x11/gdkim-x11.c: Remove old XIM code.
+
+       * gdk/win32/gdkim-win32.c gdk/linux-fb/gdkim-fb.c: Remove
+       gdk_im/gdk_ic.
+
 2001-03-09  Hans Breuer  <hans@breuer.org>
 
        * gdk/gdk.def : updated
index 364f0e9d7658a9450b93b64aa4576d87a6ac59d5..5a90922c7b94dcb3e2f829ad2328ad2eeac1547b 100644 (file)
@@ -1,3 +1,13 @@
+Wed Mar  7 20:47:41 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtktext.c gtk/gtkoldeditable.[ch] gdk/gdk.[ch]
+       gdk/Makefile.am gdk/x11/Makefile.am gdk/x11/gdkevents-x11.c 
+       gdk/x11/gdkglobals-x11.c gdk/x11/gdkprivate-x11.c
+       gdk/x11/gdkx.h gdk/x11/gdkim-x11.c: Remove old XIM code.
+
+       * gdk/win32/gdkim-win32.c gdk/linux-fb/gdkim-fb.c: Remove
+       gdk_im/gdk_ic.
+
 2001-03-09  Hans Breuer  <hans@breuer.org>
 
        * gdk/gdk.def : updated
index 364f0e9d7658a9450b93b64aa4576d87a6ac59d5..5a90922c7b94dcb3e2f829ad2328ad2eeac1547b 100644 (file)
@@ -1,3 +1,13 @@
+Wed Mar  7 20:47:41 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtktext.c gtk/gtkoldeditable.[ch] gdk/gdk.[ch]
+       gdk/Makefile.am gdk/x11/Makefile.am gdk/x11/gdkevents-x11.c 
+       gdk/x11/gdkglobals-x11.c gdk/x11/gdkprivate-x11.c
+       gdk/x11/gdkx.h gdk/x11/gdkim-x11.c: Remove old XIM code.
+
+       * gdk/win32/gdkim-win32.c gdk/linux-fb/gdkim-fb.c: Remove
+       gdk_im/gdk_ic.
+
 2001-03-09  Hans Breuer  <hans@breuer.org>
 
        * gdk/gdk.def : updated
index 364f0e9d7658a9450b93b64aa4576d87a6ac59d5..5a90922c7b94dcb3e2f829ad2328ad2eeac1547b 100644 (file)
@@ -1,3 +1,13 @@
+Wed Mar  7 20:47:41 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtktext.c gtk/gtkoldeditable.[ch] gdk/gdk.[ch]
+       gdk/Makefile.am gdk/x11/Makefile.am gdk/x11/gdkevents-x11.c 
+       gdk/x11/gdkglobals-x11.c gdk/x11/gdkprivate-x11.c
+       gdk/x11/gdkx.h gdk/x11/gdkim-x11.c: Remove old XIM code.
+
+       * gdk/win32/gdkim-win32.c gdk/linux-fb/gdkim-fb.c: Remove
+       gdk_im/gdk_ic.
+
 2001-03-09  Hans Breuer  <hans@breuer.org>
 
        * gdk/gdk.def : updated
index 364f0e9d7658a9450b93b64aa4576d87a6ac59d5..5a90922c7b94dcb3e2f829ad2328ad2eeac1547b 100644 (file)
@@ -1,3 +1,13 @@
+Wed Mar  7 20:47:41 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtktext.c gtk/gtkoldeditable.[ch] gdk/gdk.[ch]
+       gdk/Makefile.am gdk/x11/Makefile.am gdk/x11/gdkevents-x11.c 
+       gdk/x11/gdkglobals-x11.c gdk/x11/gdkprivate-x11.c
+       gdk/x11/gdkx.h gdk/x11/gdkim-x11.c: Remove old XIM code.
+
+       * gdk/win32/gdkim-win32.c gdk/linux-fb/gdkim-fb.c: Remove
+       gdk_im/gdk_ic.
+
 2001-03-09  Hans Breuer  <hans@breuer.org>
 
        * gdk/gdk.def : updated
index 3aafb1a4b68ef40cbd86686daef52568448b4d56..a2d3e3c4dfb88cd8fa4f63530026ba2c42543e9b 100644 (file)
@@ -62,7 +62,6 @@ gdk_public_h_sources = @STRIP_BEGIN@ \
        gdkgc.h         \
        gdkkeysyms.h    \
        gdki18n.h       \
-       gdkim.h         \
        gdkimage.h      \
        gdkinput.h      \
        gdkkeys.h       \
index a30375afb7b0f4acb725d6dcc7cffec6cdfb6906..acdd3ec908379c7091d6a3096ab84a75832e4af6 100644 (file)
--- a/gdk/gdk.c
+++ b/gdk/gdk.c
@@ -340,10 +340,6 @@ gdk_init_check (int    *argc,
   gdk_input_init ();
   gdk_dnd_init ();
 
-#ifdef USE_XIM
-  gdk_im_open ();
-#endif
-  
   gdk_initialized = 1;
 
   return TRUE;
@@ -424,12 +420,6 @@ gdk_exit_func (void)
   
   if (gdk_initialized)
     {
-#ifdef USE_XIM
-      /* cleanup IC */
-      gdk_ic_cleanup ();
-      /* close IM */
-      gdk_im_close ();
-#endif
       gdk_image_exit ();
       gdk_input_exit ();
       gdk_key_repeat_restore ();
index bb587c4659b76b86b9309fa8c2ab4e52b3a59af0..1e03c4f35b049a2282f540569ebbfcc9e16a3b83 100644 (file)
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -34,7 +34,6 @@
 #include <gdk/gdkevents.h>
 #include <gdk/gdkfont.h>
 #include <gdk/gdkgc.h>
-#include <gdk/gdkim.h>
 #include <gdk/gdkimage.h>
 #include <gdk/gdkinput.h>
 #include <gdk/gdkkeys.h>
index 5f96ffd7edf5a4d0722c24cb369fc96d787347b6..fbcf34658a050e245b182a4943fb0f2bb9117ddc 100644 (file)
@@ -125,13 +125,6 @@ void gdk_synthesize_window_state (GdkWindow     *window,
  * Interfaces used by windowing code *
  *************************************/
 
-#ifdef USE_XIM
-/* XIM support */
-gint   gdk_im_open              (void);
-void   gdk_im_close             (void);
-void   gdk_ic_cleanup           (void);
-#endif /* USE_XIM */
-
 void       _gdk_window_destroy           (GdkWindow   *window,
                                          gboolean     foreign_destroy);
 void       _gdk_window_clear_update_area (GdkWindow   *window);
index d2a7f2d897e617953468c46e2cc8aba44ca96cad..7330f40d64987061399ac64b9ef6c8498c85381c 100644 (file)
@@ -97,90 +97,6 @@ gdk_set_locale (void)
   return current_locale;
 }
 
-void 
-gdk_im_begin (GdkIC *ic, GdkWindow* window)
-{
-}
-
-void 
-gdk_im_end (void)
-{
-}
-
-GdkIMStyle
-gdk_im_decide_style (GdkIMStyle supported_style)
-{
-  return GDK_IM_PREEDIT_NONE | GDK_IM_STATUS_NONE;
-}
-
-GdkIMStyle
-gdk_im_set_best_style (GdkIMStyle style)
-{
-  return GDK_IM_PREEDIT_NONE | GDK_IM_STATUS_NONE;
-}
-
-gint 
-gdk_im_ready (void)
-{
-  return FALSE;
-}
-
-gint
-gdk_im_open(void)
-{
-  return TRUE;
-}
-
-void
-gdk_im_close(void)
-{
-}
-
-GdkIC * 
-gdk_ic_new (GdkICAttr *attr, GdkICAttributesType mask)
-{
-  return NULL;
-}
-
-void 
-gdk_ic_destroy (GdkIC *ic)
-{
-}
-
-GdkIMStyle
-gdk_ic_get_style (GdkIC *ic)
-{
-  return GDK_IM_PREEDIT_NONE | GDK_IM_STATUS_NONE;
-}
-
-void 
-gdk_ic_set_values (GdkIC *ic, ...)
-{
-}
-
-void 
-gdk_ic_get_values (GdkIC *ic, ...)
-{
-}
-
-GdkICAttributesType 
-gdk_ic_set_attr (GdkIC *ic, GdkICAttr *attr, GdkICAttributesType mask)
-{
-  return 0;
-}
-
-GdkICAttributesType 
-gdk_ic_get_attr (GdkIC *ic, GdkICAttr *attr, GdkICAttributesType mask)
-{
-  return 0;
-}
-
-GdkEventMask 
-gdk_ic_get_events (GdkIC *ic)
-{
-  return 0;
-}
-
 /*
  * gdk_wcstombs 
  *
@@ -225,18 +141,3 @@ gdk_mbstowcs (GdkWChar *dest, const gchar *src, gint dest_max)
 
   return i;
 }
-
-void
-gdk_ic_cleanup(void)
-{
-}
-
-GdkICAttr*   gdk_ic_attr_new       (void)
-{
-  return NULL;
-}
-
-void
-gdk_ic_attr_destroy   (GdkICAttr *attr)
-{
-}
index 9567ce19707ff3813a1a4fb5ff0e0dadf94a6228..bb9502a80fb32626f3854fe0f05bf577d10eb331 100644 (file)
@@ -30,7 +30,6 @@
 #include <string.h>
 #include <locale.h>
 
-#include "gdkim.h"
 #include "gdkpixmap.h"
 #include "gdkinternals.h"
 #include "gdki18n.h"
@@ -58,90 +57,6 @@ gdk_set_locale (void)
   return g_win32_getlocale ();
 }
 
-void 
-gdk_im_begin (GdkIC *ic, GdkWindow* window)
-{
-}
-
-void 
-gdk_im_end (void)
-{
-}
-
-GdkIMStyle
-gdk_im_decide_style (GdkIMStyle supported_style)
-{
-  return GDK_IM_PREEDIT_NONE | GDK_IM_STATUS_NONE;
-}
-
-GdkIMStyle
-gdk_im_set_best_style (GdkIMStyle style)
-{
-  return GDK_IM_PREEDIT_NONE | GDK_IM_STATUS_NONE;
-}
-
-gint 
-gdk_im_ready (void)
-{
-  return FALSE;
-}
-
-GdkIC * 
-gdk_ic_new (GdkICAttr *attr, GdkICAttributesType mask)
-{
-  return NULL;
-}
-
-void 
-gdk_ic_destroy (GdkIC *ic)
-{
-}
-
-GdkIMStyle
-gdk_ic_get_style (GdkIC *ic)
-{
-  return GDK_IM_PREEDIT_NONE | GDK_IM_STATUS_NONE;
-}
-
-GdkICAttr*
-gdk_ic_attr_new (void)
-{
-  return NULL;
-}
-
-void
-gdk_ic_attr_destroy (GdkICAttr *attr)
-{
-}
-
-void 
-gdk_ic_set_values (GdkIC *ic, ...)
-{
-}
-
-void 
-gdk_ic_get_values (GdkIC *ic, ...)
-{
-}
-
-GdkICAttributesType 
-gdk_ic_set_attr (GdkIC *ic, GdkICAttr *attr, GdkICAttributesType mask)
-{
-  return 0;
-}
-
-GdkICAttributesType 
-gdk_ic_get_attr (GdkIC *ic, GdkICAttr *attr, GdkICAttributesType mask)
-{
-  return 0;
-}
-
-GdkEventMask 
-gdk_ic_get_events (GdkIC *ic)
-{
-  return 0;
-}
-
 /*
  * gdk_wcstombs 
  *
index 2c015535f30fad857d67435a5ec4b92d0cfcc0f2..90cbb60223e7d24a1419e1d0eae4f1e491dede9e 100644 (file)
@@ -397,12 +397,7 @@ gdk_event_translate (GdkEvent *event,
   static XComposeStatus compose;
   KeySym keysym;
   int charcount;
-#ifdef USE_XIM
-  static gchar* buf = NULL;
-  static gint buf_len= 0;
-#else
   char buf[16];
-#endif
   gint return_val;
   gint xoffset, yoffset;
   
@@ -471,41 +466,6 @@ gdk_event_translate (GdkEvent *event,
        }
     }
 
-#ifdef USE_XIM
-  if (window == NULL && gdk_xim_window && xevent->type == KeyPress &&
-      !GDK_WINDOW_DESTROYED (gdk_xim_window))
-    {
-      /*
-       * If user presses a key in Preedit or Status window, keypress event
-       * is sometimes sent to these windows. These windows are not managed
-       * by GDK, so we redirect KeyPress event to xim_window.
-       *
-       * If someone want to use the window whitch is not managed by GDK
-       * and want to get KeyPress event, he/she must register the filter
-       * function to gdk_default_filters to intercept the event.
-       */
-
-      GdkFilterReturn result;
-
-      window = gdk_xim_window;
-      window_private = (GdkWindowObject *) window;
-      gdk_window_ref (window);
-      event->any.window = window;
-
-      GDK_NOTE (XIM,
-       g_message ("KeyPress event is redirected to xim_window: %#lx",
-                  xevent->xany.window));
-
-      result = gdk_event_apply_filters (xevent, event,
-                                       window_private->filters);
-      if (result != GDK_FILTER_CONTINUE)
-       {
-         return_val = (result == GDK_FILTER_TRANSLATE) ? TRUE : FALSE;
-         goto done;
-       }
-    }
-#endif
-
   /* We do a "manual" conversion of the XEvent to a
    *  GdkEvent. The structures are mostly the same so
    *  the conversion is fairly straightforward. We also
@@ -531,49 +491,8 @@ gdk_event_translate (GdkEvent *event,
       /* Lookup the string corresponding to the given keysym.
        */
 
-#ifdef USE_XIM
-      if (buf_len == 0) 
-       {
-         buf_len = 128;
-         buf = g_new (gchar, buf_len);
-       }
-      keysym = GDK_VoidSymbol;
-      
-      if (gdk_xim_ic && gdk_xim_ic->xic)
-       {
-         Status status;
-         
-         /* Clear keyval. Depending on status, may not be set */
-         charcount = XmbLookupString(gdk_xim_ic->xic,
-                                     &xevent->xkey, buf, buf_len-1,
-                                     &keysym, &status);
-         if (status == XBufferOverflow)
-           {                     /* retry */
-             /* alloc adequate size of buffer */
-             GDK_NOTE (XIM,
-                       g_message("XIM: overflow (required %i)", charcount));
-             
-             while (buf_len <= charcount)
-               buf_len *= 2;
-             buf = (gchar *) g_realloc (buf, buf_len);
-             
-             charcount = XmbLookupString (gdk_xim_ic->xic,
-                                          &xevent->xkey, buf, buf_len-1,
-                                          &keysym, &status);
-           }
-         if (status == XLookupNone)
-           {
-             return_val = FALSE;
-             break;
-           }
-       }
-      else
-       charcount = XLookupString (&xevent->xkey, buf, buf_len,
-                                  &keysym, &compose);
-#else
       charcount = XLookupString (&xevent->xkey, buf, 16,
                                 &keysym, &compose);
-#endif
       event->key.keyval = keysym;
       event->key.hardware_keycode = xevent->xkey.keycode;
       
@@ -631,13 +550,6 @@ gdk_event_translate (GdkEvent *event,
            break;
        }
       
-#ifdef USE_XIM
-      if (buf_len == 0) 
-       {
-         buf_len = 128;
-         buf = g_new (gchar, buf_len);
-       }
-#endif
       keysym = GDK_VoidSymbol;
       charcount = XLookupString (&xevent->xkey, buf, 16,
                                 &keysym, &compose);
@@ -1476,26 +1388,7 @@ gdk_events_queue (void)
 
   while (!gdk_event_queue_find_first() && XPending (gdk_display))
     {
-#ifdef USE_XIM
-      Window w = None;
-      
       XNextEvent (gdk_display, &xevent);
-      if (gdk_xim_window)
-       switch (xevent.type)
-         {
-         case KeyPress:
-         case KeyRelease:
-         case ButtonPress:
-         case ButtonRelease:
-           w = GDK_WINDOW_XWINDOW (gdk_xim_window);
-           break;
-         }
-
-      if (XFilterEvent (&xevent, w))
-       continue;
-#else
-      XNextEvent (gdk_display, &xevent);
-#endif
 
       switch (xevent.type)
        {
index f7ca954fbf4a761fa236aef549d53ca715b01277..104b79f9efc3fad34642a608cf757507bd14e5bf 100644 (file)
@@ -45,9 +45,6 @@ gchar            *gdk_progclass = NULL;
 gboolean          gdk_null_window_warnings = TRUE;
 
 gboolean          gdk_xim_using;               /* using XIM Protocol if TRUE */
-#ifdef USE_XIM
-GdkICPrivate     *gdk_xim_ic;          /* currently using IC */
-#endif /* USE_XIM */
 GdkWindow        *gdk_xim_window;              /* currently using Widow */
 
 GdkWindowObject *gdk_xgrab_window = NULL;  /* Window that currently holds the
index 27a31a5790b7a555b1fd7a47b002b1ec74b91d52..515039e2511646685ec8798bb76efe261fd47836 100644 (file)
  */
 static gboolean gdk_use_mb;
 
-#ifdef USE_XIM
-
-#include <stdarg.h>
-#include <X11/Xresource.h>
-
-/* The following routines duplicate functionality in Xlib to
- * translate from varargs to X's internal opaque XVaNestedList.
- * 
- * If all vendors have stuck close to the reference implementation,
- * then we should hopefully be OK. 
- */
-
-typedef struct {
-  gchar          *name;
-  gpointer value;
-} GdkImArg;
-
-#ifdef USE_X11R6_XIM
-static void   gdk_im_instantiate_cb      (Display *display,
-                                         XPointer client_data,
-                                         XPointer call_data);
-#endif
-static void   gdk_im_destroy_cb          (XIM im,
-                                         XPointer client_data,
-                                         XPointer call_data);
-static gint   gdk_im_real_open           (void);
-static void   gdk_ic_real_new            (GdkIC *ic);
-
-static GdkICAttributesType gdk_ic_real_set_attr (GdkIC *ic,
-                                                GdkICAttr           *attr,
-                                                GdkICAttributesType  mask);
-
-static XIM        xim_im;                      /* global IM */
-static XIMStyles* xim_styles;                  /* im supports these styles */
-static XIMStyle xim_best_allowed_style;
-static GList* xim_ic_list;
-
-#endif /* USE_XIM */
-
 /*
  *--------------------------------------------------------------
  * gdk_set_locale
@@ -149,1339 +110,6 @@ gdk_set_locale (void)
   return current_locale;
 }
 
-#ifdef USE_XIM
-
-/*
- *--------------------------------------------------------------
- * gdk_im_begin
- *
- *   Begin using input method with XIM Protocol(X11R6 standard)
- *
- * Arguments:
- *   "ic" is the "Input Context" which is created by gtk_ic_new.
- *   The input area is specified with "window".
- *
- * Results:
- *   The gdk's event handling routine is switched to XIM based routine.
- *   XIM based routine uses XFilterEvent to get rid of events used by IM,
- *   and uses XmbLookupString instead of XLookupString.
- *
- * Side effects:
- *
- *--------------------------------------------------------------
- */
-
-void 
-gdk_im_begin (GdkIC *ic, GdkWindow* window)
-{
-  GdkICPrivate *private;
-  GdkICAttr attr;
-  
-  g_return_if_fail (ic != NULL);
-  
-  private = (GdkICPrivate *) ic;
-  
-  attr.focus_window = window;
-  gdk_ic_set_attr (ic, &attr, GDK_IC_FOCUS_WINDOW);
-
-  if (private != gdk_xim_ic)
-    {
-      gdk_im_end();
-      if (private->xic)
-       {
-         XSetICFocus (private->xic);
-         GDK_NOTE (XIM, g_message ("im_begin icfocus : %p(%ld)\n",
-                                   private->xic,
-                                   GDK_WINDOW_XWINDOW(private->attr->focus_window)));
-       }
-    }
-  gdk_xim_ic = private;
-  gdk_xim_window = window;
-}
-
-/*
- *--------------------------------------------------------------
- * gdk_im_end
- *
- *   End using input method with XIM Protocol(X11R6 standard)
- *
- * Arguments:
- *
- * Results:
- *   The gdk's event handling routine is switched to normal routine.
- *   User should call this function before ic and window will be destroyed.
- *
- * Side effects:
- *
- *--------------------------------------------------------------
- */
-
-void 
-gdk_im_end (void)
-{
-  if (gdk_xim_ic && gdk_xim_ic->xic)
-    {
-      XUnsetICFocus (gdk_xim_ic->xic);
-      GDK_NOTE (XIM, g_message ("im_end unfocus : %p\n", gdk_xim_ic->xic));
-    }
-  gdk_xim_ic = NULL;
-  gdk_xim_window = NULL;
-}
-
-static GdkIMStyle 
-gdk_im_choose_better_style (GdkIMStyle style1, GdkIMStyle style2) 
-{
-  GdkIMStyle s1, s2, u;
-  
-  if (style1 == 0) return style2;
-  if (style2 == 0) return style1;
-  if ((style1 & (GDK_IM_PREEDIT_MASK | GDK_IM_STATUS_MASK))
-       == (style2 & (GDK_IM_PREEDIT_MASK | GDK_IM_STATUS_MASK)))
-    return style1;
-
-  s1 = style1 & GDK_IM_PREEDIT_MASK;
-  s2 = style2 & GDK_IM_PREEDIT_MASK;
-  u = s1 | s2;
-  if (s1 != s2) {
-    if (u & GDK_IM_PREEDIT_CALLBACKS)
-      return (s1 == GDK_IM_PREEDIT_CALLBACKS)? style1:style2;
-    else if (u & GDK_IM_PREEDIT_POSITION)
-      return (s1 == GDK_IM_PREEDIT_POSITION)? style1:style2;
-    else if (u & GDK_IM_PREEDIT_AREA)
-      return (s1 == GDK_IM_PREEDIT_AREA)? style1:style2;
-    else if (u & GDK_IM_PREEDIT_NOTHING)
-      return (s1 == GDK_IM_PREEDIT_NOTHING)? style1:style2;
-  } else {
-    s1 = style1 & GDK_IM_STATUS_MASK;
-    s2 = style2 & GDK_IM_STATUS_MASK;
-    u = s1 | s2;
-    if ( u & GDK_IM_STATUS_CALLBACKS)
-      return (s1 == GDK_IM_STATUS_CALLBACKS)? style1:style2;
-    else if ( u & GDK_IM_STATUS_AREA)
-      return (s1 == GDK_IM_STATUS_AREA)? style1:style2;
-    else if ( u & GDK_IM_STATUS_NOTHING)
-      return (s1 == GDK_IM_STATUS_NOTHING)? style1:style2;
-    else if ( u & GDK_IM_STATUS_NONE)
-      return (s1 == GDK_IM_STATUS_NONE)? style1:style2;
-  }
-  return 0; /* Get rid of stupid warning */
-}
-
-GdkIMStyle
-gdk_im_decide_style (GdkIMStyle supported_style)
-{
-  gint i;
-  GdkIMStyle style, tmp;
-  
-  g_return_val_if_fail (xim_styles != NULL, 0);
-  
-  style = 0;
-  for (i=0; i<xim_styles->count_styles; i++)
-    {
-      tmp = xim_styles->supported_styles[i];
-      if (tmp == (tmp & supported_style & xim_best_allowed_style))
-       style = gdk_im_choose_better_style (style, tmp);
-    }
-  return style;
-}
-
-GdkIMStyle
-gdk_im_set_best_style (GdkIMStyle style)
-{
-  if (style & GDK_IM_PREEDIT_MASK)
-    {
-      xim_best_allowed_style &= ~GDK_IM_PREEDIT_MASK;
-
-      xim_best_allowed_style |= GDK_IM_PREEDIT_NONE;
-      if (!(style & GDK_IM_PREEDIT_NONE))
-       {
-         xim_best_allowed_style |= GDK_IM_PREEDIT_NOTHING;
-         if (!(style & GDK_IM_PREEDIT_NOTHING))
-           {
-             xim_best_allowed_style |= GDK_IM_PREEDIT_AREA;
-             if (!(style & GDK_IM_PREEDIT_AREA))
-               {
-                 xim_best_allowed_style |= GDK_IM_PREEDIT_POSITION;
-                 if (!(style & GDK_IM_PREEDIT_POSITION))
-                   xim_best_allowed_style |= GDK_IM_PREEDIT_CALLBACKS;
-               }
-           }
-       }
-    }
-  if (style & GDK_IM_STATUS_MASK)
-    {
-      xim_best_allowed_style &= ~GDK_IM_STATUS_MASK;
-
-      xim_best_allowed_style |= GDK_IM_STATUS_NONE;
-      if (!(style & GDK_IM_STATUS_NONE))
-       {
-         xim_best_allowed_style |= GDK_IM_STATUS_NOTHING;
-         if (!(style & GDK_IM_STATUS_NOTHING))
-           {
-             xim_best_allowed_style |= GDK_IM_STATUS_AREA;
-             if (!(style & GDK_IM_STATUS_AREA))
-               xim_best_allowed_style |= GDK_IM_STATUS_CALLBACKS;
-           }
-       }
-    }
-  
-  return xim_best_allowed_style;
-}
-
-#ifdef USE_X11R6_XIM
-static void
-gdk_im_destroy_cb (XIM im, XPointer client_data, XPointer call_data)
-{
-  GList *node;
-  GdkICPrivate *private;
-
-  GDK_NOTE (XIM, g_message ("Ouch, Input Method is destroyed!!\n"));
-
-  xim_im = NULL;
-
-  if (xim_styles)
-    {
-      XFree (xim_styles);
-      xim_styles = NULL;
-    }
-
-  for (node = xim_ic_list; node != NULL; node = g_list_next(node))
-    {
-      private = (GdkICPrivate *) (node->data);
-      private->xic = NULL;
-    }
-
-  XRegisterIMInstantiateCallback (gdk_display, NULL, NULL, NULL,
-                                 gdk_im_instantiate_cb, NULL);
-}
-
-static void
-gdk_im_instantiate_cb (Display *display,
-                      XPointer client_data, XPointer call_data)
-{
-  GDK_NOTE (XIM, g_message ("New IM is instantiated."));
-  if (display != gdk_display)
-    return;
-
-  gdk_im_real_open ();
-
-  if (xim_im != NULL)
-    XUnregisterIMInstantiateCallback (gdk_display, NULL, NULL, NULL,
-                                     gdk_im_instantiate_cb, NULL);
-}
-#endif
-
-static gint
-gdk_im_real_open (void)
-{
-  GList *node;
-
-  xim_im = XOpenIM (GDK_DISPLAY(), NULL, NULL, NULL);
-  if (xim_im == NULL)
-    {
-      GDK_NOTE (XIM, g_warning ("Unable to open IM."));
-      return FALSE;
-    }
-  else
-    {
-#ifdef USE_X11R6_XIM
-      XIMCallback destroy_cb;
-
-      destroy_cb.callback = gdk_im_destroy_cb;
-      destroy_cb.client_data = NULL;
-      if (NULL != (void *) XSetIMValues (xim_im, XNDestroyCallback, &destroy_cb, NULL))
-       GDK_NOTE (XIM, g_warning ("Could not set destroy callback to IM. Be careful to not destroy your input method."));
-#endif
-
-      XGetIMValues (xim_im, XNQueryInputStyle, &xim_styles, NULL, NULL);
-
-      for (node = xim_ic_list; node != NULL; node = g_list_next(node))
-       {
-         GdkICPrivate *private = (GdkICPrivate *) (node->data);
-         if (private->xic == NULL)
-           gdk_ic_real_new ((GdkIC *)private);
-       }
-      return TRUE;
-    }
-}
-
-gint 
-gdk_im_open (void)
-{
-  gdk_xim_ic = NULL;
-  gdk_xim_window = (GdkWindow*)NULL;
-  xim_im = NULL;
-  xim_styles = NULL;
-
-  /* initialize XIM Protocol variables */
-  if (!(xim_best_allowed_style & GDK_IM_PREEDIT_MASK))
-    gdk_im_set_best_style (GDK_IM_PREEDIT_CALLBACKS);
-  if (!(xim_best_allowed_style & GDK_IM_STATUS_MASK))
-    gdk_im_set_best_style (GDK_IM_STATUS_CALLBACKS);
-
-  if (gdk_im_real_open ())
-    return TRUE;
-
-#ifdef USE_X11R6_XIM
-  XRegisterIMInstantiateCallback (gdk_display, NULL, NULL, NULL,
-                                 gdk_im_instantiate_cb, NULL);
-#endif
-
-  return FALSE;
-}
-
-void 
-gdk_im_close (void)
-{
-  if (xim_im)
-    {
-      XCloseIM (xim_im);
-      xim_im = NULL;
-    }
-  if (xim_styles)
-    {
-      XFree (xim_styles);
-      xim_styles = NULL;
-    }
-}
-
-gboolean
-gdk_im_ready (void)
-{
-  return (xim_im != NULL);
-}
-
-static void
-gdk_ic_real_new (GdkIC *ic)
-{
-  XPoint spot_location;
-  XRectangle preedit_area;
-  XRectangle status_area;
-  XVaNestedList *preedit_attr = NULL;
-  XVaNestedList *status_attr = NULL;
-  GdkICAttr *attr;
-  GdkICPrivate *private;
-  GdkICAttributesType mask = GDK_IC_ALL_REQ;
-
-  private = (GdkICPrivate *) ic;
-  attr = private->attr;
-
-  switch (attr->style & GDK_IM_PREEDIT_MASK)
-    {
-    case GDK_IM_PREEDIT_AREA:
-      mask |= GDK_IC_PREEDIT_AREA_REQ;
-
-      preedit_area.x = attr->preedit_area.x;
-      preedit_area.y = attr->preedit_area.y;
-      preedit_area.width = attr->preedit_area.width;
-      preedit_area.height = attr->preedit_area.height;
-
-      preedit_attr = XVaCreateNestedList (0,
-                                         XNArea, &preedit_area,
-                                         XNFontSet,
-                                         GDK_FONT_XFONT(attr->preedit_fontset),
-                                         NULL);
-      break;
-
-    case GDK_IM_PREEDIT_POSITION:
-      mask |= GDK_IC_PREEDIT_POSITION_REQ;
-
-      preedit_area.x = attr->preedit_area.x;
-      preedit_area.y = attr->preedit_area.y;
-      preedit_area.width = attr->preedit_area.width;
-      preedit_area.height = attr->preedit_area.height;
-
-      spot_location.x = attr->spot_location.x;
-      spot_location.y = attr->spot_location.y;
-
-      preedit_attr = XVaCreateNestedList (0,
-                                         XNArea, &preedit_area,
-                                         XNFontSet,
-                                         GDK_FONT_XFONT(attr->preedit_fontset),
-                                         XNSpotLocation, &spot_location,
-                                         NULL);
-      break;
-    }
-
-  switch (attr->style & GDK_IM_STATUS_MASK)
-    {
-    case GDK_IM_STATUS_AREA:
-      mask |= GDK_IC_STATUS_AREA_REQ;
-
-      status_area.x = attr->status_area.x;
-      status_area.y = attr->status_area.y;
-      status_area.width = attr->status_area.width;
-      status_area.height = attr->status_area.height;
-
-      status_attr = XVaCreateNestedList (0,
-                                        XNArea, &status_area,
-                                        XNFontSet,
-                                        GDK_FONT_XFONT(attr->status_fontset),
-                                        NULL);
-      break;
-    }
-
-  /* We have to ensure that the client window is actually created on
-   * the X server, or XCreateIC fails because the XIM server can't get
-   * information about the client window.
-   */
-  gdk_flush();
-  
-  if (preedit_attr != NULL && status_attr != NULL)
-    private->xic = XCreateIC (xim_im,
-                             XNInputStyle,
-                             attr->style,
-                             XNClientWindow,
-                             GDK_WINDOW_XWINDOW(attr->client_window),
-                             XNPreeditAttributes,
-                             preedit_attr,
-                             XNStatusAttributes,
-                             status_attr,
-                             NULL);
-  else if (preedit_attr != NULL)
-    private->xic = XCreateIC (xim_im,
-                             XNInputStyle,
-                             attr->style,
-                             XNClientWindow,
-                             GDK_WINDOW_XWINDOW(attr->client_window),
-                             XNPreeditAttributes,
-                             preedit_attr,
-                             NULL);
-  else if (status_attr != NULL)
-    private->xic = XCreateIC (xim_im,
-                             XNInputStyle,
-                             attr->style,
-                             XNClientWindow,
-                             GDK_WINDOW_XWINDOW(attr->client_window),
-                             XNStatusAttributes,
-                             status_attr,
-                             NULL);
-  else
-    private->xic = XCreateIC (xim_im,
-                             XNInputStyle,
-                             attr->style,
-                             XNClientWindow,
-                             GDK_WINDOW_XWINDOW(attr->client_window),
-                             NULL);
-
-  if (preedit_attr)
-    XFree (preedit_attr);
-  if (status_attr)
-    XFree (status_attr);
-
-  if (private->xic == NULL)
-    g_warning ("can not create input context with specified input style.");
-  else
-    gdk_ic_real_set_attr (ic, private->attr, private->mask & ~mask);
-}
-
-GdkIC *
-gdk_ic_new (GdkICAttr *attr, GdkICAttributesType mask)
-{
-  GdkICPrivate *private;
-  gboolean error = 0;
-  GdkICAttributesType invalid_mask;
-  GdkICAttr *pattr;
-
-  g_return_val_if_fail (attr != NULL, NULL);
-  g_return_val_if_fail ((mask & GDK_IC_ALL_REQ) == GDK_IC_ALL_REQ, NULL);
-
-  switch (attr->style & GDK_IM_PREEDIT_MASK)
-    {
-    case 0:
-      g_warning ("preedit style is not specified.\n");
-      error = 1;
-      break;
-
-    case GDK_IM_PREEDIT_AREA:
-      if ((mask & GDK_IC_PREEDIT_AREA_REQ) != GDK_IC_PREEDIT_AREA_REQ)
-       error = 4;
-      break;
-
-    case GDK_IM_PREEDIT_POSITION:
-      if ((mask & GDK_IC_PREEDIT_POSITION_REQ) != GDK_IC_PREEDIT_POSITION_REQ)
-       error = 4;
-      break;
-    }
-
-  switch (attr->style & GDK_IM_STATUS_MASK)
-    {
-    case 0:
-      g_warning ("status style is not specified.\n");
-      error = 2;
-      break;
-
-    case GDK_IM_STATUS_AREA:
-      if ((mask & GDK_IC_STATUS_AREA_REQ) != GDK_IC_STATUS_AREA_REQ)
-       error = 8;
-      break;
-    }
-
-  if (error)
-    {
-      if (error & 12)
-       g_warning ("IC attribute is not enough to required input style.\n");
-      return NULL;
-    }
-
-  if (attr->client_window == NULL ||
-      GDK_WINDOW_DESTROYED (attr->client_window))
-    {
-      g_warning ("Client_window is null or already destroyed.\n");
-      return NULL;
-    }
-
-  private = g_new0 (GdkICPrivate, 1);
-  private->attr = pattr = gdk_ic_attr_new ();
-
-  gdk_window_ref (attr->client_window);
-  pattr->client_window = attr->client_window;
-  pattr->style = attr->style;
-  private->mask = GDK_IC_STYLE | GDK_IC_CLIENT_WINDOW;
-  
-  /* XIC is still not created, so following call only copies attributes */
-  invalid_mask = gdk_ic_set_attr ((GdkIC *)private, attr, mask & ~GDK_IC_ALL_REQ);
-
-  switch (attr->style & GDK_IM_PREEDIT_MASK)
-    {
-    case GDK_IM_PREEDIT_AREA:
-      if (invalid_mask & GDK_IC_PREEDIT_AREA_REQ)
-       error = TRUE;
-      break;
-
-    case GDK_IM_PREEDIT_POSITION:
-      if (invalid_mask & GDK_IC_PREEDIT_POSITION_REQ)
-       error = TRUE;
-      break;
-    }
-
-  switch (attr->style & GDK_IM_STATUS_MASK)
-    {
-    case GDK_IM_STATUS_AREA:
-      if (invalid_mask & GDK_IC_STATUS_AREA_REQ)
-       error = TRUE;
-      break;
-    }
-
-  if (error == TRUE)
-    {
-      g_warning ("Essential attributes for required style are invalid.\n");
-      gdk_ic_destroy ((GdkIC *)private);
-      return NULL;
-    }
-
-  if (gdk_im_ready ())
-    gdk_ic_real_new ((GdkIC *)private);
-
-  xim_ic_list = g_list_append (xim_ic_list, private);
-  
-  return (GdkIC *)private;
-}
-
-void 
-gdk_ic_destroy (GdkIC *ic)
-{
-  GdkICPrivate *private;
-  
-  g_return_if_fail (ic != NULL);
-  
-  private = (GdkICPrivate *) ic;
-  
-  if (gdk_xim_ic == private)
-    gdk_im_end ();
-  
-  GDK_NOTE (XIM, g_message ("ic_destroy %p\n", private->xic));
-  if (private->xic != NULL)
-    XDestroyIC (private->xic);
-
-  if (private->mask & GDK_IC_CLIENT_WINDOW)
-    gdk_window_unref (private->attr->client_window);
-  if (private->mask & GDK_IC_FOCUS_WINDOW)
-    gdk_window_unref (private->attr->focus_window);
-
-  if (private->mask & GDK_IC_PREEDIT_FONTSET)
-    gdk_font_unref (private->attr->preedit_fontset);
-  if (private->mask & GDK_IC_PREEDIT_PIXMAP)
-    gdk_pixmap_unref (private->attr->preedit_pixmap);
-  if (private->mask & GDK_IC_PREEDIT_COLORMAP)
-    gdk_colormap_unref (private->attr->preedit_colormap);
-
-  if (private->mask & GDK_IC_STATUS_FONTSET)
-    gdk_font_unref (private->attr->status_fontset);
-  if (private->mask & GDK_IC_STATUS_PIXMAP)
-    gdk_pixmap_unref (private->attr->status_pixmap);
-  if (private->mask & GDK_IC_STATUS_COLORMAP)
-    gdk_colormap_unref (private->attr->status_colormap);
-
-  xim_ic_list = g_list_remove (xim_ic_list, private);
-  gdk_ic_attr_destroy (private->attr);
-  g_free (private);
-}
-
-GdkIMStyle
-gdk_ic_get_style (GdkIC *ic)
-{
-  GdkICPrivate *private;
-  
-  g_return_val_if_fail (ic != NULL, 0);
-  
-  private = (GdkICPrivate *) ic;
-  
-  return private->attr->style;
-}
-
-/*
- * for keeping binary compatibility if member of ic attributes is added.
- */
-GdkICAttr *
-gdk_ic_attr_new (void)
-{
-  return g_new0 (GdkICAttr, 1);
-}
-
-void
-gdk_ic_attr_destroy (GdkICAttr *attr)
-{
-  g_return_if_fail (attr != NULL);
-
-  g_free (attr);
-}
-
-static GdkICAttributesType
-gdk_ic_real_set_attr (GdkIC *ic,
-                     GdkICAttr *attr,
-                     GdkICAttributesType mask)
-{
-  GdkICPrivate *private = (GdkICPrivate *)ic;
-  XIC xic = private->xic;
-  GdkICAttributesType error = 0;
-  GdkImArg arg[2] = {{NULL, NULL}, {NULL, NULL}};
-
-  if (mask & GDK_IC_FOCUS_WINDOW)
-    {
-      if (XSetICValues (xic, XNFocusWindow,
-                       GDK_WINDOW_XWINDOW(attr->focus_window), NULL) != NULL)
-       error |= GDK_IC_FOCUS_WINDOW;
-    }
-
-  if (mask & GDK_IC_SPOT_LOCATION)
-    {
-      XPoint point;
-
-      point.x = attr->spot_location.x;
-      point.y = attr->spot_location.y;
-
-      arg->name = XNSpotLocation;
-      arg->value = (gpointer) &point;
-
-      if (XSetICValues (xic, XNPreeditAttributes, arg, NULL))
-       error |= GDK_IC_SPOT_LOCATION;
-    }
-
-  if (mask & GDK_IC_LINE_SPACING)
-    {
-      arg->name = XNLineSpace;
-      arg->value = GINT_TO_POINTER( attr->line_spacing );
-
-      if (XSetICValues (xic, XNPreeditAttributes, arg, NULL))
-       error |= GDK_IC_LINE_SPACING;
-    }
-
-  if (mask & GDK_IC_CURSOR)
-    {
-      GdkCursorPrivate *cursor = (GdkCursorPrivate *) attr->cursor;
-
-      if (XSetICValues (xic, XNCursor, cursor->xcursor, NULL))
-       error |= GDK_IC_CURSOR;
-    }
-
-  if (mask & GDK_IC_PREEDIT_FONTSET)
-    {
-      arg->name = XNFontSet;
-      arg->value = (gpointer) GDK_FONT_XFONT(attr->preedit_fontset);
-
-      if (XSetICValues (xic, XNPreeditAttributes, arg, NULL))
-       error |= GDK_IC_PREEDIT_FONTSET;
-    }
-
-  if (mask & GDK_IC_PREEDIT_AREA)
-    {
-      XRectangle rect;
-
-      rect.x = attr->preedit_area.x;
-      rect.y = attr->preedit_area.y;
-      rect.width = attr->preedit_area.width;
-      rect.height = attr->preedit_area.height;
-
-      arg->name = XNArea;
-      arg->value = (gpointer) &rect;
-
-      if (XSetICValues (xic, XNPreeditAttributes, arg, NULL))
-       error |= GDK_IC_PREEDIT_AREA;
-    }
-
-  if (mask & GDK_IC_PREEDIT_AREA_NEEDED)
-    {
-      XRectangle rect;
-
-      rect.x = attr->preedit_area_needed.x;
-      rect.y = attr->preedit_area_needed.y;
-      rect.width = attr->preedit_area_needed.width;
-      rect.height = attr->preedit_area_needed.height;
-
-      arg->name = XNArea;
-      arg->value = (gpointer) &rect;
-
-      if (XSetICValues (xic, XNPreeditAttributes, arg, NULL))
-       error |= GDK_IC_PREEDIT_AREA_NEEDED;
-      else
-       private->mask &= ~GDK_IC_PREEDIT_AREA_NEEDED;
-    }
-
-  if (mask & GDK_IC_PREEDIT_FOREGROUND)
-    {
-      arg->name = XNForeground;
-      arg->value = (gpointer) attr->preedit_foreground.pixel;
-
-      if (XSetICValues (xic, XNPreeditAttributes, arg, NULL))
-       error |= GDK_IC_PREEDIT_FOREGROUND;
-    }
-
-  if (mask & GDK_IC_PREEDIT_BACKGROUND)
-    {
-      arg->name = XNBackground;
-      arg->value = (gpointer) attr->preedit_background.pixel;
-
-      if (XSetICValues (xic, XNPreeditAttributes, arg, NULL))
-       error |= GDK_IC_PREEDIT_BACKGROUND;
-    }
-
-  if (mask & GDK_IC_PREEDIT_PIXMAP)
-    {
-      arg->name = XNBackgroundPixmap;
-      arg->value = (gpointer) GDK_WINDOW_XWINDOW(attr->preedit_pixmap);
-
-      if (XSetICValues (xic, XNPreeditAttributes, arg, NULL))
-       error |= GDK_IC_PREEDIT_PIXMAP;
-    }
-
-  if (mask & GDK_IC_PREEDIT_COLORMAP)
-    {
-      arg->name = XNColormap;
-      arg->value = (gpointer) GDK_COLORMAP_XCOLORMAP(attr->preedit_colormap);
-
-      if (XSetICValues (xic, XNPreeditAttributes, arg, NULL))
-       error |= GDK_IC_PREEDIT_COLORMAP;
-    }
-
-
-  if (mask & GDK_IC_STATUS_FONTSET)
-    {
-      arg->name = XNFontSet;
-      arg->value = (gpointer) GDK_FONT_XFONT(attr->status_fontset);
-
-      if (XSetICValues (xic, XNStatusAttributes, arg, NULL))
-       error |= GDK_IC_STATUS_FONTSET;
-    }
-
-  if (mask & GDK_IC_STATUS_AREA)
-    {
-      XRectangle rect;
-
-      rect.x = attr->status_area.x;
-      rect.y = attr->status_area.y;
-      rect.width = attr->status_area.width;
-      rect.height = attr->status_area.height;
-
-      arg->name = XNArea;
-      arg->value = (gpointer) &rect;
-
-      if (XSetICValues (xic, XNStatusAttributes, arg, NULL))
-       error |= GDK_IC_STATUS_AREA;
-    }
-
-  if (mask & GDK_IC_STATUS_AREA_NEEDED)
-    {
-      XRectangle rect;
-
-      rect.x = attr->status_area_needed.x;
-      rect.y = attr->status_area_needed.y;
-      rect.width = attr->status_area_needed.width;
-      rect.height = attr->status_area_needed.height;
-
-      arg->name = XNArea;
-      arg->value = (gpointer) &rect;
-
-      if (XSetICValues (xic, XNStatusAttributes, arg, NULL))
-       error |= GDK_IC_STATUS_AREA_NEEDED;
-      else
-       private->mask &= ~GDK_IC_STATUS_AREA_NEEDED;
-    }
-
-  if (mask & GDK_IC_STATUS_FOREGROUND)
-    {
-      arg->name = XNForeground;
-      arg->value = (gpointer) attr->status_foreground.pixel;
-
-      if (XSetICValues (xic, XNStatusAttributes, arg, NULL))
-       error |= GDK_IC_STATUS_FOREGROUND;
-    }
-
-  if (mask & GDK_IC_STATUS_BACKGROUND)
-    {
-      arg->name = XNBackground;
-      arg->value = (gpointer) attr->status_background.pixel;
-
-      if (XSetICValues (xic, XNStatusAttributes, arg, NULL))
-       error |= GDK_IC_STATUS_BACKGROUND;
-    }
-
-  if (mask & GDK_IC_STATUS_PIXMAP)
-    {
-      arg->name = XNBackgroundPixmap;
-      arg->value = (gpointer) GDK_WINDOW_XWINDOW(attr->status_pixmap);
-
-      if (XSetICValues (xic, XNStatusAttributes, arg, NULL))
-       error |= GDK_IC_STATUS_PIXMAP;
-    }
-
-  if (mask & GDK_IC_STATUS_COLORMAP)
-    {
-      arg->name = XNColormap;
-      arg->value = (gpointer) GDK_COLORMAP_XCOLORMAP(attr->status_colormap);
-
-      if (XSetICValues (xic, XNStatusAttributes, arg, NULL))
-       error |= GDK_IC_STATUS_COLORMAP;
-    }
-
-  return error;
-}
-
-GdkICAttributesType
-gdk_ic_set_attr (GdkIC *ic,
-                GdkICAttr *attr,
-                GdkICAttributesType mask)
-{
-  GdkICPrivate *private;
-  GdkICAttr *pattr;
-  GdkICAttributesType error = 0;
-  GdkICAttributesType newattr = 0;
-
-  g_return_val_if_fail (ic != NULL, 0);
-  g_return_val_if_fail (attr != NULL, 0);
-
-  private = (GdkICPrivate *) ic;
-  pattr = private->attr;
-
-  /* Check and copy new attributes */
-
-  if (mask & GDK_IC_STYLE)
-    {
-      g_warning ("input style can be specified only when creating new ic.\n");
-      error |= GDK_IC_STYLE;
-    }
-
-  if (mask & GDK_IC_FILTER_EVENTS)
-    {
-      g_warning ("filter events is read only attributes.\n");
-      error |= GDK_IC_FILTER_EVENTS;
-    }
-
-  if (mask & GDK_IC_CLIENT_WINDOW)
-    {
-      g_warning ("client window can be specified only when creating new ic.\n");
-      error |= GDK_IC_CLIENT_WINDOW;
-    }
-
-  if (mask & GDK_IC_FOCUS_WINDOW)
-    {
-      if (attr->focus_window == NULL)
-       {
-         g_warning ("specified focus_window is invalid.\n");
-         error |= GDK_IC_FOCUS_WINDOW;
-       }
-      else if (pattr->focus_window != attr->focus_window)
-       {
-         if (pattr->focus_window != NULL)
-           gdk_window_unref (pattr->focus_window);
-         if (attr->focus_window != NULL)
-           gdk_window_ref (attr->focus_window);
-         pattr->focus_window = attr->focus_window;
-         newattr |= GDK_IC_FOCUS_WINDOW;
-       }
-    }
-
-  if (mask & GDK_IC_SPOT_LOCATION)
-    {
-      pattr->spot_location = attr->spot_location;
-      newattr |= GDK_IC_SPOT_LOCATION;
-    }
-
-  if (mask & GDK_IC_LINE_SPACING)
-    {
-      pattr->line_spacing = attr->line_spacing;
-      newattr |= GDK_IC_LINE_SPACING;
-    }
-
-  if (mask & GDK_IC_CURSOR)
-    {
-      pattr->cursor = attr->cursor;
-      newattr |= GDK_IC_CURSOR;
-    }
-
-  if (mask & GDK_IC_PREEDIT_FONTSET)
-    {
-      if (attr->preedit_fontset == NULL ||
-         attr->preedit_fontset->type != GDK_FONT_FONTSET)
-       {
-         g_warning ("gdk_font is NULL or not a fontset.\n");
-         error |= GDK_IC_PREEDIT_FONTSET;
-       }
-      else if (pattr->preedit_fontset != attr->preedit_fontset)
-       {
-         if (pattr->preedit_fontset != NULL)
-           gdk_font_unref (pattr->preedit_fontset);
-         if (attr->preedit_fontset != NULL)
-           gdk_font_ref (attr->preedit_fontset);
-         pattr->preedit_fontset = attr->preedit_fontset;
-         newattr |= GDK_IC_PREEDIT_FONTSET;
-       }
-    }
-
-  if (mask & GDK_IC_PREEDIT_AREA)
-    {
-      pattr->preedit_area = attr->preedit_area;
-      newattr |= GDK_IC_PREEDIT_AREA;
-    }
-
-  if (mask & GDK_IC_PREEDIT_AREA_NEEDED)
-    {
-      if (attr->preedit_area_needed.width == 0 ||
-         attr->preedit_area_needed.height == 0)
-       {
-         g_warning ("width and height of preedit_area_needed must be non 0.\n");
-         error |= GDK_IC_PREEDIT_AREA_NEEDED;
-       }
-      else
-       {
-         pattr->preedit_area_needed = attr->preedit_area_needed;
-         newattr |= GDK_IC_PREEDIT_AREA_NEEDED;
-       }
-    }
-
-  if (mask & GDK_IC_PREEDIT_FOREGROUND)
-    {
-      pattr->preedit_foreground = attr->preedit_foreground;
-      newattr |= GDK_IC_PREEDIT_FOREGROUND;
-    }
-
-  if (mask & GDK_IC_PREEDIT_BACKGROUND)
-    {
-      pattr->preedit_background = attr->preedit_background;
-      newattr |= GDK_IC_PREEDIT_BACKGROUND;
-    }
-
-  if (mask & GDK_IC_PREEDIT_PIXMAP)
-    {
-      if (attr->preedit_pixmap != NULL &&
-         GDK_WINDOW_DESTROYED (attr->preedit_pixmap))
-       {
-         g_warning ("Preedit pixmap is already destroyed.\n");
-         error |= GDK_IC_PREEDIT_PIXMAP;
-       }
-      else
-       {
-         if (pattr->preedit_pixmap != attr->preedit_pixmap)
-           {
-             if (pattr->preedit_pixmap != NULL)
-               gdk_pixmap_unref (pattr->preedit_pixmap);
-             if (attr->preedit_pixmap)
-               gdk_pixmap_ref (attr->preedit_pixmap);
-             pattr->preedit_pixmap = attr->preedit_pixmap;
-             newattr |= GDK_IC_PREEDIT_PIXMAP;
-           }
-       }
-    }
-
-  if (mask & GDK_IC_PREEDIT_COLORMAP)
-    {
-      if (pattr->preedit_colormap != attr->preedit_colormap)
-       {
-         if (pattr->preedit_colormap != NULL)
-           gdk_colormap_unref (pattr->preedit_colormap);
-         if (attr->preedit_colormap != NULL)
-           gdk_colormap_ref (attr->preedit_colormap);
-         pattr->preedit_colormap = attr->preedit_colormap;
-         newattr |= GDK_IC_PREEDIT_COLORMAP;
-       }
-    }
-
-  if (mask & GDK_IC_STATUS_FONTSET)
-    {
-      if (attr->status_fontset == NULL ||
-         attr->status_fontset->type != GDK_FONT_FONTSET)
-       {
-         g_warning ("gdk_font is NULL or not a fontset.\n");
-         error |= GDK_IC_STATUS_FONTSET;
-       }
-      else if (pattr->status_fontset != attr->status_fontset)
-       {
-         if (pattr->status_fontset != NULL)
-           gdk_font_unref (pattr->status_fontset);
-         if (attr->status_fontset != NULL)
-           gdk_font_ref (attr->status_fontset);
-         pattr->status_fontset = attr->status_fontset;
-         newattr |= GDK_IC_STATUS_FONTSET;
-       }
-    }
-
-  if (mask & GDK_IC_STATUS_AREA)
-    {
-      pattr->status_area = attr->status_area;
-      newattr |= GDK_IC_STATUS_AREA;
-    }
-
-  if (mask & GDK_IC_STATUS_AREA_NEEDED)
-    {
-      if (attr->status_area_needed.width == 0 ||
-         attr->status_area_needed.height == 0)
-       {
-         g_warning ("width and height of status_area_needed must be non 0.\n");
-         error |= GDK_IC_STATUS_AREA_NEEDED;
-       }
-      else
-       {
-         pattr->status_area_needed = attr->status_area_needed;
-         newattr |= GDK_IC_STATUS_AREA_NEEDED;
-       }
-    }
-
-  if (mask & GDK_IC_STATUS_FOREGROUND)
-    {
-      pattr->status_foreground = attr->status_foreground;
-      newattr |= GDK_IC_STATUS_FOREGROUND;
-    }
-
-  if (mask & GDK_IC_STATUS_BACKGROUND)
-    {
-      pattr->status_background = attr->status_background;
-      newattr |= GDK_IC_STATUS_BACKGROUND;
-    }
-
-  if (mask & GDK_IC_STATUS_PIXMAP)
-    {
-      if (attr->status_pixmap != NULL &&
-         GDK_WINDOW_DESTROYED (attr->status_pixmap))
-       {
-         g_warning ("Preedit pixmap is already destroyed.\n");
-         error |= GDK_IC_STATUS_PIXMAP;
-       }
-      else
-       {
-         if (pattr->status_pixmap != attr->status_pixmap)
-           {
-             if (pattr->status_pixmap != NULL)
-               gdk_pixmap_unref (pattr->status_pixmap);
-             if (attr->status_pixmap)
-               gdk_pixmap_ref (attr->status_pixmap);
-             pattr->status_pixmap = attr->status_pixmap;
-             newattr |= GDK_IC_STATUS_PIXMAP;
-           }
-       }
-    }
-
-  if (mask & GDK_IC_STATUS_COLORMAP)
-    {
-      if (pattr->status_colormap != attr->status_colormap)
-       {
-         if (pattr->status_colormap != NULL)
-           gdk_colormap_unref (pattr->status_colormap);
-         if (attr->status_colormap != NULL)
-           gdk_colormap_ref (attr->status_colormap);
-         pattr->status_colormap = attr->status_colormap;
-         newattr |= GDK_IC_STATUS_COLORMAP;
-       }
-    }
-
-  if (private->xic == NULL)
-    return error;
-
-  error |= gdk_ic_real_set_attr (ic, pattr, newattr);
-
-  return error;
-}
-
-GdkICAttributesType
-gdk_ic_get_attr (GdkIC *ic,
-                GdkICAttr *attr,
-                GdkICAttributesType mask)
-{
-  GdkICPrivate *private;
-  GdkICAttr *pattr;
-  GdkICAttributesType known, unknown = 0;
-
-  g_return_val_if_fail (ic != NULL, -1);
-  g_return_val_if_fail (attr != NULL, -1);
-
-  private = (GdkICPrivate *) ic;
-  pattr = private->attr;
-
-  known = mask & private->mask;
-
-  if (known & GDK_IC_STYLE)
-    attr->style = pattr->style;
-  if (known & GDK_IC_CLIENT_WINDOW)
-    attr->client_window = pattr->client_window;
-  if (known & GDK_IC_FOCUS_WINDOW)
-    attr->focus_window = pattr->focus_window;
-  if (known & GDK_IC_FILTER_EVENTS)
-    attr->filter_events = pattr->filter_events;
-  if (known & GDK_IC_LINE_SPACING)
-    attr->line_spacing = pattr->line_spacing;
-  if (known & GDK_IC_CURSOR)
-    attr->cursor = pattr->cursor;
-
-  if (known & GDK_IC_PREEDIT_FONTSET)
-    attr->preedit_fontset = pattr->preedit_fontset;
-  if (known & GDK_IC_PREEDIT_AREA)
-    attr->preedit_area = pattr->preedit_area;
-  if (known & GDK_IC_PREEDIT_AREA_NEEDED)
-    attr->preedit_area_needed = pattr->preedit_area_needed;
-  if (known & GDK_IC_PREEDIT_FOREGROUND)
-    attr->preedit_foreground = pattr->preedit_foreground;
-  if (known & GDK_IC_PREEDIT_BACKGROUND)
-    attr->preedit_background = pattr->preedit_background;
-  if (known & GDK_IC_PREEDIT_PIXMAP)
-    attr->preedit_pixmap = pattr->preedit_pixmap;
-  if (known & GDK_IC_PREEDIT_COLORMAP)
-    attr->preedit_colormap = pattr->preedit_colormap;
-
-  if (known & GDK_IC_STATUS_FONTSET)
-    attr->status_fontset = pattr->status_fontset;
-  if (known & GDK_IC_STATUS_AREA)
-    attr->status_area = pattr->status_area;
-  if (known & GDK_IC_STATUS_AREA_NEEDED)
-    attr->status_area_needed = pattr->status_area_needed;
-  if (known & GDK_IC_STATUS_FOREGROUND)
-    attr->status_foreground = pattr->status_foreground;
-  if (known & GDK_IC_STATUS_BACKGROUND)
-    attr->status_background = pattr->status_background;
-  if (known & GDK_IC_STATUS_PIXMAP)
-    attr->status_pixmap = pattr->status_pixmap;
-  if (known & GDK_IC_STATUS_COLORMAP)
-    attr->status_colormap = pattr->status_colormap;
-
-  if (private->xic)
-    {
-      unknown = mask & ~(private->mask);
-
-      if (unknown & GDK_IC_FOCUS_WINDOW)
-       attr->focus_window = pattr->client_window;
-      if (unknown & GDK_IC_FILTER_EVENTS)
-       {
-         gdk_ic_get_events (ic);
-         attr->filter_events = pattr->filter_events;
-       }
-      if (mask & GDK_IC_SPOT_LOCATION)
-       {
-         XPoint point;
-         XVaNestedList *list;
-         
-         list = XVaCreateNestedList (0, XNSpotLocation, &point, NULL);
-         if (XGetICValues (private->xic, XNPreeditAttributes, list, NULL))
-           unknown &= ~GDK_IC_SPOT_LOCATION;
-         else
-           {
-             pattr->spot_location.x = point.x;
-             pattr->spot_location.y = point.y;
-             private->mask |= GDK_IC_SPOT_LOCATION;
-
-             attr->spot_location = pattr->spot_location;
-           }
-         XFree (list);
-       }
-      if (unknown & GDK_IC_PREEDIT_AREA_NEEDED)
-       {
-         XRectangle rect;
-         XVaNestedList *list;
-
-         list = XVaCreateNestedList (0, XNAreaNeeded, &rect, NULL);
-         if (XGetICValues (private->xic, XNPreeditAttributes, list, NULL))
-           unknown &= ~GDK_IC_PREEDIT_AREA_NEEDED;
-         else
-           {
-             pattr->preedit_area_needed.x = rect.x;
-             pattr->preedit_area_needed.y = rect.y;
-             pattr->preedit_area_needed.width = rect.width;
-             pattr->preedit_area_needed.height = rect.height;
-             private->mask |= GDK_IC_PREEDIT_AREA_NEEDED;
-
-             attr->preedit_area = pattr->preedit_area;
-           }
-         XFree (list);
-       }
-      if (unknown & GDK_IC_STATUS_AREA_NEEDED)
-       {
-         XRectangle rect;
-         XVaNestedList *list;
-
-         list = XVaCreateNestedList (0, XNAreaNeeded, &rect, NULL);
-         if (XGetICValues (private->xic, XNStatusAttributes, list, NULL))
-           unknown &= ~GDK_IC_STATUS_AREA_NEEDED;
-         else
-           {
-             pattr->status_area_needed.x = rect.x;
-             pattr->status_area_needed.y = rect.y;
-             pattr->status_area_needed.width = rect.width;
-             pattr->status_area_needed.height = rect.height;
-             private->mask |= GDK_IC_STATUS_AREA_NEEDED;
-
-             attr->status_area = pattr->status_area;
-           }
-         XFree (list);
-       }
-    }
-
-  return mask & ~known & ~unknown;
-}
-
-GdkEventMask 
-gdk_ic_get_events (GdkIC *ic)
-{
-  GdkEventMask mask;
-  glong xmask;
-  glong bit;
-  GdkICPrivate *private;
-  gint i;
-  
-  /*  From gdkwindow.c */
-  
-  g_return_val_if_fail (ic != NULL, 0);
-  
-  private = (GdkICPrivate *) ic;
-
-  if (private->mask & GDK_IC_FILTER_EVENTS)
-    return private->attr->filter_events;
-  
-  if (XGetICValues (private->xic, XNFilterEvents, &xmask, NULL) != NULL)
-    {
-      GDK_NOTE (XIM, g_warning ("Call to XGetICValues: %s failed", XNFilterEvents));
-      return 0;
-    }
-  
-  mask = 0;
-  for (i=0, bit=2; i < gdk_nevent_masks; i++, bit <<= 1)
-    if (xmask & gdk_event_mask_table [i])
-      {
-       mask |= bit;
-       xmask &= ~ gdk_event_mask_table [i];
-      }
-  
-  if (xmask)
-    g_warning ("ic requires events not supported by the application (%#04lx)", xmask);
-  
-  private->attr->filter_events = mask;
-  private->mask |= GDK_IC_FILTER_EVENTS;
-
-  return mask;
-}
-
-void 
-gdk_ic_cleanup (void)
-{
-  gint destroyed;
-  
-  destroyed = 0;
-  while (xim_ic_list != NULL)
-    {
-      gdk_ic_destroy ((GdkIC *) xim_ic_list->data);
-      destroyed ++;
-    }
-#ifdef G_ENABLE_DEBUG
-  if ((gdk_debug_flags & GDK_DEBUG_XIM) && destroyed > 0)
-    {
-      g_warning ("Cleaned up %i IC(s)\n", destroyed);
-    }
-#endif /* G_ENABLE_DEBUG */
-}
-
-#else /* !USE_XIM */
-
-void 
-gdk_im_begin (GdkIC *ic, GdkWindow* window)
-{
-}
-
-void 
-gdk_im_end (void)
-{
-}
-
-GdkIMStyle
-gdk_im_decide_style (GdkIMStyle supported_style)
-{
-  return GDK_IM_PREEDIT_NONE | GDK_IM_STATUS_NONE;
-}
-
-GdkIMStyle
-gdk_im_set_best_style (GdkIMStyle style)
-{
-  return GDK_IM_PREEDIT_NONE | GDK_IM_STATUS_NONE;
-}
-
-gint 
-gdk_im_ready (void)
-{
-  return FALSE;
-}
-
-GdkIC * 
-gdk_ic_new (GdkICAttr *attr, GdkICAttributesType mask)
-{
-  return NULL;
-}
-
-void 
-gdk_ic_destroy (GdkIC *ic)
-{
-}
-
-GdkIMStyle
-gdk_ic_get_style (GdkIC *ic)
-{
-  return GDK_IM_PREEDIT_NONE | GDK_IM_STATUS_NONE;
-}
-
-void 
-gdk_ic_set_values (GdkIC *ic, ...)
-{
-}
-
-void 
-gdk_ic_get_values (GdkIC *ic, ...)
-{
-}
-
-GdkICAttributesType 
-gdk_ic_set_attr (GdkIC *ic, GdkICAttr *attr, GdkICAttributesType mask)
-{
-  return 0;
-}
-
-GdkICAttributesType 
-gdk_ic_get_attr (GdkIC *ic, GdkICAttr *attr, GdkICAttributesType mask)
-{
-  return 0;
-}
-
-GdkEventMask 
-gdk_ic_get_events (GdkIC *ic)
-{
-  return 0;
-}
-
-#endif /* USE_XIM */
-
 /*
  * gdk_wcstombs 
  *
index 76a1ab19153c858922a080814cf6ffe57e67622a..c6321e1b861b69c11773728a7fd093cc9408b16f 100644 (file)
@@ -110,34 +110,6 @@ static const int gdk_ndebug_keys = sizeof(gdk_debug_keys)/sizeof(GDebugKey);
 
 #endif /* G_ENABLE_DEBUG */
 
-static void
-gdk_arg_xim_preedit_cb (const gchar *arg, const gchar *value, gpointer cb_data)
-{
-  if (strcmp ("none", value) == 0)
-    gdk_im_set_best_style (GDK_IM_PREEDIT_NONE);
-  else if (strcmp ("nothing", value) == 0)
-    gdk_im_set_best_style (GDK_IM_PREEDIT_NOTHING);
-  else if (strcmp ("area", value) == 0)
-    gdk_im_set_best_style (GDK_IM_PREEDIT_AREA);
-  else if (strcmp ("position", value) == 0)
-    gdk_im_set_best_style (GDK_IM_PREEDIT_POSITION);
-  else if (strcmp ("callbacks", value) == 0)
-    gdk_im_set_best_style (GDK_IM_PREEDIT_CALLBACKS);
-}
-
-static void
-gdk_arg_xim_status_cb (const gchar *arg, const gchar *value, gpointer cb_data)
-{
-  if (strcmp ("none", value) == 0)
-    gdk_im_set_best_style (GDK_IM_STATUS_NONE);
-  else if (strcmp ("nothing", value) == 0)
-    gdk_im_set_best_style (GDK_IM_STATUS_NOTHING);
-  else if (strcmp ("area", value) == 0)
-    gdk_im_set_best_style (GDK_IM_STATUS_AREA);
-  else if (strcmp ("callbacks", value) == 0)
-    gdk_im_set_best_style (GDK_IM_STATUS_CALLBACKS);
-}
-
 GdkArgDesc _gdk_windowing_args[] = {
   { "display",     GDK_ARG_STRING,   &gdk_display_name,    (GdkArgFunc)NULL   },
   { "sync",        GDK_ARG_BOOL,     &gdk_synchronize,     (GdkArgFunc)NULL   },
@@ -145,8 +117,6 @@ GdkArgDesc _gdk_windowing_args[] = {
   { "class",       GDK_ARG_STRING,   &gdk_progclass,       (GdkArgFunc)NULL   },
   { "gxid-host",   GDK_ARG_STRING,   &gdk_input_gxid_host, (GdkArgFunc)NULL   },
   { "gxid-port",   GDK_ARG_INT,      &gdk_input_gxid_port, (GdkArgFunc)NULL   },
-  { "xim-preedit", GDK_ARG_CALLBACK, NULL,                 gdk_arg_xim_preedit_cb },
-  { "xim-status",  GDK_ARG_CALLBACK, NULL,                 gdk_arg_xim_status_cb  },
   { NULL }
 };
 
index 24f7075c40ac30f8a21ac302a6167f0f94806364..f864a6b0a58b5c43aae09823b41ecd93417bbfa3 100644 (file)
@@ -106,16 +106,12 @@ extern GdkWindowObject *gdk_xgrab_window;  /* Window that currently holds the
                                            * x pointer grab
                                            */
 
-#ifdef USE_XIM
-extern GdkICPrivate *gdk_xim_ic;               /* currently using IC */
-extern GdkWindow *gdk_xim_window;              /* currently using Window */
-#endif /* USE_XIM */
-
 /* Used to detect not-up-to-date keymap */
 extern guint _gdk_keymap_serial;
 
 #ifdef HAVE_XKB
 extern gboolean _gdk_use_xkb;
+extern gboolean _gdk_have_xkb_autorepeat;
 #endif
 
 /* Whether we were able to turn on detectable-autorepeat using
index acb62026756be3b7a1c3ac53ea2abb42ee606693..ab54d4e7583adc8bd7fefd0cc606dd0a40b75d71 100644 (file)
@@ -42,10 +42,6 @@ typedef struct _GdkFontPrivateX        GdkFontPrivateX;
 typedef struct _GdkImagePrivateX11    GdkImagePrivateX11;
 typedef struct _GdkVisualPrivate       GdkVisualPrivate;
 
-#ifdef USE_XIM
-typedef struct _GdkICPrivate        GdkICPrivate;
-#endif /* USE_XIM */
-
 struct _GdkCursorPrivate
 {
   GdkCursor cursor;
@@ -89,18 +85,6 @@ struct _GdkImagePrivateX11
 };
 
 
-#ifdef USE_XIM
-
-struct _GdkICPrivate
-{
-  XIC xic;
-  GdkICAttr *attr;
-  GdkICAttributesType mask;
-};
-
-#endif /* USE_XIM */
-
-
 typedef struct _GdkGCX11      GdkGCX11;
 typedef struct _GdkGCX11Class GdkGCX11Class;
 
index 6a0c8a0f296d6562d1a61fffbb17a462bb3c875e..c28dbc6362c2e6d5eb2598b092d387482cbaf810 100644 (file)
@@ -433,10 +433,6 @@ gtk_old_editable_init (GtkOldEditable *old_editable)
   old_editable->visible = 1;
   old_editable->clipboard_text = NULL;
 
-#ifdef USE_XIM
-  old_editable->ic = NULL;
-#endif
-
   gtk_selection_add_targets (GTK_WIDGET (old_editable), GDK_SELECTION_PRIMARY,
                             targets, G_N_ELEMENTS (targets));
 }
index 702332331ee009c34e3cfef5ecd7597992f99f9d..896f1d8ec20bc83bd83325c70a6ee678cc0a56d1 100644 (file)
@@ -66,8 +66,6 @@ struct _GtkOldEditable
   /*< private >*/
   guint      editable : 1;
   guint      visible : 1;
-  GdkIC     *ic;
-  GdkICAttr *ic_attr;
   
   gchar *clipboard_text;
 };
index eba3960fc2125105c60cca413dd7e5e039ea0f44..9a9829b45e5f9ed8bbd98d0cdfed8b90b283b7ee 100644 (file)
@@ -1342,71 +1342,6 @@ gtk_text_realize (GtkWidget *widget)
   gdk_gc_set_exposures (text->gc, TRUE);
   gdk_gc_set_foreground (text->gc, &widget->style->text[GTK_STATE_NORMAL]);
   
-#ifdef USE_XIM
-  if (gdk_im_ready () && (old_editable->ic_attr = gdk_ic_attr_new ()) != NULL)
-    {
-      gint width, height;
-      GdkColormap *colormap;
-      GdkEventMask mask;
-      GdkICAttr *attr = old_editable->ic_attr;
-      GdkICAttributesType attrmask = GDK_IC_ALL_REQ;
-      GdkIMStyle style;
-      GdkIMStyle supported_style = GDK_IM_PREEDIT_NONE | 
-                                  GDK_IM_PREEDIT_NOTHING |
-                                  GDK_IM_PREEDIT_POSITION |
-                                  GDK_IM_STATUS_NONE |
-                                  GDK_IM_STATUS_NOTHING;
-      
-      if (widget->style && widget->style->font->type != GDK_FONT_FONTSET)
-       supported_style &= ~GDK_IM_PREEDIT_POSITION;
-      
-      attr->style = style = gdk_im_decide_style (supported_style);
-      attr->client_window = text->text_area;
-
-      if ((colormap = gtk_widget_get_colormap (widget)) !=
-         gtk_widget_get_default_colormap ())
-       {
-         attrmask |= GDK_IC_PREEDIT_COLORMAP;
-         attr->preedit_colormap = colormap;
-       }
-
-      switch (style & GDK_IM_PREEDIT_MASK)
-       {
-       case GDK_IM_PREEDIT_POSITION:
-         if (widget->style && widget->style->font->type != GDK_FONT_FONTSET)
-           {
-             g_warning ("over-the-spot style requires fontset");
-             break;
-           }
-
-         attrmask |= GDK_IC_PREEDIT_POSITION_REQ;
-         gdk_window_get_size (text->text_area, &width, &height);
-         attr->spot_location.x = 0;
-         attr->spot_location.y = height;
-         attr->preedit_area.x = 0;
-         attr->preedit_area.y = 0;
-         attr->preedit_area.width = width;
-         attr->preedit_area.height = height;
-         attr->preedit_fontset = widget->style->font;
-         
-         break;
-       }
-      old_editable->ic = gdk_ic_new (attr, attrmask);
-      
-      if (old_editable->ic == NULL)
-       g_warning ("Can't create input context.");
-      else
-       {
-         mask = gdk_window_get_events (text->text_area);
-         mask |= gdk_ic_get_events (old_editable->ic);
-         gdk_window_set_events (text->text_area, mask);
-         
-         if (GTK_WIDGET_HAS_FOCUS (widget))
-           gdk_im_begin (old_editable->ic, text->text_area);
-       }
-    }
-#endif
-
   realize_properties (text);
   gdk_window_show (text->text_area);
   init_properties (text);
@@ -1468,19 +1403,6 @@ gtk_text_unrealize (GtkWidget *widget)
   
   text = GTK_TEXT (widget);
 
-#ifdef USE_XIM
-  if (GTK_OLD_EDITABLE (widget)->ic)
-    {
-      gdk_ic_destroy (GTK_OLD_EDITABLE (widget)->ic);
-      GTK_OLD_EDITABLE (widget)->ic = NULL;
-    }
-  if (GTK_OLD_EDITABLE (widget)->ic_attr)
-    {
-      gdk_ic_attr_destroy (GTK_OLD_EDITABLE (widget)->ic_attr);
-      GTK_OLD_EDITABLE (widget)->ic_attr = NULL;
-    }
-#endif
-
   gdk_window_set_user_data (text->text_area, NULL);
   gdk_window_destroy (text->text_area);
   text->text_area = NULL;
@@ -1662,20 +1584,6 @@ gtk_text_size_allocate (GtkWidget     *widget,
                              MAX (1, (gint)widget->allocation.height - (gint)(widget->style->ythickness +
                                                           (gint)TEXT_BORDER_ROOM) * 2));
       
-#ifdef USE_XIM
-      if (old_editable->ic && (gdk_ic_get_style (old_editable->ic) & GDK_IM_PREEDIT_POSITION))
-       {
-         gint width, height;
-         
-         gdk_window_get_size (text->text_area, &width, &height);
-         old_editable->ic_attr->preedit_area.width = width;
-         old_editable->ic_attr->preedit_area.height = height;
-
-         gdk_ic_set_attr (old_editable->ic,
-                          old_editable->ic_attr, GDK_IC_PREEDIT_AREA);
-       }
-#endif
-      
       recompute_geometry (text);
     }
 }
@@ -2232,11 +2140,6 @@ gtk_text_focus_in (GtkWidget     *widget,
   
   TDEBUG (("in gtk_text_focus_in\n"));
   
-#ifdef USE_XIM
-  if (GTK_OLD_EDITABLE (widget)->ic)
-    gdk_im_begin (GTK_OLD_EDITABLE (widget)->ic, GTK_TEXT(widget)->text_area);
-#endif
-  
   return (* GTK_WIDGET_CLASS (parent_class)->focus_in_event) (widget, event);
 }
 
@@ -2250,10 +2153,6 @@ gtk_text_focus_out (GtkWidget     *widget,
   
   TDEBUG (("in gtk_text_focus_out\n"));
   
-#ifdef USE_XIM
-  gdk_im_end ();
-#endif
-
   return (* GTK_WIDGET_CLASS (parent_class)->focus_out_event) (widget, event);
 }
 
@@ -3742,30 +3641,6 @@ find_cursor_at_line (GtkText* text, const LineParams* start_line, gint pixel_hei
     text->cursor_char = 0;
   else
     text->cursor_char = ch;
-    
-#ifdef USE_XIM
-  if (GTK_WIDGET_HAS_FOCUS(text) && gdk_im_ready() && old_editable->ic && 
-      (gdk_ic_get_style (old_editable->ic) & GDK_IM_PREEDIT_POSITION))
-    {
-      GdkICAttributesType mask = GDK_IC_SPOT_LOCATION |
-                                GDK_IC_PREEDIT_FOREGROUND |
-                                GDK_IC_PREEDIT_BACKGROUND;
-
-      old_editable->ic_attr->spot_location.x = text->cursor_pos_x;
-      old_editable->ic_attr->spot_location.y
-       = text->cursor_pos_y - text->cursor_char_offset;
-      old_editable->ic_attr->preedit_foreground = *MARK_CURRENT_FORE (text, &mark);
-      old_editable->ic_attr->preedit_background = *MARK_CURRENT_BACK (text, &mark);
-
-      if (MARK_CURRENT_FONT (text, &mark)->type == GDK_FONT_FONTSET)
-       {
-         mask |= GDK_IC_PREEDIT_FONTSET;
-         old_editable->ic_attr->preedit_fontset = MARK_CURRENT_FONT (text, &mark);
-       }
-      
-      gdk_ic_set_attr (old_editable->ic, old_editable->ic_attr, mask);
-    }
-#endif 
 }
 
 static void