From 179b60c3643653175b4391f1c30c2dbf0b425e43 Mon Sep 17 00:00:00 2001 From: Pratik Borhade Date: Fri, 5 Apr 2024 14:37:07 +0530 Subject: [PATCH 1/2] Fix #120265: Build tree view row after cancelling rename `is_renaming_` is true even after cancelling the rename operation, this calls `add_rename_button` instead of building the active row in `TreeViewLayoutBuilder::build_row`. To fix this, set `is_renaming_` to false once text edit operation is finished. --- source/blender/editors/include/UI_interface_c.hh | 1 + source/blender/editors/interface/interface_handlers.cc | 4 ++++ source/blender/editors/interface/views/abstract_view_item.cc | 5 +++++ 3 files changed, 10 insertions(+) diff --git a/source/blender/editors/include/UI_interface_c.hh b/source/blender/editors/include/UI_interface_c.hh index 48493f03db2..e602be5e328 100644 --- a/source/blender/editors/include/UI_interface_c.hh +++ b/source/blender/editors/include/UI_interface_c.hh @@ -3361,6 +3361,7 @@ bool UI_view_item_matches(const blender::ui::AbstractViewItem &a, */ bool UI_view_item_can_rename(const blender::ui::AbstractViewItem &item); void UI_view_item_begin_rename(blender::ui::AbstractViewItem &item); +void UI_view_item_cancel_rename(blender::ui::AbstractViewItem &item); bool UI_view_item_supports_drag(const blender::ui::AbstractViewItem &item); /** diff --git a/source/blender/editors/interface/interface_handlers.cc b/source/blender/editors/interface/interface_handlers.cc index 423675f43dd..cd57517e8fb 100644 --- a/source/blender/editors/interface/interface_handlers.cc +++ b/source/blender/editors/interface/interface_handlers.cc @@ -3728,6 +3728,10 @@ static void ui_do_but_textedit( } } + blender::ui::AbstractViewItem *view_item = UI_region_views_find_active_item( + data->region); + UI_view_item_cancel_rename(*view_item); + #ifdef WITH_INPUT_IME /* skips button handling since it is not wanted */ if (is_ime_composing) { diff --git a/source/blender/editors/interface/views/abstract_view_item.cc b/source/blender/editors/interface/views/abstract_view_item.cc index 62484c5ea4d..c0b627274bd 100644 --- a/source/blender/editors/interface/views/abstract_view_item.cc +++ b/source/blender/editors/interface/views/abstract_view_item.cc @@ -370,6 +370,11 @@ void UI_view_item_begin_rename(AbstractViewItem &item) item.begin_renaming(); } +void UI_view_item_cancel_rename(blender::ui::AbstractViewItem& item) +{ + item.end_renaming(); +} + bool UI_view_item_supports_drag(const AbstractViewItem &item) { return item.create_drag_controller() != nullptr; -- 2.30.2 From 17dabc3108eb2d9bc9f5fda5cb083e88979be6b6 Mon Sep 17 00:00:00 2001 From: Pratik Borhade Date: Fri, 5 Apr 2024 14:52:04 +0530 Subject: [PATCH 2/2] Formatting and if check --- source/blender/editors/interface/interface_handlers.cc | 7 ++++--- .../blender/editors/interface/views/abstract_view_item.cc | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/source/blender/editors/interface/interface_handlers.cc b/source/blender/editors/interface/interface_handlers.cc index cd57517e8fb..75a0b82817e 100644 --- a/source/blender/editors/interface/interface_handlers.cc +++ b/source/blender/editors/interface/interface_handlers.cc @@ -3728,9 +3728,10 @@ static void ui_do_but_textedit( } } - blender::ui::AbstractViewItem *view_item = UI_region_views_find_active_item( - data->region); - UI_view_item_cancel_rename(*view_item); + blender::ui::AbstractViewItem *view_item = UI_region_views_find_active_item(data->region); + if (view_item) { + UI_view_item_cancel_rename(*view_item); + } #ifdef WITH_INPUT_IME /* skips button handling since it is not wanted */ diff --git a/source/blender/editors/interface/views/abstract_view_item.cc b/source/blender/editors/interface/views/abstract_view_item.cc index c0b627274bd..8049346ef59 100644 --- a/source/blender/editors/interface/views/abstract_view_item.cc +++ b/source/blender/editors/interface/views/abstract_view_item.cc @@ -370,7 +370,7 @@ void UI_view_item_begin_rename(AbstractViewItem &item) item.begin_renaming(); } -void UI_view_item_cancel_rename(blender::ui::AbstractViewItem& item) +void UI_view_item_cancel_rename(blender::ui::AbstractViewItem &item) { item.end_renaming(); } -- 2.30.2