--- sound-juicer-2.26.1-orig/src/sj-main.c	2009-02-24 14:05:50.000000000 +0200
+++ sound-juicer-2.26.1/src/sj-main.c	2009-05-10 21:45:12.000000000 +0300
@@ -1619,6 +1619,31 @@ static void set_duplication(gboolean ena
   }
 }
 
+static gboolean f2_keypress_cb(GtkWidget * widget, GdkEventKey * event, gpointer data)
+{
+  guint modifiers;
+
+  GtkTreePath *path;
+  GtkTreeViewColumn *column;
+
+  modifiers = gtk_accelerator_get_default_mod_mask ();
+
+  if (event->keyval == GDK_F2 && (event->state & modifiers) == 0) {
+    // re-set the cursor position with editing mode on
+    gtk_tree_view_get_cursor (GTK_TREE_VIEW (widget), &path, &column);
+
+    if (path == NULL || column == NULL) {
+      return FALSE;
+    }
+    
+    gtk_tree_view_set_cursor (GTK_TREE_VIEW (widget), path, column, TRUE);
+
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
 int main (int argc, char **argv)
 {
   GError *error = NULL;
@@ -1767,6 +1792,9 @@ int main (int argc, char **argv)
 
   track_store = gtk_list_store_new (COLUMN_TOTAL, G_TYPE_INT, G_TYPE_BOOLEAN, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_POINTER);
   gtk_tree_view_set_model (GTK_TREE_VIEW (track_listview), GTK_TREE_MODEL (track_store));
+
+  g_signal_connect (G_OBJECT (track_listview), "key-press-event", G_CALLBACK (f2_keypress_cb), 0);
+
   {
     GtkTreeViewColumn *column;
     GtkCellRenderer *renderer;
