From dd267bd90a9d4ddd6f6247fc4eceaf7ed80839d0 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Fri, 11 Nov 2011 13:09:12 +0000 Subject: Trap RMB and select the node under the pointer if no other node selected svn path=/trunk/netsurf/; revision=13146 --- desktop/tree.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'desktop/tree.c') diff --git a/desktop/tree.c b/desktop/tree.c index 2ddedf620..097408e87 100644 --- a/desktop/tree.c +++ b/desktop/tree.c @@ -2313,6 +2313,29 @@ void tree_launch_selected(struct tree *tree, bool tabs) } +/** + * Updates the node at position x,y to a selected state. + * The required areas of the tree are redrawn. + * + * \param tree the tree to update nodes for, may be NULL + * \param x x position in tree + * \param y y position in tree + * \param selected the selection state to set + */ +void tree_set_node_selected_at(struct tree *tree, int x, int y, bool selected) +{ + bool expansion_toggle; + struct node *node; + + node = tree_get_node_at(tree->root, x, y, &expansion_toggle); + + if ((node == NULL) || (expansion_toggle == true)) + return; + + tree_set_node_selected(tree, node, false, selected); +} + + /** * Handles a mouse action for a tree * -- cgit v1.2.3