gtk+ r20278 - in branches/gtk-2-12: . gtk



Author: matthiasc
Date: Mon Jun  2 21:52:48 2008
New Revision: 20278
URL: http://svn.gnome.org/viewvc/gtk+?rev=20278&view=rev

Log:
        Bug 534463 - non-editable GtkTextView should not call
        gtk_im_context_focus_in in focus event

        * gtk/gtktextview.c: Add checks to see if the textview is
        editable.  Patch by Wang Diancheng.



Modified:
   branches/gtk-2-12/ChangeLog
   branches/gtk-2-12/gtk/gtktextview.c

Modified: branches/gtk-2-12/gtk/gtktextview.c
==============================================================================
--- branches/gtk-2-12/gtk/gtktextview.c	(original)
+++ branches/gtk-2-12/gtk/gtktextview.c	Mon Jun  2 21:52:48 2008
@@ -2235,8 +2235,18 @@
 
   if (text_view->editable != setting)
     {
+      if (!setting)
+	{
+	  gtk_text_view_reset_im_context(text_view);
+	  if (GTK_WIDGET_HAS_FOCUS (text_view))
+	    gtk_im_context_focus_out (text_view->im_context);
+	}
+
       text_view->editable = setting;
 
+      if (setting && GTK_WIDGET_HAS_FOCUS (text_view))
+	gtk_im_context_focus_in (text_view->im_context);
+
       if (text_view->layout)
         {
 	  gtk_text_layout_set_overwrite_mode (text_view->layout,
@@ -4334,9 +4344,12 @@
 		    "direction_changed",
 		    G_CALLBACK (keymap_direction_changed), text_view);
   gtk_text_view_check_keymap_direction (text_view);
-  
-  text_view->need_im_reset = TRUE;
-  gtk_im_context_focus_in (GTK_TEXT_VIEW (widget)->im_context);
+
+  if (text_view->editable)
+    {
+      text_view->need_im_reset = TRUE;
+      gtk_im_context_focus_in (GTK_TEXT_VIEW (widget)->im_context);
+    }
 
   return FALSE;
 }
@@ -4362,8 +4375,11 @@
 					keymap_direction_changed,
 					text_view);
 
-  text_view->need_im_reset = TRUE;
-  gtk_im_context_focus_out (GTK_TEXT_VIEW (widget)->im_context);
+  if (text_view->editable)
+    {
+      text_view->need_im_reset = TRUE;
+      gtk_im_context_focus_out (GTK_TEXT_VIEW (widget)->im_context);
+    }
 
   return FALSE;
 }



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