diff --git a/scripts/startup/bl_ui/space_userpref.py b/scripts/startup/bl_ui/space_userpref.py index 3b26e281280..679f07ca5df 100644 --- a/scripts/startup/bl_ui/space_userpref.py +++ b/scripts/startup/bl_ui/space_userpref.py @@ -2876,7 +2876,6 @@ class USERPREF_PT_experimental_new_features(ExperimentalPanel, Panel): ({"property": "use_new_volume_nodes"}, ("blender/blender/issues/103248", "#103248")), ({"property": "use_new_file_import_nodes"}, ("blender/blender/issues/122846", "#122846")), ({"property": "use_shader_node_previews"}, ("blender/blender/issues/110353", "#110353")), - ({"property": "use_docking"}, ("blender/blender/issues/124915", "#124915")), ), ) diff --git a/source/blender/editors/interface/templates/interface_templates.cc b/source/blender/editors/interface/templates/interface_templates.cc index 68eef6884db..382c9abbd27 100644 --- a/source/blender/editors/interface/templates/interface_templates.cc +++ b/source/blender/editors/interface/templates/interface_templates.cc @@ -6474,12 +6474,7 @@ static bool uiTemplateInputStatusAzone(uiLayout *layout, const AZone *az, const { if (az->type == AZONE_AREA) { uiItemL(layout, nullptr, ICON_MOUSE_LMB_DRAG); - if (U.experimental.use_docking) { - uiItemL(layout, IFACE_("Split/Dock"), ICON_NONE); - } - else { - uiItemL(layout, IFACE_("Split/Join"), ICON_NONE); - } + uiItemL(layout, IFACE_("Split/Dock"), ICON_NONE); uiItemS_ex(layout, 0.7f); uiItemL(layout, "", ICON_EVENT_SHIFT); uiItemL(layout, nullptr, ICON_MOUSE_LMB_DRAG); diff --git a/source/blender/editors/screen/screen_draw.cc b/source/blender/editors/screen/screen_draw.cc index 3f29ef325e3..72fa6cc5bec 100644 --- a/source/blender/editors/screen/screen_draw.cc +++ b/source/blender/editors/screen/screen_draw.cc @@ -13,8 +13,6 @@ #include "GPU_platform.hh" #include "GPU_state.hh" -#include "BKE_screen.hh" - #include "BLF_api.hh" #include "BLI_listbase.h" @@ -28,9 +26,6 @@ #include "UI_interface.hh" #include "UI_resources.hh" -#include "RNA_access.hh" -#include "RNA_enum_types.hh" - #include "screen_intern.hh" #define CORNER_RESOLUTION 3 @@ -224,10 +219,6 @@ void ED_screen_draw_edges(wmWindow *win) static void screen_draw_area_drag_tip(int x, int y, const ScrArea *source, const std::string &hint) { - if (!U.experimental.use_docking) { - return; - } - const char *area_name = IFACE_(ED_area_name(source).c_str()); const uiFontStyle *fstyle = UI_FSTYLE_TOOLTIP; const bTheme *btheme = UI_GetTheme(); @@ -360,28 +351,6 @@ void screen_draw_join_highlight(const wmWindow *win, ScrArea *sa1, ScrArea *sa2, /* Outline the combined area. */ UI_draw_roundbox_corner_set(UI_CNR_ALL); - - if (!U.experimental.use_docking) { - float inner1[4] = {1.0f, 1.0f, 1.0f, 0.10f}; - rctf source = {std::max(float(sa1->totrct.xmin), combined.xmin), - std::min(float(sa1->totrct.xmax), combined.xmax), - std::max(float(sa1->totrct.ymin), combined.ymin), - std::min(float(sa1->totrct.ymax), combined.ymax)}; - UI_draw_roundbox_4fv_ex(&source, inner1, nullptr, 1.0f, nullptr, 1.0f, 0.0f); - - float inner2[4] = {0.0f, 0.0f, 0.0f, 0.25f}; - rctf dest = {std::max(float(sa2->totrct.xmin), combined.xmin), - std::min(float(sa2->totrct.xmax), combined.xmax), - std::max(float(sa2->totrct.ymin), combined.ymin), - std::min(float(sa2->totrct.ymax), combined.ymax)}; - UI_draw_roundbox_4fv_ex(&dest, inner2, nullptr, 1.0f, nullptr, 0.0f, 0.0f); - - float outline[4] = {1.0f, 1.0f, 1.0f, 0.8f}; - UI_draw_roundbox_4fv_ex( - &combined, nullptr, nullptr, 1.0f, outline, U.pixelsize, 6 * U.pixelsize); - return; - } - float outline[4] = {1.0f, 1.0f, 1.0f, 0.4f}; float inner[4] = {1.0f, 1.0f, 1.0f, 0.10f}; UI_draw_roundbox_4fv_ex(&combined, inner, nullptr, 1.0f, outline, U.pixelsize, 6 * U.pixelsize); diff --git a/source/blender/editors/screen/screen_edit.cc b/source/blender/editors/screen/screen_edit.cc index f0e8eefe1f7..c89979a2b4c 100644 --- a/source/blender/editors/screen/screen_edit.cc +++ b/source/blender/editors/screen/screen_edit.cc @@ -975,11 +975,10 @@ static void screen_cursor_set(wmWindow *win, const int xy[2]) if (area) { if (az->type == AZONE_AREA) { #if defined(__APPLE__) - const int cursor = U.experimental.use_docking ? WM_CURSOR_HAND : WM_CURSOR_EDIT; + WM_cursor_set(win, WM_CURSOR_HAND); #else - const int cursor = WM_CURSOR_EDIT; + WM_cursor_set(win, WM_CURSOR_EDIT); #endif - WM_cursor_set(win, cursor); } else if (az->type == AZONE_REGION) { if (ELEM(az->edge, AE_LEFT_TO_TOPRIGHT, AE_RIGHT_TO_TOPLEFT)) { diff --git a/source/blender/editors/screen/screen_ops.cc b/source/blender/editors/screen/screen_ops.cc index 0e12b11e457..6e2431d89d3 100644 --- a/source/blender/editors/screen/screen_ops.cc +++ b/source/blender/editors/screen/screen_ops.cc @@ -1105,7 +1105,7 @@ static int actionzone_invoke(bContext *C, wmOperator *op, const wmEvent *event) return OPERATOR_FINISHED; } - if (U.experimental.use_docking && sad->az->type == AZONE_AREA && sad->modifier == 0) { + if (sad->az->type == AZONE_AREA && sad->modifier == 0) { actionzone_apply(C, op, sad->az->type); actionzone_exit(op); return OPERATOR_FINISHED; @@ -1208,9 +1208,9 @@ static int actionzone_modal(bContext *C, wmOperator *op, const wmEvent *event) } else { #if defined(__APPLE__) - const int cursor = U.experimental.use_docking ? WM_CURSOR_HAND_CLOSED : WM_CURSOR_EDIT; + const int cursor = WM_CURSOR_HAND_CLOSED; #else - const int cursor = U.experimental.use_docking ? WM_CURSOR_MOVE : WM_CURSOR_EDIT; + const int cursor = WM_CURSOR_MOVE; #endif WM_cursor_set(win, cursor); is_gesture = false; @@ -3751,38 +3751,24 @@ static int area_join_invoke(bContext *C, wmOperator *op, const wmEvent *event) return OPERATOR_RUNNING_MODAL; } - if (U.experimental.use_docking) { - /* Launched from menu item or keyboard shortcut. */ - if (!area_join_init(C, op, nullptr, nullptr)) { - ScrArea *sa1 = CTX_wm_area(C); - if (!sa1 || ED_area_is_global(sa1) || !area_join_init(C, op, sa1, nullptr)) { - return OPERATOR_CANCELLED; - } - } - sAreaJoinData *jd = (sAreaJoinData *)op->customdata; - jd->sa2 = jd->sa1; - jd->start_x = jd->sa1->totrct.xmin; - jd->start_y = jd->sa1->totrct.ymax; - jd->current_x = event->xy[0]; - jd->current_y = event->xy[1]; - jd->draw_callback = WM_draw_cb_activate(CTX_wm_window(C), area_join_draw_cb, op); - WM_cursor_set(jd->win1, area_join_cursor(jd, event)); - area_join_update_data(C, jd, event); - area_join_dock_cb_window(jd, op); - WM_event_add_notifier(C, NC_WINDOW, nullptr); - WM_event_add_modal_handler(C, op); - return OPERATOR_RUNNING_MODAL; - } - - /* With docking turned off. */ + /* Launched from menu item or keyboard shortcut. */ if (!area_join_init(C, op, nullptr, nullptr)) { - return OPERATOR_CANCELLED; + ScrArea *sa1 = CTX_wm_area(C); + if (!sa1 || ED_area_is_global(sa1) || !area_join_init(C, op, sa1, nullptr)) { + return OPERATOR_CANCELLED; + } } sAreaJoinData *jd = (sAreaJoinData *)op->customdata; - jd->start_x = event->xy[0]; - jd->start_y = event->xy[1]; + jd->sa2 = jd->sa1; + jd->start_x = jd->sa1->totrct.xmin; + jd->start_y = jd->sa1->totrct.ymax; + jd->current_x = event->xy[0]; + jd->current_y = event->xy[1]; jd->draw_callback = WM_draw_cb_activate(CTX_wm_window(C), area_join_draw_cb, op); - + WM_cursor_set(jd->win1, area_join_cursor(jd, event)); + area_join_update_data(C, jd, event); + area_join_dock_cb_window(jd, op); + WM_event_add_notifier(C, NC_WINDOW, nullptr); WM_event_add_modal_handler(C, op); return OPERATOR_RUNNING_MODAL; } @@ -3843,7 +3829,7 @@ void static area_docking_apply(bContext *C, wmOperator *op) static int area_join_cursor(sAreaJoinData *jd, const wmEvent *event) { - if (!jd->sa2 && jd->dock_target == AreaDockTarget::None && U.experimental.use_docking) { + if (!jd->sa2 && jd->dock_target == AreaDockTarget::None) { /* Mouse outside window, so can open new window. */ if (event->xy[0] < 0 || event->xy[0] > jd->win1->sizex || event->xy[1] < 1 || event->xy[1] > jd->win1->sizey) @@ -3861,46 +3847,10 @@ static int area_join_cursor(sAreaJoinData *jd, const wmEvent *event) } #if defined(__APPLE__) - const int move_cursor = WM_CURSOR_HAND_CLOSED; + return WM_CURSOR_HAND_CLOSED; #else - const int move_cursor = WM_CURSOR_MOVE; + return WM_CURSOR_MOVE; #endif - - if (jd->sa1 && jd->sa1 == jd->sa2 && U.experimental.use_docking) { - if (jd->split_fac >= 0.0001f) { - /* Mouse inside source area, so allow splitting. */ - return (jd->split_dir == SCREEN_AXIS_V) ? WM_CURSOR_V_SPLIT : WM_CURSOR_H_SPLIT; - } - return move_cursor; - } - - if (jd->dock_target == AreaDockTarget::None) { - if (U.experimental.use_docking) { - return move_cursor; - } - else { - if (jd->dir == SCREEN_DIR_N) { - return WM_CURSOR_N_ARROW; - } - if (jd->dir == SCREEN_DIR_S) { - return WM_CURSOR_S_ARROW; - } - if (jd->dir == SCREEN_DIR_W) { - return WM_CURSOR_W_ARROW; - } - if (jd->dir == SCREEN_DIR_E) { - return WM_CURSOR_E_ARROW; - } - } - } - - if (U.experimental.use_docking && - (jd->dir != SCREEN_DIR_NONE || jd->dock_target != AreaDockTarget::None)) - { - return move_cursor; - } - - return U.experimental.use_docking ? WM_CURSOR_PICK_AREA : WM_CURSOR_STOP; } static float area_docking_snap(const float pos, const wmEvent *event) @@ -3946,7 +3896,7 @@ static float area_docking_snap(const float pos, const wmEvent *event) static AreaDockTarget area_docking_target(sAreaJoinData *jd, const wmEvent *event) { - if (!U.experimental.use_docking || !jd->sa2 || !jd->win2) { + if (!jd->sa2 || !jd->win2) { return AreaDockTarget::None; } @@ -4111,14 +4061,6 @@ static void area_join_update_data(bContext *C, sAreaJoinData *jd, const wmEvent jd->dir = area_getorientation(jd->sa1, jd->sa2); jd->dock_target = area_docking_target(jd, event); - if (!U.experimental.use_docking && area == jd->sa1) { - /* Hovering current source, so change direction. */ - jd->sa1 = jd->sa2; - jd->sa2 = area; - jd->dir = area_getorientation(jd->sa1, jd->sa2); - return; - } - if (jd->sa1 == area) { jd->sa2 = area; if (!(abs(jd->start_x - event->xy[0]) > (10 * U.pixelsize) || @@ -4137,12 +4079,10 @@ static void area_join_update_data(bContext *C, sAreaJoinData *jd, const wmEvent return; } - if (U.experimental.use_docking) { - jd->sa2 = area; - jd->win2 = WM_window_find_by_area(CTX_wm_manager(C), jd->sa2); - jd->dir = area_getorientation(jd->sa1, jd->sa2); - jd->dock_target = area_docking_target(jd, event); - } + jd->sa2 = area; + jd->win2 = WM_window_find_by_area(CTX_wm_manager(C), jd->sa2); + jd->dir = area_getorientation(jd->sa1, jd->sa2); + jd->dock_target = area_docking_target(jd, event); } static void area_join_cancel(bContext *C, wmOperator *op) @@ -4205,7 +4145,7 @@ static int area_join_modal(bContext *C, wmOperator *op, const wmEvent *event) area_join_dock_cb_window(jd, op); ED_area_tag_redraw(jd->sa1); ED_area_tag_redraw(jd->sa2); - if (U.experimental.use_docking && jd->sa1 && !jd->sa2) { + if (jd->sa1 && !jd->sa2) { /* Break out into new window if we are really outside the source window bounds. */ if (event->xy[0] < 0 || event->xy[0] > jd->win1->sizex || event->xy[1] < 1 || event->xy[1] > jd->win1->sizey) @@ -4259,9 +4199,7 @@ static int area_join_modal(bContext *C, wmOperator *op, const wmEvent *event) ED_area_tag_redraw(jd->sa2); } } - else if (U.experimental.use_docking && jd->sa1 && jd->sa2 && - jd->dock_target != AreaDockTarget::None) - { + else if (jd->sa1 && jd->sa2 && jd->dock_target != AreaDockTarget::None) { /* Dock this to the new location. */ area_docking_apply(C, op); } @@ -4395,21 +4333,7 @@ static int screen_area_options_invoke(bContext *C, wmOperator *op, const wmEvent /* Join needs two very similar areas. */ if (sa1 && sa2) { eScreenDir dir = area_getorientation(sa1, sa2); - if (!U.experimental.use_docking && dir != SCREEN_DIR_NONE) { - uiItemFullO(layout, - "SCREEN_OT_area_join", - IFACE_("Join Areas"), - ICON_AREA_JOIN, - nullptr, - WM_OP_INVOKE_DEFAULT, - UI_ITEM_NONE, - &ptr); - RNA_int_set_array(&ptr, "source_xy", blender::int2{sa2->totrct.xmin, sa2->totrct.ymin}); - RNA_int_set_array(&ptr, "target_xy", blender::int2{sa1->totrct.xmin, sa1->totrct.ymin}); - - uiItemS(layout); - } - else if (U.experimental.use_docking && dir != SCREEN_DIR_NONE) { + if (dir != SCREEN_DIR_NONE) { uiItemFullO(layout, "SCREEN_OT_area_join", (ELEM(dir, SCREEN_DIR_N, SCREEN_DIR_S)) ? IFACE_("Join Up") : @@ -4997,43 +4921,15 @@ static void screen_area_menu_items(ScrArea *area, uiLayout *layout) /* Mouse position as if in middle of area. */ const int loc[2] = {BLI_rcti_cent_x(&area->totrct), BLI_rcti_cent_y(&area->totrct)}; - if (U.experimental.use_docking) { - uiItemFullO(layout, - "SCREEN_OT_area_join", - IFACE_("Move/Split Area"), - ICON_AREA_DOCK, - nullptr, - WM_OP_INVOKE_DEFAULT, - UI_ITEM_NONE, - &ptr); - RNA_int_set_array(&ptr, "source_xy", loc); - } - else { - /* Vertical Split */ - uiItemFullO(layout, - "SCREEN_OT_area_split", - IFACE_("Vertical Split"), - ICON_SPLIT_VERTICAL, - nullptr, - WM_OP_INVOKE_DEFAULT, - UI_ITEM_NONE, - &ptr); - - RNA_int_set_array(&ptr, "cursor", loc); - RNA_enum_set(&ptr, "direction", SCREEN_AXIS_V); - - /* Horizontal Split */ - uiItemFullO(layout, - "SCREEN_OT_area_split", - IFACE_("Horizontal Split"), - ICON_SPLIT_HORIZONTAL, - nullptr, - WM_OP_INVOKE_DEFAULT, - UI_ITEM_NONE, - &ptr); - RNA_int_set_array(&ptr, "cursor", &loc[0]); - RNA_enum_set(&ptr, "direction", SCREEN_AXIS_H); - } + uiItemFullO(layout, + "SCREEN_OT_area_join", + IFACE_("Move/Split Area"), + ICON_AREA_DOCK, + nullptr, + WM_OP_INVOKE_DEFAULT, + UI_ITEM_NONE, + &ptr); + RNA_int_set_array(&ptr, "source_xy", loc); uiItemS(layout); diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 5693c7b987c..79cf768b836 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -758,9 +758,8 @@ typedef struct UserDef_Experimental { char use_new_file_import_nodes; char use_shader_node_previews; char use_animation_baklava; - char use_docking; char enable_new_cpu_compositor; - char _pad[1]; + char _pad[2]; /** `makesdna` does not allow empty structs. */ } UserDef_Experimental; diff --git a/source/blender/makesrna/intern/rna_userdef.cc b/source/blender/makesrna/intern/rna_userdef.cc index 1e66aac9359..b19ca9695da 100644 --- a/source/blender/makesrna/intern/rna_userdef.cc +++ b/source/blender/makesrna/intern/rna_userdef.cc @@ -7577,12 +7577,6 @@ static void rna_def_userdef_experimental(BlenderRNA *brna) "Multi-Slot Actions", "The new 'layered' Action can contain the animation for multiple data-blocks at once"); RNA_def_property_update(prop, 0, "rna_userdef_update"); - - prop = RNA_def_property(srna, "use_docking", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_ui_text(prop, - "Interactive Editor Docking", - "Move editor areas to new locations, including between windows"); - RNA_def_property_update(prop, 0, "rna_userdef_update"); } static void rna_def_userdef_addon_collection(BlenderRNA *brna, PropertyRNA *cprop)