diff options
author | Tomasz Chabora <kobewi4e@gmail.com> | 2020-01-15 21:54:52 +0100 |
---|---|---|
committer | kobewi <kobewi4e@gmail.com> | 2021-09-13 18:03:03 +0200 |
commit | e1cc70309c40dbb346208d2873269381b560ac8c (patch) | |
tree | f1a409d91128d6c4a62fb19d6362e657994cb8e1 /scene | |
parent | 8ecc571158aa1725cda03e357386daa0bc1de6d3 (diff) |
Fix error when click edge of the tree icon
Diffstat (limited to 'scene')
-rw-r--r-- | scene/gui/tree.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp index cb990892ed..c4dfbc0d4e 100644 --- a/scene/gui/tree.cpp +++ b/scene/gui/tree.cpp @@ -2339,13 +2339,22 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, int cache.click_type = Cache::CLICK_NONE; return -1; } + + // Make sure the click is correct. + Point2 click_pos = get_global_mouse_position() - get_global_position(); + if (!get_item_at_position(click_pos)) { + pressed_button = -1; + cache.click_type = Cache::CLICK_NONE; + return -1; + } + pressed_button = j; cache.click_type = Cache::CLICK_BUTTON; cache.click_index = j; cache.click_id = c.buttons[j].id; cache.click_item = p_item; cache.click_column = col; - cache.click_pos = get_global_mouse_position() - get_global_position(); + cache.click_pos = click_pos; update(); //emit_signal(SNAME("button_pressed")); return -1; |