summaryrefslogtreecommitdiffstats
path: root/editor/editor_node.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/editor_node.cpp')
-rw-r--r--editor/editor_node.cpp27
1 files changed, 9 insertions, 18 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 3691172c18..6711be3d06 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -5158,27 +5158,11 @@ void EditorNode::_scene_tab_closed(int p_tab) {
scene_tabs->update_scene_tabs();
}
-class EditorBottomDockButton : public Button {
- GDCLASS(EditorBottomDockButton, Button)
-
- static void _bind_methods() {
- ADD_SIGNAL(MethodInfo("dropping"));
- }
-
-public:
- virtual bool can_drop_data(const Point2 &p_point, const Variant &p_data) const override {
- if (!is_pressed()) {
- const_cast<EditorBottomDockButton *>(this)->emit_signal("dropping");
- }
- return false;
- }
-};
-
Button *EditorNode::add_bottom_panel_item(String p_text, Control *p_item, bool p_at_front) {
- Button *tb = memnew(EditorBottomDockButton);
+ Button *tb = memnew(Button);
tb->set_flat(true);
tb->connect("toggled", callable_mp(this, &EditorNode::_bottom_panel_switch_by_control).bind(p_item));
- tb->connect("dropping", callable_mp(this, &EditorNode::_bottom_panel_switch_by_control).bind(true, p_item));
+ tb->set_drag_forwarding(Callable(), callable_mp(this, &EditorNode::_bottom_panel_drag_hover).bind(tb, p_item), Callable());
tb->set_text(p_text);
tb->set_toggle_mode(true);
tb->set_focus_mode(Control::FOCUS_NONE);
@@ -6015,6 +5999,13 @@ void EditorNode::_bottom_panel_raise_toggled(bool p_pressed) {
top_split->set_visible(!p_pressed);
}
+bool EditorNode::_bottom_panel_drag_hover(const Vector2 &, const Variant &, Button *p_button, Control *p_control) {
+ if (!p_button->is_pressed()) {
+ _bottom_panel_switch_by_control(true, p_control);
+ }
+ return false;
+}
+
void EditorNode::_update_renderer_color() {
String rendering_method = renderer->get_selected_metadata();