Index: release/scripts/startup/bl_ui/space_userpref.py =================================================================== --- release/scripts/startup/bl_ui/space_userpref.py (revision 38816) +++ release/scripts/startup/bl_ui/space_userpref.py (working copy) @@ -200,6 +200,8 @@ col.prop(view, "use_rotate_around_active") col.prop(view, "use_global_pivot") col.prop(view, "use_camera_lock_parent") + col.prop(view, "use_lock_split") + col.separator() Index: source/blender/makesdna/DNA_userdef_types.h =================================================================== --- source/blender/makesdna/DNA_userdef_types.h (revision 38816) +++ source/blender/makesdna/DNA_userdef_types.h (working copy) @@ -481,6 +481,9 @@ #define USER_HIDE_RECENT (1 << 28) #define USER_SHOW_THUMBNAILS (1 << 29) + +#define USER_LOCKSPLIT (1 << 30) + /* Auto-Keying mode */ /* AUTOKEY_ON is a bitflag */ #define AUTOKEY_ON 1 Index: source/blender/makesrna/intern/rna_userdef.c =================================================================== --- source/blender/makesrna/intern/rna_userdef.c (revision 38816) +++ source/blender/makesrna/intern/rna_userdef.c (working copy) @@ -2057,6 +2057,13 @@ RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_LOCKAROUND); RNA_def_property_ui_text(prop, "Global Pivot", "Lock the same rotation/scaling pivot in all 3D Views"); + /* window splitting flag */ + prop= RNA_def_property(srna, "use_lock_split", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_LOCKSPLIT); + RNA_def_property_ui_text(prop, "Lock Window Splitting", "Lock Window Splitting"); + RNA_def_property_update(prop, 0, "rna_userdef_update"); + + prop= RNA_def_property(srna, "use_mouse_auto_depth", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_ORBIT_ZBUF); RNA_def_property_ui_text(prop, "Auto Depth", "Use the depth under the mouse to improve view pan/rotate/zoom functionality"); Index: source/blender/editors/screen/screen_ops.c =================================================================== --- source/blender/editors/screen/screen_ops.c (revision 38816) +++ source/blender/editors/screen/screen_ops.c (working copy) @@ -1294,6 +1294,11 @@ /* UI callback, adds new handler */ static int area_split_invoke(bContext *C, wmOperator *op, wmEvent *event) { + /* dont split, if flag is on */ + if ( (U.uiflag & USER_LOCKSPLIT) ) + return OPERATOR_PASS_THROUGH; + + sAreaSplitData *sd; int dir; Index: source/blender/editors/screen/screen_edit.c =================================================================== --- source/blender/editors/screen/screen_edit.c (revision 38816) +++ source/blender/editors/screen/screen_edit.c (working copy) @@ -1212,9 +1212,10 @@ break; if(sa) { - if(az->type==AZONE_AREA) - WM_cursor_set(win, CURSOR_EDIT); - else if(az->type==AZONE_REGION) { + if(az->type==AZONE_AREA) { + if ( !(U.uiflag & USER_LOCKSPLIT) ) + WM_cursor_set(win, CURSOR_EDIT); + } else if(az->type==AZONE_REGION) { if(az->edge == AE_LEFT_TO_TOPRIGHT || az->edge == AE_RIGHT_TO_TOPLEFT) WM_cursor_set(win, CURSOR_X_MOVE); else @@ -1301,10 +1302,19 @@ if(win && sc && sa) { AZone *az= is_in_area_actionzone(sa, win->eventstate->x, win->eventstate->y); ARegion *ar; - - if (az && az->type == AZONE_REGION) - return 1; - + + if (az) { + switch(az->type) { + case AZONE_REGION: + return 1; + break; + case AZONE_AREA: + if ( (U.uiflag & USER_LOCKSPLIT) ) + return 1; + break; + } + } + for(ar= sa->regionbase.first; ar; ar= ar->next) if(ar->swinid == sc->subwinactive) return 1; Index: source/blender/editors/screen/area.c =================================================================== --- source/blender/editors/screen/area.c (revision 38816) +++ source/blender/editors/screen/area.c (working copy) @@ -314,7 +314,8 @@ for(az= sa->actionzones.first; az; az= az->next) { if(az->do_draw) { if(az->type==AZONE_AREA) { - area_draw_azone(az->x1, az->y1, az->x2, az->y2); + if ( !(U.uiflag & USER_LOCKSPLIT) ) + area_draw_azone(az->x1, az->y1, az->x2, az->y2); } else if(az->type==AZONE_REGION) { if(az->ar) {