summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2013-07-09 12:46:30 +0100
committerMichael Drake <tlsa@netsurf-browser.org>2013-07-09 12:46:30 +0100
commit11eed50de4064ad84e1693acb0abbf0599cbe30f (patch)
treeaa411b27a3102a4b1bba8e98855233bf7a4d977a /desktop
parent541bc8e283d078dfc1433e94a38012a2b1f86373 (diff)
downloadnetsurf-11eed50de4064ad84e1693acb0abbf0599cbe30f.tar.gz
netsurf-11eed50de4064ad84e1693acb0abbf0599cbe30f.tar.bz2
A couple of tidyups.
Diffstat (limited to 'desktop')
-rw-r--r--desktop/treeview.c76
1 files changed, 43 insertions, 33 deletions
diff --git a/desktop/treeview.c b/desktop/treeview.c
index 4a87e862b..8dbfce5d1 100644
--- a/desktop/treeview.c
+++ b/desktop/treeview.c
@@ -1556,7 +1556,17 @@ static nserror treeview_node_nav_cb(treeview_node *node, void *ctx,
return NSERROR_OK;
}
-/* Exported interface, documented in treeview.h */
+/**
+ * Handle keyboard navigation.
+ *
+ * \param tree Treeview object to launch selected nodes in
+ * \param key The ucs4 character codepoint
+ * \param rect Updated to redraw rectangle
+ * \return true if treeview needs redraw, false otherwise
+ *
+ * Note: Selected entries are launched.
+ * Entries that are descendants of selected folders are also launched.
+ */
static bool treeview_keyboard_navigation(treeview *tree, uint32_t key,
struct rect *rect)
{
@@ -1651,38 +1661,38 @@ bool treeview_keypress(treeview *tree, uint32_t key)
assert(tree != NULL);
switch (key) {
- case KEY_SELECT_ALL:
- redraw = treeview_select_all(tree, &r);
- break;
- case KEY_COPY_SELECTION:
- /* TODO: Copy selection as text */
- break;
- case KEY_DELETE_LEFT:
- case KEY_DELETE_RIGHT:
- redraw = treeview_delete_selection(tree, &r);
-
- if (tree->flags & TREEVIEW_DEL_EMPTY_DIRS) {
- /* Delete any empty nodes */
- err = treeview_delete_empty_nodes(tree);
- r.y0 = 0;
- }
- break;
- case KEY_CR:
- case KEY_NL:
- err = treeview_launch_selection(tree);
- break;
- case KEY_ESCAPE:
- case KEY_CLEAR_SELECTION:
- redraw = treeview_clear_selection(tree, &r);
- break;
- case KEY_LEFT:
- case KEY_RIGHT:
- case KEY_UP:
- case KEY_DOWN:
- redraw = treeview_keyboard_navigation(tree, key, &r);
- break;
- default:
- return false;
+ case KEY_SELECT_ALL:
+ redraw = treeview_select_all(tree, &r);
+ break;
+ case KEY_COPY_SELECTION:
+ /* TODO: Copy selection as text */
+ break;
+ case KEY_DELETE_LEFT:
+ case KEY_DELETE_RIGHT:
+ redraw = treeview_delete_selection(tree, &r);
+
+ if (tree->flags & TREEVIEW_DEL_EMPTY_DIRS) {
+ /* Delete any empty nodes */
+ err = treeview_delete_empty_nodes(tree);
+ r.y0 = 0;
+ }
+ break;
+ case KEY_CR:
+ case KEY_NL:
+ err = treeview_launch_selection(tree);
+ break;
+ case KEY_ESCAPE:
+ case KEY_CLEAR_SELECTION:
+ redraw = treeview_clear_selection(tree, &r);
+ break;
+ case KEY_LEFT:
+ case KEY_RIGHT:
+ case KEY_UP:
+ case KEY_DOWN:
+ redraw = treeview_keyboard_navigation(tree, key, &r);
+ break;
+ default:
+ return false;
}
if (redraw) {