Skip to content

Commit aa68939

Browse files
committed
Merge pull request #116380 from KoBeWi/πŸ™ƒ
Fix BottomPanel tab dropping
2 parents ae604e7 + 8ef3bc5 commit aa68939

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

β€Žeditor/docks/dock_tab_container.cppβ€Ž

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ bool EditorDockDragHint::can_drop_data(const Point2 &p_point, const Variant &p_d
4444

4545
void EditorDockDragHint::drop_data(const Point2 &p_point, const Variant &p_data) {
4646
// Drop dock into last spot if not over tabbar.
47-
if (drop_tabbar->get_rect().has_point(p_point)) {
47+
if (drop_tabbar_parent->get_rect().has_point(p_point)) {
4848
drop_tabbar->_handle_drop_data("tab_container_tab", p_point, p_data, callable_mp(this, &EditorDockDragHint::_drag_move_tab), callable_mp(this, &EditorDockDragHint::_drag_move_tab_from));
4949
} else {
5050
EditorDockManager *dock_manager = EditorDockManager::get_singleton();
@@ -72,13 +72,14 @@ void EditorDockDragHint::gui_input(const Ref<InputEvent> &p_event) {
7272
if (mouse_inside_tabbar) {
7373
queue_redraw();
7474
}
75-
mouse_inside_tabbar = drop_tabbar->get_rect().has_point(pos);
75+
mouse_inside_tabbar = drop_tabbar_parent->get_rect().has_point(pos);
7676
}
7777
}
7878

7979
void EditorDockDragHint::set_slot(DockTabContainer *p_slot) {
8080
dock_container = p_slot;
8181
drop_tabbar = p_slot->get_tab_bar();
82+
drop_tabbar_parent = (Control *)p_slot->get_internal_container();
8283
}
8384

8485
void EditorDockDragHint::_notification(int p_what) {
@@ -130,8 +131,8 @@ void EditorDockDragHint::_notification(int p_what) {
130131
draw_style_box(dock_drop_highlight, dock_rect);
131132

132133
// Only display tabbar hint if the mouse is over the tabbar.
133-
if (drop_tabbar->get_global_rect().has_point(get_global_mouse_position())) {
134-
draw_set_transform(drop_tabbar->get_position()); // The TabBar isn't always on top.
134+
if (drop_tabbar_parent->get_global_rect().has_point(get_global_mouse_position())) {
135+
draw_set_transform(drop_tabbar_parent->get_position()); // The TabBar isn't always on top.
135136
drop_tabbar->_draw_tab_drop(get_canvas_item());
136137
}
137138
} break;

β€Žeditor/docks/dock_tab_container.hβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ class EditorDockDragHint : public Control {
4343
GDCLASS(EditorDockDragHint, Control);
4444

4545
DockTabContainer *dock_container = nullptr;
46+
Control *drop_tabbar_parent = nullptr;
4647
TabBar *drop_tabbar = nullptr;
4748

4849
Color valid_drop_color;

0 commit comments

Comments
Β (0)