From 278ddb34b39252751788113e4971f2eda1e8d79b Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Fri, 22 May 2020 11:31:19 +0100 Subject: treeview: Do not cancel selection when mouseovering search box Signed-off-by: Daniel Silverstone --- desktop/treeview.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'desktop') diff --git a/desktop/treeview.c b/desktop/treeview.c index 1d632bb63..6ef922a99 100644 --- a/desktop/treeview.c +++ b/desktop/treeview.c @@ -4674,9 +4674,7 @@ treeview_mouse_action(treeview *tree, browser_mouse_state mouse, int x, int y) textarea_mouse_action(tree->edit.textarea, mouse, x - tree->edit.x, y - tree->edit.y); return; - } else if (tree->drag.type == TV_DRAG_SEARCH || - (y < search_height && - tree->drag.type == TV_DRAG_NONE)) { + } else if (tree->drag.type == TV_DRAG_SEARCH) { if (tree->search.active == false) { tree->search.active = true; if (treeview_clear_selection(tree, &r)) { @@ -4687,6 +4685,16 @@ treeview_mouse_action(treeview *tree, browser_mouse_state mouse, int x, int y) x - tree_g.window_padding - tree_g.icon_size, y); return; + } else if (mouse & (BROWSER_MOUSE_PRESS_1 | BROWSER_MOUSE_PRESS_2) && + y < search_height && tree->search.active == false) { + tree->search.active = true; + if (treeview_clear_selection(tree, &r)) { + treeview__cw_invalidate_area(tree, &r); + } + textarea_mouse_action(tree->search.textarea, mouse, + x - tree_g.window_padding - tree_g.icon_size, + y); + return; } else if (mouse & (BROWSER_MOUSE_PRESS_1 | BROWSER_MOUSE_PRESS_2) && tree->search.active == true) { -- cgit v1.2.3