bugfix [#24009] Crash when switching area types and performing ops
tested every view3d operator to make sure none crash.
This commit is contained in:
parent
afa4b855ca
commit
11ce49830a
|
@ -125,6 +125,7 @@ int ED_operator_regionactive(struct bContext *C);
|
|||
int ED_operator_scene_editable(struct bContext *C);
|
||||
|
||||
int ED_operator_view3d_active(struct bContext *C);
|
||||
int ED_operator_region_view3d_active(struct bContext *C);
|
||||
int ED_operator_timeline_active(struct bContext *C);
|
||||
int ED_operator_outliner_active(struct bContext *C);
|
||||
int ED_operator_file_active(struct bContext *C);
|
||||
|
|
|
@ -129,6 +129,11 @@ int ED_operator_view3d_active(bContext *C)
|
|||
return ed_spacetype_test(C, SPACE_VIEW3D);
|
||||
}
|
||||
|
||||
int ED_operator_region_view3d_active(bContext *C)
|
||||
{
|
||||
return CTX_wm_region_view3d(C) != NULL;
|
||||
}
|
||||
|
||||
int ED_operator_timeline_active(bContext *C)
|
||||
{
|
||||
return ed_spacetype_test(C, SPACE_TIME);
|
||||
|
|
|
@ -783,7 +783,7 @@ static int view3d_camera_active_poll(bContext *C)
|
|||
|
||||
static int view3d_rotate_poll(bContext *C)
|
||||
{
|
||||
if (!ED_operator_view3d_active(C)) {
|
||||
if (!ED_operator_region_view3d_active(C)) {
|
||||
return 0;
|
||||
} else {
|
||||
RegionView3D *rv3d= CTX_wm_region_view3d(C);
|
||||
|
@ -1264,7 +1264,7 @@ void VIEW3D_OT_zoom(wmOperatorType *ot)
|
|||
ot->invoke= viewzoom_invoke;
|
||||
ot->exec= viewzoom_exec;
|
||||
ot->modal= viewzoom_modal;
|
||||
ot->poll= ED_operator_view3d_active;
|
||||
ot->poll= ED_operator_region_view3d_active;
|
||||
|
||||
/* flags */
|
||||
ot->flag= OPTYPE_BLOCKING|OPTYPE_GRAB_POINTER;
|
||||
|
@ -1522,7 +1522,7 @@ void VIEW3D_OT_view_selected(wmOperatorType *ot)
|
|||
|
||||
/* api callbacks */
|
||||
ot->exec= viewselected_exec;
|
||||
ot->poll= ED_operator_view3d_active;
|
||||
ot->poll= ED_operator_region_view3d_active;
|
||||
|
||||
/* flags */
|
||||
ot->flag= 0;
|
||||
|
@ -1822,7 +1822,7 @@ void VIEW3D_OT_zoom_border(wmOperatorType *ot)
|
|||
ot->exec= view3d_zoom_border_exec;
|
||||
ot->modal= WM_border_select_modal;
|
||||
|
||||
ot->poll= ED_operator_view3d_active;
|
||||
ot->poll= ED_operator_region_view3d_active;
|
||||
|
||||
/* flags */
|
||||
ot->flag= 0;
|
||||
|
@ -2044,7 +2044,7 @@ void VIEW3D_OT_viewnumpad(wmOperatorType *ot)
|
|||
|
||||
/* api callbacks */
|
||||
ot->exec= viewnumpad_exec;
|
||||
ot->poll= ED_operator_view3d_active;
|
||||
ot->poll= ED_operator_region_view3d_active;
|
||||
|
||||
/* flags */
|
||||
ot->flag= 0;
|
||||
|
@ -2162,7 +2162,7 @@ void VIEW3D_OT_view_pan(wmOperatorType *ot)
|
|||
|
||||
/* api callbacks */
|
||||
ot->exec= viewpan_exec;
|
||||
ot->poll= ED_operator_view3d_active;
|
||||
ot->poll= ED_operator_region_view3d_active;
|
||||
|
||||
/* flags */
|
||||
ot->flag= 0;
|
||||
|
@ -2194,7 +2194,7 @@ void VIEW3D_OT_view_persportho(wmOperatorType *ot)
|
|||
|
||||
/* api callbacks */
|
||||
ot->exec= viewpersportho_exec;
|
||||
ot->poll= ED_operator_view3d_active;
|
||||
ot->poll= ED_operator_region_view3d_active;
|
||||
|
||||
/* flags */
|
||||
ot->flag= 0;
|
||||
|
@ -2413,7 +2413,7 @@ void VIEW3D_OT_clip_border(wmOperatorType *ot)
|
|||
ot->exec= view3d_clipping_exec;
|
||||
ot->modal= WM_border_select_modal;
|
||||
|
||||
ot->poll= ED_operator_view3d_active;
|
||||
ot->poll= ED_operator_region_view3d_active;
|
||||
|
||||
/* flags */
|
||||
ot->flag= 0;
|
||||
|
|
|
@ -215,7 +215,7 @@ static int view3d_selectable_data(bContext *C)
|
|||
{
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
|
||||
if (!ED_operator_view3d_active(C))
|
||||
if (!ED_operator_region_view3d_active(C))
|
||||
return 0;
|
||||
|
||||
if (!CTX_data_edit_object(C))
|
||||
|
|
|
@ -569,7 +569,7 @@ void VIEW3D_OT_snap_selected_to_grid(wmOperatorType *ot)
|
|||
|
||||
/* api callbacks */
|
||||
ot->exec= snap_sel_to_grid;
|
||||
ot->poll= ED_operator_view3d_active;
|
||||
ot->poll= ED_operator_region_view3d_active;
|
||||
|
||||
/* flags */
|
||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||
|
@ -732,7 +732,7 @@ void VIEW3D_OT_snap_cursor_to_grid(wmOperatorType *ot)
|
|||
|
||||
/* api callbacks */
|
||||
ot->exec= snap_curs_to_grid;
|
||||
ot->poll= ED_operator_view3d_active;
|
||||
ot->poll= ED_operator_region_view3d_active;
|
||||
|
||||
/* flags */
|
||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||
|
|
|
@ -472,7 +472,7 @@ void VIEW3D_OT_object_as_camera(wmOperatorType *ot)
|
|||
|
||||
/* api callbacks */
|
||||
ot->exec= view3d_setobjectascamera_exec;
|
||||
ot->poll= ED_operator_view3d_active;
|
||||
ot->poll= ED_operator_region_view3d_active;
|
||||
|
||||
/* flags */
|
||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||
|
|
Loading…
Reference in New Issue