@@ -289,25 +289,16 @@ void EditorDockManager::_dock_split_dragged(int p_offset) {
289289 EditorNode::get_singleton ()->save_editor_layout_delayed ();
290290}
291291
292- void EditorDockManager::_dock_container_gui_input (const Ref<InputEvent> &p_input, TabContainer *p_dock_container) {
293- Ref<InputEventMouseButton> mb = p_input;
294-
295- if (mb.is_valid () && mb->get_button_index () == MouseButton::RIGHT && mb->is_pressed ()) {
296- int tab_id = p_dock_container->get_tab_bar ()->get_hovered_tab ();
297- if (tab_id < 0 ) {
298- return ;
299- }
300-
301- EditorDock *hovered_dock = Object::cast_to<EditorDock>(p_dock_container->get_tab_control (tab_id));
302- if (hovered_dock == nullptr ) {
303- return ;
304- }
305-
306- // Right click context menu.
307- dock_context_popup->set_dock (hovered_dock);
308- dock_context_popup->set_position (p_dock_container->get_tab_bar ()->get_screen_position () + mb->get_position ());
309- dock_context_popup->popup ();
292+ void EditorDockManager::_dock_container_popup (int p_tab_idx, TabContainer *p_dock_container) {
293+ EditorDock *hovered_dock = Object::cast_to<EditorDock>(p_dock_container->get_tab_control (p_tab_idx));
294+ if (hovered_dock == nullptr ) {
295+ return ;
310296 }
297+
298+ // Right click context menu.
299+ dock_context_popup->set_dock (hovered_dock);
300+ dock_context_popup->set_position (p_dock_container->get_tab_bar ()->get_screen_position () + p_dock_container->get_local_mouse_position ());
301+ dock_context_popup->popup ();
311302}
312303
313304void EditorDockManager::_dock_container_update_visibility (TabContainer *p_dock_container) {
@@ -981,13 +972,13 @@ void EditorDockManager::register_dock_slot(DockSlot p_dock_slot, TabContainer *p
981972 p_tab_container->set_v_size_flags (Control::SIZE_EXPAND_FILL);
982973 p_tab_container->set_popup (dock_context_popup);
983974 p_tab_container->connect (" pre_popup_pressed" , callable_mp (dock_context_popup, &DockContextPopup::select_current_dock_in_dock_slot).bind (p_dock_slot));
975+ p_tab_container->get_tab_bar ()->connect (" tab_rmb_clicked" , callable_mp (this , &EditorDockManager::_dock_container_popup).bind (p_tab_container));
984976 p_tab_container->set_drag_to_rearrange_enabled (true );
985977 p_tab_container->set_tabs_rearrange_group (1 );
986978 p_tab_container->connect (" tab_changed" , callable_mp (this , &EditorDockManager::_update_layout).unbind (1 ));
987979 p_tab_container->connect (" active_tab_rearranged" , callable_mp (this , &EditorDockManager::_update_layout).unbind (1 ));
988980 p_tab_container->connect (" child_order_changed" , callable_mp (this , &EditorDockManager::_dock_container_update_visibility).bind (p_tab_container));
989981 p_tab_container->set_use_hidden_tabs_for_min_size (true );
990- p_tab_container->get_tab_bar ()->connect (SceneStringName (gui_input), callable_mp (this , &EditorDockManager::_dock_container_gui_input).bind (p_tab_container));
991982 p_tab_container->hide ();
992983
993984 // Create dock dragging hint.
0 commit comments