From 4e2228525fc9bbcff58e315c5e3bbc193cd63a0b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 3 Jul 2018 15:34:26 +0200 Subject: Workspaces: add main and child windows. * Main windows show a topbar and statusbar, and select a workspace and scene. They are created with Window > New Main Window. * Child windows do not show a topbar or statusbar. These follow the workspace and scene of their parent main window. Created with Window > New Window or View > Duplicate Area into New Window. * The purpose of this change is to support multi monitor setups where you just want to put more editors on the other monitors. Without multiple topbars and statusbars, working within a single workspace and scene. Creating multiple main windows is intended to be a concious choice to do different tasks in different workspaces and scenes. * Note these changes do not currently affect how the operating system treats the windows. * When changing the workspace, the layout in all child windows changes. This makes sense if we consider child windows to be just a way to extend the main window across more monitors. In some case it may be useful to keep the same layout though, we can add an option for this depending on user feedback. --- source/blender/makesdna/DNA_windowmanager_types.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender/makesdna/DNA_windowmanager_types.h') diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h index c6ad1470561..0ef9e9b134a 100644 --- a/source/blender/makesdna/DNA_windowmanager_types.h +++ b/source/blender/makesdna/DNA_windowmanager_types.h @@ -186,8 +186,10 @@ typedef struct wmWindow { void *ghostwin; /* don't want to include ghost.h stuff */ void *gwnctx; /* don't want to include gawin stuff */ - struct Scene *scene; /* The scene displayed in this window. */ - struct Scene *new_scene; /* temporary when switching */ + struct wmWindow *parent; /* Parent window */ + + struct Scene *scene; /* The scene displayed in this window. */ + struct Scene *new_scene; /* temporary when switching */ struct WorkSpaceInstanceHook *workspace_hook; -- cgit v1.2.3