diff -crN ./gtk+/configure.in /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/configure.in
*** ./gtk+/configure.in	Tue Oct  3 18:54:09 2006
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/configure.in	Thu Oct 12 15:33:02 2006
***************
*** 1472,1478 ****
    GDK_PACKAGES="$GDK_PACKAGES $X_PACKAGES"
  fi
  GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
! GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
  
  #
  # If we aren't writing explicit dependencies, then don't put the extra libraries we need
--- 1472,1478 ----
    GDK_PACKAGES="$GDK_PACKAGES $X_PACKAGES"
  fi
  GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
! GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $X_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
  
  #
  # If we aren't writing explicit dependencies, then don't put the extra libraries we need
diff -crN ./gtk+/demos/Makefile.am /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/demos/Makefile.am
*** ./gtk+/demos/Makefile.am	Sun Jan 29 05:00:39 2006
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/demos/Makefile.am	Fri Oct 20 18:11:09 2006
***************
*** 24,33 ****
  noinst_PROGRAMS = 		\
  	testpixbuf-drawable 	\
  	testanimation 		\
- 	testpixbuf-save		\
  	testpixbuf-scale 	\
  	pixbuf-demo
  
  # Need to build test-inline-pixbufs.h for testpixbuf
  if HAVE_PNG
  noinst_PROGRAMS += testpixbuf
--- 24,34 ----
  noinst_PROGRAMS = 		\
  	testpixbuf-drawable 	\
  	testanimation 		\
  	testpixbuf-scale 	\
  	pixbuf-demo
  
+ # testpixbuf-save		
+ 
  # Need to build test-inline-pixbufs.h for testpixbuf
  if HAVE_PNG
  noinst_PROGRAMS += testpixbuf
***************
*** 46,53 ****
  	$(pixbuf_csource) --raw --build-list		\
  	        apple_red  $(srcdir)/apple-red.png	\
                  gnome_foot $(srcdir)/gnome-foot.png	\
!         > test-inline-pixbufs.h				\
! 	|| (rm -f test-inline-pixbufs.h && false)
  
  testpixbuf_DEPENDENCIES = $(DEPS)
  testpixbuf_drawable_DEPENDENCIES = $(DEPS)
--- 47,54 ----
  	$(pixbuf_csource) --raw --build-list		\
  	        apple_red  $(srcdir)/apple-red.png	\
                  gnome_foot $(srcdir)/gnome-foot.png	\
!         > test-inline-pixbufs.h.X			\
! 	&& mv test-inline-pixbufs.h.X test-inline-pixbufs.h
  
  testpixbuf_DEPENDENCIES = $(DEPS)
  testpixbuf_drawable_DEPENDENCIES = $(DEPS)
diff -crN ./gtk+/gdk-pixbuf/io-png.c /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/gdk-pixbuf/io-png.c
*** ./gtk+/gdk-pixbuf/io-png.c	Fri Feb 10 20:02:38 2006
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/gdk-pixbuf/io-png.c	Thu Oct 12 15:33:22 2006
***************
*** 184,190 ****
                               error_msg);
          }
  
!         longjmp (png_save_ptr->jmpbuf, 1);
  }
  
  static void
--- 184,191 ----
                               error_msg);
          }
  
! 	longjmp (png_jmpbuf (png_save_ptr), 1);
! /*        longjmp (png_save_ptr->jmpbuf, 1); */
  }
  
  static void
***************
*** 272,278 ****
  		return NULL;
  	}
  
! 	if (setjmp (png_ptr->jmpbuf)) {
  	    	if (rows)
  		  	g_free (rows);
  
--- 273,280 ----
  		return NULL;
  	}
  
! /*	if (setjmp (png_ptr->jmpbuf)) { */
! 	if (setjmp (png_jmpbuf(png_ptr))) {
  	    	if (rows)
  		  	g_free (rows);
  
***************
*** 433,439 ****
                  return NULL;
          }
          
! 	if (setjmp (lc->png_read_ptr->jmpbuf)) {
  		if (lc->png_info_ptr)
  			png_destroy_read_struct(&lc->png_read_ptr, NULL, NULL);
                  g_free(lc);
--- 435,442 ----
                  return NULL;
          }
          
! /*	if (setjmp (lc->png_read_ptr->jmpbuf)) { */
! 	if (setjmp (png_jmpbuf(lc->png_read_ptr))) {
  		if (lc->png_info_ptr)
  			png_destroy_read_struct(&lc->png_read_ptr, NULL, NULL);
                  g_free(lc);
***************
*** 505,511 ****
          lc->error = error;
          
          /* Invokes our callbacks as needed */
! 	if (setjmp (lc->png_read_ptr->jmpbuf)) {
                  lc->error = NULL;
  		return FALSE;
  	} else {
--- 508,515 ----
          lc->error = error;
          
          /* Invokes our callbacks as needed */
! /*	if (setjmp (lc->png_read_ptr->jmpbuf)) { */
! 	if (setjmp (png_jmpbuf(lc->png_read_ptr))) {
                  lc->error = NULL;
  		return FALSE;
  	} else {
***************
*** 719,725 ****
                               error_msg);
          }
  
!         longjmp (png_read_ptr->jmpbuf, 1);
  }
  
  static void
--- 723,730 ----
                               error_msg);
          }
  
! /*        longjmp (png_read_ptr->jmpbuf, 1); */
! 	longjmp (png_jmpbuf(png_read_ptr));
  }
  
  static void
***************
*** 909,915 ****
  	       success = FALSE;
  	       goto cleanup;
         }
!        if (setjmp (png_ptr->jmpbuf)) {
  	       success = FALSE;
  	       goto cleanup;
         }
--- 914,922 ----
  	       success = FALSE;
  	       goto cleanup;
         }
! 
! /*       if (setjmp (png_ptr->jmpbuf)) { */
! 	if (setjmp (png_jmpbuf(png_ptr))) {
  	       success = FALSE;
  	       goto cleanup;
         }
diff -crN ./gtk+/gdk/x11/gdkevents-x11.c /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/gdk/x11/gdkevents-x11.c
*** ./gtk+/gdk/x11/gdkevents-x11.c	Thu Jun 29 17:13:56 2006
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/gdk/x11/gdkevents-x11.c	Thu Oct 12 15:33:42 2006
***************
*** 39,44 ****
--- 39,45 ----
  #include "xsettings-client.h"
  
  #include <string.h>
+ #include <stdlib.h>
  
  #include "gdkinputprivate.h"
  
***************
*** 1265,1271 ****
  	}
        
        /* Handle focusing (in the case where no window manager is running */
!       if (toplevel && xevent->xcrossing.detail != NotifyInferior)
  	{
  	  toplevel->has_pointer = TRUE;
  
--- 1266,1274 ----
  	}
        
        /* Handle focusing (in the case where no window manager is running */
!       if (toplevel &&
! 	  xevent->xcrossing.detail != NotifyInferior &&
! 	  xevent->xcrossing.focus && !toplevel->has_focus_window)
  	{
  	  toplevel->has_pointer = TRUE;
  
***************
*** 2227,2246 ****
    GdkEvent *event;
    XEvent xevent;
    Display *xdisplay = GDK_DISPLAY_XDISPLAY (display);
  
    while (!_gdk_event_queue_find_first(display) && XPending (xdisplay))
      {
        XNextEvent (xdisplay, &xevent);
  
        switch (xevent.type)
! 	{
! 	case KeyPress:
! 	case KeyRelease:
! 	  break;
! 	default:
! 	  if (XFilterEvent (&xevent, None))
! 	    continue;
! 	}
        
        event = gdk_event_new (GDK_NOTHING);
        
--- 2230,2270 ----
    GdkEvent *event;
    XEvent xevent;
    Display *xdisplay = GDK_DISPLAY_XDISPLAY (display);
+   const char *xmod;
+   const char *xlang;
+   const char *im="@im";
+   const char *wn="XWNMO";
+   const char *wnn8="htt";
+   const char *jp1="JA_JP";
+   const char *jp2="Ja_JP";
+   const char *jp3="ja_JP";
  
    while (!_gdk_event_queue_find_first(display) && XPending (xdisplay))
      {
        XNextEvent (xdisplay, &xevent);
  
+ /* Workaround to use Wnn7 im with Japanese Environment */
+ 
+    xmod= getenv("XMODIFIERS");
+    xlang= getenv("LANG");
+ 
+    if((strstr(xmod,im) != NULL) && ((strstr(xmod,wn) != NULL)||(strstr(xmod,wnn8) != NULL)) && ( (strcmp(xlang,jp1) == 0) || (strcmp(xlang,jp2) == 0) || (strcmp(xlang,jp3) == 0))) {
+ 
        switch (xevent.type)
!         {
!         case KeyPress:
!         case KeyRelease:
!           break;
!         default:
!           if (XFilterEvent (&xevent, None))
!             continue;
!         }
!    }
!    else {
!           if (XFilterEvent (&xevent, None))
!             continue;
!    }
! /* End Workaround */
        
        event = gdk_event_new (GDK_NOTHING);
        
***************
*** 2610,2623 ****
    if (gdk_error_trap_pop () == Success)
      {
        screen_x11->wmspec_check_window = *xwindow;
        screen_x11->need_refetch_net_supported = TRUE;
        screen_x11->need_refetch_wm_name = TRUE;
        
        /* Careful, reentrancy */
        _gdk_x11_screen_window_manager_changed (GDK_SCREEN (screen_x11));
      }
- 
-   XFree (xwindow);    
  }
  
  /**
--- 2634,2647 ----
    if (gdk_error_trap_pop () == Success)
      {
        screen_x11->wmspec_check_window = *xwindow;
+       XFree (xwindow);
+       
        screen_x11->need_refetch_net_supported = TRUE;
        screen_x11->need_refetch_wm_name = TRUE;
        
        /* Careful, reentrancy */
        _gdk_x11_screen_window_manager_changed (GDK_SCREEN (screen_x11));
      }
  }
  
  /**
diff -crN ./gtk+/gtk/Makefile.am /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/gtk/Makefile.am
*** ./gtk+/gtk/Makefile.am	Mon Oct  2 19:27:53 2006
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/gtk/Makefile.am	Fri Oct 20 10:56:52 2006
***************
*** 106,112 ****
  libadd =								\
  	$(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la	\
  	$(top_builddir)/gdk/$(gdktargetlib)				\
! 	$(GTK_DEP_LIBS)
  
  if OS_UNIX
  libadd += xdgmime/libxdgmime.la
--- 106,113 ----
  libadd =								\
  	$(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la	\
  	$(top_builddir)/gdk/$(gdktargetlib)				\
! 	$(GTK_DEP_LIBS)							\
! 	$(GDK_DEP_LIBS)
  
  if OS_UNIX
  libadd += xdgmime/libxdgmime.la
***************
*** 796,808 ****
  libgtk_quartz_2_0_la_SOURCES = $(gtk_c_sources)
  libgtk_directfb_2_0_la_SOURCES = $(gtk_c_sources)
  
! libgtk_x11_2_0_la_LDFLAGS = $(libtool_opts)
  libgtk_linux_fb_2_0_la_LDFLAGS = $(libtool_opts)
  libgtk_win32_2_0_la_LDFLAGS = $(libtool_opts)
  libgtk_quartz_2_0_la_LDFLAGS = $(libtool_opts)
  libgtk_directfb_2_0_la_LDFLAGS = $(libtool_opts)
  
! libgtk_x11_2_0_la_LIBADD = $(libadd)
  libgtk_linux_fb_2_0_la_LIBADD = $(libadd)
  libgtk_win32_2_0_la_LIBADD = $(libadd) -lole32 -lgdi32 -lcomdlg32 -lwinspool -lcomctl32 -luuid
  libgtk_win32_2_0_la_DEPENDENCIES = $(gtk_def) $(gtk_win32_res)
--- 797,809 ----
  libgtk_quartz_2_0_la_SOURCES = $(gtk_c_sources)
  libgtk_directfb_2_0_la_SOURCES = $(gtk_c_sources)
  
! libgtk_x11_2_0_la_LDFLAGS = $(libtool_opts) -Wl,-bbigtoc
  libgtk_linux_fb_2_0_la_LDFLAGS = $(libtool_opts)
  libgtk_win32_2_0_la_LDFLAGS = $(libtool_opts)
  libgtk_quartz_2_0_la_LDFLAGS = $(libtool_opts)
  libgtk_directfb_2_0_la_LDFLAGS = $(libtool_opts)
  
! libgtk_x11_2_0_la_LIBADD = $(libadd) -lX11 
  libgtk_linux_fb_2_0_la_LIBADD = $(libadd)
  libgtk_win32_2_0_la_LIBADD = $(libadd) -lole32 -lgdi32 -lcomdlg32 -lwinspool -lcomctl32 -luuid
  libgtk_win32_2_0_la_DEPENDENCIES = $(gtk_def) $(gtk_win32_res)
diff -crN ./gtk+/gtk/gtkfilechooserbutton.c /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/gtk/gtkfilechooserbutton.c
*** ./gtk+/gtk/gtkfilechooserbutton.c	Sat Sep 30 15:27:15 2006
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/gtk/gtkfilechooserbutton.c	Thu Oct 19 15:38:07 2006
***************
*** 154,174 ****
    guint8 n_volumes;
    guint8 n_shortcuts;
    guint8 n_bookmarks;
!   guint8 has_bookmark_separator       : 1;
!   guint8 has_current_folder_separator : 1;
!   guint8 has_current_folder           : 1;
!   guint8 has_other_separator          : 1;
  
    /* Used for hiding/showing the dialog when the button is hidden */
!   guint8 active                       : 1;
  
    /* Used to remember whether a title has been set yet, so we can use the default if it has not been set. */
!   guint8 has_title                    : 1;
  
    /* Used to track whether we need to set a default current folder on ::map() */
!   guint8 folder_has_been_set          : 1;
  
!   guint8 focus_on_click               : 1;
  };
  
  
--- 154,174 ----
    guint8 n_volumes;
    guint8 n_shortcuts;
    guint8 n_bookmarks;
!   unsigned int has_bookmark_separator       : 1;
!   unsigned int has_current_folder_separator : 1;
!   unsigned int has_current_folder           : 1;
!   unsigned int has_other_separator          : 1;
  
    /* Used for hiding/showing the dialog when the button is hidden */
!   unsigned int active                       : 1;
  
    /* Used to remember whether a title has been set yet, so we can use the default if it has not been set. */
!   unsigned int has_title                    : 1;
  
    /* Used to track whether we need to set a default current folder on ::map() */
!   unsigned int folder_has_been_set          : 1;
  
!   unsigned int focus_on_click               : 1;
  };
  
  
***************
*** 1083,1090 ****
        }
        break;
  
!     case TEXT_PLAIN:
!       text = (char*) gtk_selection_data_get_text (data);
        path = gtk_file_path_new_steal (text);
        _gtk_file_chooser_select_path (GTK_FILE_CHOOSER (priv->dialog), path,
  				     NULL);
--- 1083,1090 ----
        }
        break;
  
!     case TEXT_PLAIN:      text = (char*) gtk_selection_data_get_text (data);
! 
        path = gtk_file_path_new_steal (text);
        _gtk_file_chooser_select_path (GTK_FILE_CHOOSER (priv->dialog), path,
  				     NULL);
diff -crN ./gtk+/gtk/gtktextbuffer.h /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/gtk/gtktextbuffer.h
*** ./gtk+/gtk/gtktextbuffer.h	Wed Mar 22 11:39:51 2006
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/gtk/gtktextbuffer.h	Thu Oct 19 15:37:22 2006
***************
*** 49,57 ****
   */
  typedef enum
  {
!   GTK_TEXT_BUFFER_TARGET_INFO_BUFFER_CONTENTS = G_MAXUINT - 0,
!   GTK_TEXT_BUFFER_TARGET_INFO_RICH_TEXT       = G_MAXUINT - 1,
!   GTK_TEXT_BUFFER_TARGET_INFO_TEXT            = G_MAXUINT - 2
  } GtkTextBufferTargetInfo;
  
  typedef struct _GtkTextBTree GtkTextBTree;
--- 49,57 ----
   */
  typedef enum
  {
!   GTK_TEXT_BUFFER_TARGET_INFO_BUFFER_CONTENTS = G_MAXINT - 0,
!   GTK_TEXT_BUFFER_TARGET_INFO_RICH_TEXT       = G_MAXINT - 1,
!   GTK_TEXT_BUFFER_TARGET_INFO_TEXT            = G_MAXINT - 2
  } GtkTextBufferTargetInfo;
  
  typedef struct _GtkTextBTree GtkTextBTree;
diff -crN ./gtk+/gtk/gtktoolbar.c /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/gtk/gtktoolbar.c
*** ./gtk+/gtk/gtktoolbar.c	Tue May 16 18:51:27 2006
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/gtk/gtktoolbar.c	Thu Oct 12 15:35:55 2006
***************
*** 3882,3888 ****
        GtkAllocation	goal_allocation;
        guint		is_placeholder : 1;
        guint		disappearing : 1;
!       TriState		has_menu : 2;
      } tool_item;
      
      struct
--- 3882,3888 ----
        GtkAllocation	goal_allocation;
        guint		is_placeholder : 1;
        guint		disappearing : 1;
!       TriState		has_menu;
      } tool_item;
      
      struct
diff -crN ./gtk+/gtk/updateiconcache.c /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/gtk/updateiconcache.c
*** ./gtk+/gtk/updateiconcache.c	Tue Jun 20 00:32:02 2006
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/gtk/updateiconcache.c	Thu Oct 12 15:36:09 2006
***************
*** 698,704 ****
    guint len = 0;
  
    if (image->has_embedded_rect ||
!       image->attach_points > 0 ||
        image->n_display_names > 0)
      len += 12;
  
--- 698,704 ----
    guint len = 0;
  
    if (image->has_embedded_rect ||
!       (int) image->attach_points > 0 ||
        image->n_display_names > 0)
      len += 12;
  
diff -crN ./gtk+/modules/input/gtkimcontextxim.c /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/modules/input/gtkimcontextxim.c
*** ./gtk+/modules/input/gtkimcontextxim.c	Thu Jun 30 20:42:44 2005
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/modules/input/gtkimcontextxim.c	Tue Sep 27 16:46:41 2005
***************
*** 103,108 ****
--- 103,112 ----
  
    /* Currently focused GtkIMContextXIM for the toplevel, if any */
    GtkIMContextXIM *context;
+ 
+   /* Current text of this status window (set if the window is not focused
+      in order to set the text back to the status window when focused in) */
+   gchar *fout_text;
  };
  
  static void     gtk_im_context_xim_class_init         (GtkIMContextXIMClass  *class);
***************
*** 138,143 ****
--- 142,150 ----
  static void          status_window_set_text (StatusWindow *status_window,
  					     const gchar  *text);
  
+ static void set_status_window_previous_text (GtkIMContextXIM *context_xim);
+ static void set_status_window_fout_text (GtkIMContextXIM *context_xim);
+ 
  static void xim_destroy_callback   (XIM      xim,
  				    XPointer client_data,
  				    XPointer call_data);
***************
*** 789,794 ****
--- 796,802 ----
  
        context_xim->has_focus = TRUE;
        update_status_window (context_xim);
+       set_status_window_previous_text (context_xim);
        
        if (ic)
  	XSetICFocus (ic);
***************
*** 807,812 ****
--- 815,821 ----
        XIC ic = gtk_im_context_xim_get_ic (context_xim);
        
        context_xim->has_focus = FALSE;
+       set_status_window_fout_text (context_xim);
        update_status_window (context_xim);
    
        if (ic)
***************
*** 1030,1040 ****
    GtkIMContextXIM *context_xim = GTK_IM_CONTEXT_XIM (context);
  
    if (context_xim->preedit_length)
!     {
!       context_xim->preedit_length = 0;
!       if (!context_xim->finalizing)
! 	g_signal_emit_by_name (context_xim, "preedit_changed");
!     }
  
    if (!context_xim->finalizing)
      g_signal_emit_by_name (context, "preedit_end");  
--- 1039,1049 ----
    GtkIMContextXIM *context_xim = GTK_IM_CONTEXT_XIM (context);
  
    if (context_xim->preedit_length)
!   {
!     context_xim->preedit_length = 0;
!     if (!context_xim->finalizing)
!       g_signal_emit_by_name (context_xim, "preedit_changed");
!   }
  
    if (!context_xim->finalizing)
      g_signal_emit_by_name (context, "preedit_end");  
***************
*** 1047,1053 ****
    GError *error = NULL;
    gchar *result = NULL;
  
!   if (xim_text && xim_text->string.multi_byte)
      {
        if (xim_text->encoding_is_wchar)
  	{
--- 1056,1062 ----
    GError *error = NULL;
    gchar *result = NULL;
  
!   if (xim_text && xim_text->string.multi_byte && *xim_text->string.multi_byte)
      {
        if (xim_text->encoding_is_wchar)
  	{
***************
*** 1151,1160 ****
  	}
      }
  
!   for (i = 0; i < new_text_length; i++)
      {
!       context->preedit_chars[chg_first + i] = new_text[i];
!       context->feedbacks[chg_first + i] = new_xim_text->feedback[i];
      }
  
    context->preedit_length += diff;
--- 1160,1179 ----
  	}
      }
  
!   if (new_text && *new_text)
      {
!       for (i = 0; i < new_text_length; i++)
!         {
!           context->preedit_chars[chg_first + i] = new_text[i];
!           context->feedbacks[chg_first + i] = new_xim_text->feedback[i];
!         }
!     }
!   else
!     {
!       for (i = 0; i < new_xim_text->length; i++)
!         {
! 	  context->feedbacks[chg_first + i] = new_xim_text->feedback[i];
! 	}
      }
  
    context->preedit_length += diff;
***************
*** 1733,1738 ****
--- 1752,1758 ----
    
    status_window = g_new0 (StatusWindow, 1);
    status_window->toplevel = toplevel;
+   status_window->fout_text = NULL;
  
    status_windows = g_slist_prepend (status_windows, status_window);
  
***************
*** 1820,1825 ****
--- 1840,1886 ----
    on_status_toplevel_configure (status_window->toplevel, NULL, status_window);
  }
  
+ /* Set the text of the status window back from the text that was
+    saved when the window was focused out */
+ static void
+ set_status_window_previous_text (GtkIMContextXIM *context_xim)
+ {
+   StatusWindow *status_window = context_xim->status_window;
+   if (status_window)
+     {
+       GtkWidget *label;
+       
+       if (!status_window->window)
+ 	status_window_make_window (status_window);
+       
+       label = GTK_BIN (status_window->window)->child;
+       if (status_window->fout_text)
+         {
+ 	  status_window_set_text (status_window, status_window->fout_text);
+ 	  g_free (status_window->fout_text);
+ 	  status_window->fout_text = NULL;
+ 	}
+     }
+ }
+ 
+ /* Save the text of the status window so that it could be 
+    written back once the window is focused in */
+ static void
+ set_status_window_fout_text (GtkIMContextXIM *context_xim)
+ {
+   StatusWindow *status_window = context_xim->status_window;
+   if (status_window)
+     {
+       GtkWidget *label;
+       
+       if (!status_window->window)
+ 	status_window_make_window (status_window);
+       
+       label = GTK_BIN (status_window->window)->child;
+       status_window->fout_text = g_strdup (gtk_label_get_label (GTK_LABEL (label)));
+     }
+ }
+ 
  /* Updates the text in the status window, hiding or
   * showing the window as necessary.
   */
diff -crN ./gtk+/modules/input/imcedilla.c /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/modules/input/imcedilla.c
*** ./gtk+/modules/input/imcedilla.c	Sat Nov 20 00:30:45 2004
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/modules/input/imcedilla.c	Wed Apr  6 17:22:09 2005
***************
*** 91,97 ****
    N_("Cedilla"),                   /* Human readable name */
    "gtk+",			   /* Translation domain */
     GTK_LOCALEDIR,		   /* Dir for bindtextdomain (not strictly needed for "gtk+") */
!   "az:ca:co:fr:gv:oc:pt:sq:tr:wa"  /* Languages for which this module is the default */
  };
  
  static const GtkIMContextInfo *info_list[] = {
--- 91,97 ----
    N_("Cedilla"),                   /* Human readable name */
    "gtk+",			   /* Translation domain */
     GTK_LOCALEDIR,		   /* Dir for bindtextdomain (not strictly needed for "gtk+") */
!   "az:co:gv:oc:sq:tr:wa"  /* Languages for which this module is the default */
  };
  
  static const GtkIMContextInfo *info_list[] = {
diff -crN ./gtk+/modules/input/imxim.c /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/modules/input/imxim.c
*** ./gtk+/modules/input/imxim.c	Sat Apr 24 11:58:48 2004
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./gtk+/modules/input/imxim.c	Fri Oct 29 16:55:00 2004
***************
*** 28,34 ****
    N_("X Input Method"),            /* Human readable name */
    GETTEXT_PACKAGE,		   /* Translation domain */
    GTK_LOCALEDIR,		   /* Dir for bindtextdomain (not strictly needed for "gtk+") */
!   "ko:ja:th:zh"		           /* Languages for which this module is the default */
  };
  
  static const GtkIMContextInfo *info_list[] = {
--- 28,34 ----
    N_("X Input Method"),            /* Human readable name */
    GETTEXT_PACKAGE,		   /* Translation domain */
    GTK_LOCALEDIR,		   /* Dir for bindtextdomain (not strictly needed for "gtk+") */
!   "*"			           /* Languages for which this module is the default */
  };
  
  static const GtkIMContextInfo *info_list[] = {
