diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-02-28 15:09:33 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-02-28 15:09:33 +0300 |
commit | 1aeb9294f4aad7f7cdc6aa1b946d0f92e413710f (patch) | |
tree | 80a76762321862eb871912b5c35ff6fcff9fd769 /source/blender/editors/screen/workspace_edit.c | |
parent | 9e9cb9fce9c74d32b4f7fad9fdbcbbc59acc53b9 (diff) |
WorkSpace: use existing objects mode on select
When selecting an object which is already visible in another window
use the mode from that workspace without performing any mode switching.
Diffstat (limited to 'source/blender/editors/screen/workspace_edit.c')
-rw-r--r-- | source/blender/editors/screen/workspace_edit.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/source/blender/editors/screen/workspace_edit.c b/source/blender/editors/screen/workspace_edit.c index 94527b82ce8..839b7468d4b 100644 --- a/source/blender/editors/screen/workspace_edit.c +++ b/source/blender/editors/screen/workspace_edit.c @@ -336,11 +336,31 @@ void ED_workspace_object_mode_sync_from_scene(wmWindowManager *wm, WorkSpace *wo { ViewLayer *view_layer = BKE_workspace_view_layer_get(workspace, scene); if (view_layer) { - Object *obact = obact = OBACT(view_layer); + Object *obact = OBACT(view_layer); ED_workspace_object_mode_sync_from_object(wm, workspace, obact); } } +bool ED_workspace_object_mode_in_other_window( + struct wmWindowManager *wm, WorkSpace *workspace, Object *obact, + eObjectMode *r_object_mode) +{ + for (wmWindow *win = wm->windows.first; win; win = win->next) { + WorkSpace *workspace_iter = BKE_workspace_active_get(win->workspace_hook); + if (workspace != workspace_iter) { + Scene *scene_iter = WM_window_get_active_scene(win); + ViewLayer *view_layer_iter = BKE_view_layer_from_workspace_get(scene_iter, workspace_iter); + Object *obact_iter = OBACT(view_layer_iter); + if (obact == obact_iter) { + *r_object_mode = workspace_iter->object_mode; + return true; + } + } + } + + return false; +} + /** \} Workspace API */ |