[maemo-commits] [maemo-commits] r14006 - in projects/haf/trunk/gtk+: . gtk

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Sep 21 17:36:55 EEST 2007
Author: mitch
Date: 2007-09-21 17:36:50 +0300 (Fri, 21 Sep 2007)
New Revision: 14006

Modified:
   projects/haf/trunk/gtk+/ChangeLog
   projects/haf/trunk/gtk+/gtk/gtktextview.c
Log:
2007-09-21  Michael Natterer  <mitch at imendio.com>

	Merged from upstream:

	* gtk/gtktextview.c (gtk_text_view_move_cursor_internal)
	(gtk_text_view_move_viewport): merged patch from maemo-gtk which
	handles failed keynav correctly also when the cursor is invisible.
	(Tommi Komulainen, fixes NB#69051)



Modified: projects/haf/trunk/gtk+/ChangeLog
===================================================================
--- projects/haf/trunk/gtk+/ChangeLog	2007-09-21 14:02:09 UTC (rev 14005)
+++ projects/haf/trunk/gtk+/ChangeLog	2007-09-21 14:36:50 UTC (rev 14006)
@@ -1,3 +1,12 @@
+2007-09-21  Michael Natterer  <mitch at imendio.com>
+
+	Merged from upstream:
+
+	* gtk/gtktextview.c (gtk_text_view_move_cursor_internal)
+	(gtk_text_view_move_viewport): merged patch from maemo-gtk which
+	handles failed keynav correctly also when the cursor is invisible.
+	(Tommi Komulainen, fixes NB#69051)
+
 2007-09-20  Tommi Komulainen  <tommi.komulainen at nokia.com>
 
 	* gtk/gtkbbox.h

Modified: projects/haf/trunk/gtk+/gtk/gtktextview.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtktextview.c	2007-09-21 14:02:09 UTC (rev 14005)
+++ projects/haf/trunk/gtk+/gtk/gtktextview.c	2007-09-21 14:36:50 UTC (rev 14006)
@@ -249,7 +249,7 @@
 static void gtk_text_view_page_horizontally (GtkTextView          *text_view,
                                              gint                  count,
                                              gboolean              extend_selection);
-static void gtk_text_view_move_viewport     (GtkTextView           *text_view,
+static gboolean gtk_text_view_move_viewport (GtkTextView           *text_view,
                                              GtkScrollStep          step,
                                              gint                   count);
 static void gtk_text_view_set_anchor       (GtkTextView           *text_view);
@@ -4757,8 +4757,10 @@
 
       switch (step) 
 	{
-	case GTK_MOVEMENT_LOGICAL_POSITIONS:
         case GTK_MOVEMENT_VISUAL_POSITIONS:
+          leave_direction = count > 0 ? GTK_DIR_RIGHT : GTK_DIR_LEFT;
+          /* fall through */
+        case GTK_MOVEMENT_LOGICAL_POSITIONS:
         case GTK_MOVEMENT_WORDS:
 	  scroll_step = GTK_SCROLL_HORIZONTAL_STEPS;
 	  break;
@@ -4766,6 +4768,8 @@
 	  scroll_step = GTK_SCROLL_HORIZONTAL_ENDS;
 	  break;	  
         case GTK_MOVEMENT_DISPLAY_LINES:
+          leave_direction = count > 0 ? GTK_DIR_DOWN : GTK_DIR_UP;
+          /* fall through */
         case GTK_MOVEMENT_PARAGRAPHS:
         case GTK_MOVEMENT_PARAGRAPH_ENDS:
 	  scroll_step = GTK_SCROLL_STEPS;
@@ -4783,9 +4787,17 @@
           scroll_step = GTK_SCROLL_PAGES;
           break;
 	}
-      
-      gtk_text_view_move_viewport (text_view, scroll_step, count);
 
+      if (!gtk_text_view_move_viewport (text_view, scroll_step, count))
+        {
+          if (leave_direction != -1 &&
+              !gtk_widget_keynav_failed (GTK_WIDGET (text_view),
+                                         leave_direction))
+            {
+              g_signal_emit_by_name (text_view, "move-focus", leave_direction);
+            }
+        }
+
       return;
     }
 
@@ -4964,7 +4976,7 @@
 }
 
 
-static void
+static gboolean
 gtk_text_view_move_viewport (GtkTextView     *text_view,
                              GtkScrollStep    step,
                              gint             count)
@@ -5008,7 +5020,7 @@
       break;
     }
 
-  set_adjustment_clamped (adjustment, adjustment->value + count * increment);
+  return set_adjustment_clamped (adjustment, adjustment->value + count * increment);
 }
 
 static void


More information about the maemo-commits mailing list