diff options
Diffstat (limited to 'desktop/treeview.c')
-rw-r--r-- | desktop/treeview.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/desktop/treeview.c b/desktop/treeview.c index a460f4d12..ba1056ed0 100644 --- a/desktop/treeview.c +++ b/desktop/treeview.c @@ -3281,7 +3281,7 @@ bool treeview_keypress(treeview *tree, uint32_t key) assert(tree != NULL); - /* Pass to textarea, if editing in progress */ + /* Pass to any textarea, if editing in progress */ if (tree->edit.textarea != NULL) { switch (key) { case NS_KEY_ESCAPE: @@ -3294,6 +3294,23 @@ bool treeview_keypress(treeview *tree, uint32_t key) default: return textarea_keypress(tree->edit.textarea, key); } + } else if (tree->search.active == true) { + switch (key) { + case NS_KEY_ESCAPE: + textarea_set_text(tree->search.textarea, ""); + textarea_set_caret(tree->search.textarea, 0); + r.x0 = tree_g.window_padding + tree_g.icon_size; + r.x1 = 600; + r.y0 = 0; + r.y1 = tree_g.line_height; + cw_invalidate_area(tree, &r); + return true; + case NS_KEY_NL: + case NS_KEY_CR: + return true; + default: + return textarea_keypress(tree->search.textarea, key); + } } /* Keypress to be handled by treeview */ |