Index: gail/gailentry.c
===================================================================
--- gail/gailentry.c	（版本 1263）
+++ gail/gailentry.c	（工作副本）
@@ -396,11 +396,6 @@
       g_source_remove (entry->insert_idle_handler);
       entry->insert_idle_handler = 0;
     }
-  if (entry->delete_idle_handler)
-    {
-      g_source_remove (entry->delete_idle_handler);
-      entry->delete_idle_handler = 0;
-    }
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -1157,20 +1152,17 @@
   return unichar;
 }
 
-static gboolean
-idle_notify_delete (gpointer data)
+static void
+notify_delete (gpointer data)
 {
   GailEntry *entry;
 
   GDK_THREADS_ENTER ();
 
   entry = GAIL_ENTRY (data);
-  entry->delete_idle_handler = 0;
   gail_entry_notify_delete (entry);
 
   GDK_THREADS_LEAVE ();
-
-  return FALSE;
 }
 
 static void
@@ -1211,12 +1203,7 @@
       gail_entry->position_delete = arg1;
       gail_entry->length_delete = arg2 - arg1;
     }
-  /*
-   * The signal will be emitted when the cursor position is updated.
-   * or in an idle handler if it not updated.
-   */
-   if (gail_entry->delete_idle_handler == 0)
-     gail_entry->delete_idle_handler = g_idle_add (idle_notify_delete, gail_entry);
+  notify_delete (gail_entry);
 }
 
 static void
Index: gail/gailentry.h
===================================================================
--- gail/gailentry.h	（版本 1263）
+++ gail/gailentry.h	（工作副本）
@@ -59,7 +59,6 @@
   gchar          *activate_keybinding;
   guint          action_idle_handler;
   guint          insert_idle_handler;
-  guint          delete_idle_handler;
 };
 
 GType gail_entry_get_type (void);
