Fix crash when deleting workspace active in multiple windows

This commit is contained in:
Julian Eisel
2017-10-06 18:01:40 +02:00
parent 5ec270c20c
commit b0ecd2eaaa
2 changed files with 4 additions and 4 deletions

View File

@@ -140,7 +140,7 @@ struct WorkSpace *ED_workspace_duplicate(
bool ED_workspace_delete(
struct WorkSpace *workspace,
struct Main *bmain, struct bContext *C,
struct wmWindowManager *wm, struct wmWindow *win) ATTR_NONNULL();
struct wmWindowManager *wm) ATTR_NONNULL();
void ED_workspace_scene_data_sync(
struct WorkSpaceInstanceHook *hook, Scene *scene) ATTR_NONNULL();
void ED_workspace_render_layer_unset(

View File

@@ -239,7 +239,7 @@ WorkSpace *ED_workspace_duplicate(
* \return if succeeded.
*/
bool ED_workspace_delete(
WorkSpace *workspace, Main *bmain, bContext *C, wmWindowManager *wm, wmWindow *win)
WorkSpace *workspace, Main *bmain, bContext *C, wmWindowManager *wm)
{
ID *workspace_id = (ID *)workspace;
@@ -247,7 +247,7 @@ bool ED_workspace_delete(
return false;
}
if (WM_window_get_active_workspace(win) == workspace) {
for (wmWindow *win = wm->windows.first; win; win = win->next) {
WorkSpace *prev = workspace_id->prev;
WorkSpace *next = workspace_id->next;
@@ -315,7 +315,7 @@ static int workspace_delete_exec(bContext *C, wmOperator *UNUSED(op))
wmWindowManager *wm = CTX_wm_manager(C);
wmWindow *win = CTX_wm_window(C);
ED_workspace_delete(WM_window_get_active_workspace(win), bmain, C, wm, win);
ED_workspace_delete(WM_window_get_active_workspace(win), bmain, C, wm);
return OPERATOR_FINISHED;
}