private void OnEntryKeyPressed(KeyPressEventArgs args, CellRenderer renderer, EditedHandler handler) { if (args.Event.Key == Gdk.Key.Tab || args.Event.Key == Gdk.Key.ISO_Left_Tab || args.Event.Key == Gdk.Key.KP_Tab) { TreeViewColumn column; handler(d_editingEntry.Text, d_editingPath); renderer.StopEditing(false); TreePath nextPath; /* Start editing the next cell */ CellRenderer next = NextCell(renderer, new TreePath(d_editingPath), (args.Event.State & Gdk.ModifierType.ShiftMask) != 0, out column, out nextPath); if (next != null) { d_treeview.SetCursorOnCell(nextPath, column, next, true); args.RetVal = true; } else { d_treeview.GrabFocus(); args.RetVal = false; } } else { args.RetVal = false; } }