Skip to content

Commit d65fe10

Browse files
committed
Fixing keypress issues and node copy issue.
1 parent f0cf3ea commit d65fe10

File tree

2 files changed

+57
-8
lines changed

2 files changed

+57
-8
lines changed

src/Clipboard.vala

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,10 @@ public class OutlinerClipboard {
5151

5252
if( nodes.length > 0 ) {
5353

54-
var ftxt = ot.serialize_text_for_copy( nodes.index( 0 ).name );
55-
var txt = nodes.index( 0 ).name.text.text;
56-
5754
var clipboard = Display.get_default().get_clipboard();
58-
clipboard.set_text( txt );
59-
60-
var bytes = new Bytes( ftxt.data );
61-
var provider = new ContentProvider.for_bytes( NODES_TARGET_NAME, bytes );
55+
var ntxt = ot.serialize_node_for_copy( nodes.index( 0 ) );
56+
var bytes = new Bytes( ntxt.data );
57+
var provider = new ContentProvider.for_bytes( NODES_TARGET_NAME, bytes );
6258
clipboard.set_content( provider );
6359

6460
}

src/OutlineTable.vala

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)