[gnumeric] Fix tab behaviour. [#388344]



commit 64bf057da684dca114dc0f820c5e1beefcc85eca
Author: Andreas J. Guelzow <aguelzow pyrshep ca>
Date:   Wed Dec 23 23:33:00 2009 -0700

     Fix tab behaviour. [#388344]
    
    2009-12-23  Andreas J. Guelzow <aguelzow pyrshep ca>
    
    	* gnumeric-expr-entry.c (cb_gee_key_press_event):  handle tab key

 NEWS                              |    1 +
 src/widgets/ChangeLog             |    4 ++++
 src/widgets/gnumeric-expr-entry.c |   25 +++++++++++++++++++++++++
 3 files changed, 30 insertions(+), 0 deletions(-)
---
diff --git a/NEWS b/NEWS
index 91690e1..8e6a353 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,7 @@ Andreas:
 	* Add principal components analysis.
 	* Load graph series labels and categories from ODF files. [#379220]
 	* Write series labels to ODF files.
+	* Fix tab behaviour. [#388344]
 
 Jean
 	* Fix import export of line type in scatter plots. [#605043]
diff --git a/src/widgets/ChangeLog b/src/widgets/ChangeLog
index 72d29e6..8393acc 100644
--- a/src/widgets/ChangeLog
+++ b/src/widgets/ChangeLog
@@ -1,3 +1,7 @@
+2009-12-23  Andreas J. Guelzow <aguelzow pyrshep ca>
+
+	* gnumeric-expr-entry.c (cb_gee_key_press_event):  handle tab key
+
 2009-12-15  Morten Welinder <terra gnome org>
 
 	* Release 1.9.17
diff --git a/src/widgets/gnumeric-expr-entry.c b/src/widgets/gnumeric-expr-entry.c
index cb02d40..1b5bc7d 100644
--- a/src/widgets/gnumeric-expr-entry.c
+++ b/src/widgets/gnumeric-expr-entry.c
@@ -638,6 +638,31 @@ cb_gee_key_press_event (GtkEntry	*entry,
 		return TRUE;
 	}
 
+	case GDK_Tab: {
+		SheetView *sv;
+		WBCEditResult result;
+
+		if (gee->is_cell_renderer)
+			return FALSE;
+
+		if (!wbcg_is_editing (wbcg))
+			break;
+
+		/* Be careful to use the editing sheet */
+		sv = sheet_get_view (wbcg->editing_sheet,
+			wb_control_view (WORKBOOK_CONTROL (wbcg)));
+
+		result = WBC_EDIT_ACCEPT;
+		
+                /* move the edit pos for normal entry */
+		if (wbcg_edit_finish (wbcg, result, NULL) && result == WBC_EDIT_ACCEPT) {
+			gboolean const direction = (event->state & GDK_SHIFT_MASK) ? FALSE : TRUE;
+			sv_selection_walk_step (sv, direction, TRUE);
+			sv_update (sv);
+		}
+		return TRUE;
+	}
+
 	case GDK_KP_Separator:
 	case GDK_KP_Decimal: {
 		GtkEditable *editable = GTK_EDITABLE (entry);



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