gtk+ r22404 - trunk/modules/other/gail



Author: liyuan
Date: Wed Feb 25 09:45:37 2009
New Revision: 22404
URL: http://svn.gnome.org/viewvc/gtk+?rev=22404&view=rev

Log:
2009-02-25  Li Yuan  <li yuan sun com>

        * gailentry.c: (gail_entry_real_notify_gtk),
        (gail_entry_idle_notify_insert), (_gail_entry_insert_text_cb):
        Bug #520395. Notify the insert signal in the idle function. Let
        text_util has chance to update cache.


Modified:
   trunk/modules/other/gail/ChangeLog
   trunk/modules/other/gail/gailentry.c

Modified: trunk/modules/other/gail/gailentry.c
==============================================================================
--- trunk/modules/other/gail/gailentry.c	(original)
+++ trunk/modules/other/gail/gailentry.c	Wed Feb 25 09:45:37 2009
@@ -131,6 +131,7 @@
 
 /* Callbacks */
 
+static gboolean   gail_entry_idle_notify_insert    (gpointer data);
 static void       gail_entry_notify_insert         (GailEntry            *entry);
 static void       gail_entry_notify_delete         (GailEntry            *entry);
 static void	  _gail_entry_insert_text_cb	   (GtkEntry     	 *entry,
@@ -252,7 +253,8 @@
 
   if (strcmp (pspec->name, "cursor-position") == 0)
     {
-      gail_entry_notify_insert (entry);
+      if (entry->insert_idle_handler == 0)
+        entry->insert_idle_handler = gdk_threads_add_idle (gail_entry_idle_notify_insert, entry);
 
       if (check_for_selection_change (entry, gtk_entry))
         g_signal_emit_by_name (atk_obj, "text_selection_changed");
@@ -264,7 +266,8 @@
     }
   else if (strcmp (pspec->name, "selection-bound") == 0)
     {
-      gail_entry_notify_insert (entry);
+      if (entry->insert_idle_handler == 0)
+        entry->insert_idle_handler = gdk_threads_add_idle (gail_entry_idle_notify_insert, entry);
 
       if (check_for_selection_change (entry, gtk_entry))
         g_signal_emit_by_name (atk_obj, "text_selection_changed");
@@ -1001,7 +1004,7 @@
 /* Callbacks */
 
 static gboolean
-idle_notify_insert (gpointer data)
+gail_entry_idle_notify_insert (gpointer data)
 {
   GailEntry *entry;
 
@@ -1051,7 +1054,7 @@
    * or in an idle handler if it not updated.
    */
    if (gail_entry->insert_idle_handler == 0)
-     gail_entry->insert_idle_handler = gdk_threads_add_idle (idle_notify_insert, gail_entry);
+     gail_entry->insert_idle_handler = gdk_threads_add_idle (gail_entry_idle_notify_insert, gail_entry);
 }
 
 static gunichar 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]