@@ -1062,6 +1062,58 @@ public class OutlineTable : DrawingArea {
10621062 return ( false );
10631063 }
10641064
1065+ private bool handle_filtered_keypress( string str ) {
1066+ if ( (selected != null ) || is_title_editable() ) {
1067+ switch ( str ) {
1068+ case " a" : change_selected( node_parent( selected ) ); break ;
1069+ case " B" : change_selected( node_bottom() ); break ;
1070+ case " c" : change_selected( node_last_child( selected ) ); break ;
1071+ case " e" : edit_selected( true ); break ;
1072+ case " E" : edit_selected( false ); break ;
1073+ case " f" : focus_on_selected(); break ;
1074+ case " h" : unindent(); break ;
1075+ case " H" : place_at_top( selected ); break ;
1076+ case " j" : change_selected( node_next( selected ) ); break ;
1077+ case " k" : change_selected( node_previous( selected ) ); break ;
1078+ case " l" : indent(); break ;
1079+ case " n" : change_selected( node_next_sibling( selected ) ); break ;
1080+ case " p" : change_selected( node_previous_sibling( selected ) ); break ;
1081+ case " t" : rotate_task(); break ;
1082+ case " T" : change_selected( node_top() ); break ;
1083+ case " #" : toggle_label(); break ;
1084+ case " *" : clear_all_labels(); break ;
1085+ case " 1" : goto_label( 0 ); break ;
1086+ case " 2" : goto_label( 1 ); break ;
1087+ case " 3" : goto_label( 2 ); break ;
1088+ case " 4" : goto_label( 3 ); break ;
1089+ case " 5" : goto_label( 4 ); break ;
1090+ case " 6" : goto_label( 5 ); break ;
1091+ case " 7" : goto_label( 6 ); break ;
1092+ case " 8" : goto_label( 7 ); break ;
1093+ case " 9" : goto_label( 8 ); break ;
1094+ case " @" : tagger. show_add_ui(); break ;
1095+ default : return ( false );
1096+ }
1097+ } else {
1098+ switch ( str ) {
1099+ case " *" : clear_all_labels(); break ;
1100+ case " 1" : goto_label( 0 ); break ;
1101+ case " 2" : goto_label( 1 ); break ;
1102+ case " 3" : goto_label( 2 ); break ;
1103+ case " 4" : goto_label( 3 ); break ;
1104+ case " 5" : goto_label( 4 ); break ;
1105+ case " 6" : goto_label( 5 ); break ;
1106+ case " 7" : goto_label( 6 ); break ;
1107+ case " 8" : goto_label( 7 ); break ;
1108+ case " 9" : goto_label( 8 ); break ;
1109+ case " j" : handle_down( false ); break ;
1110+ case " k" : handle_up( false ); break ;
1111+ default : return ( false );
1112+ }
1113+ }
1114+ return ( true );
1115+ }
1116+
10651117 /* Handles keypress events */
10661118 private bool on_keypress( uint keyval, uint keycode, ModifierType state ) {
10671119
@@ -1305,6 +1357,7 @@ public class OutlineTable : DrawingArea {
13051357 public string ? serialize_text_for_copy( CanvasText ct ) {
13061358 var ft = ct. get_selected_formatted_text( this );
13071359 if ( ft != null ) {
1360+ stdout. printf( " FT is not null\n " );
13081361 string str;
13091362 Xml . Doc * doc = new Xml .Doc ( " 1.0" );
13101363 Xml . Node * root = new Xml .Node ( null , " oltext" );
@@ -2597,7 +2650,7 @@ public class OutlineTable : DrawingArea {
25972650 _title. insert( str, undo_text );
25982651 queue_draw();
25992652 } else {
2600- return ( false );
2653+ return ( handle_filtered_keypress( str ) );
26012654 }
26022655 return ( true );
26032656 }
0 commit comments