Blender
V4.3
source
blender
editors
screen
workspace_listen.cc
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2023 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#include "
BKE_context.hh
"
6
7
#include "
ED_screen.hh
"
8
#include "
ED_viewer_path.hh
"
9
10
#include "
WM_api.hh
"
11
17
static
void
validate_viewer_paths
(
bContext
&C,
WorkSpace
&workspace)
18
{
19
if
(
BLI_listbase_is_empty
(&workspace.
viewer_path
.
path
)) {
20
return
;
21
}
22
23
using namespace
blender::ed::viewer_path
;
24
25
const
UpdateActiveGeometryNodesViewerResult
result = update_active_geometry_nodes_viewer(
26
C, workspace.
viewer_path
);
27
switch
(result) {
28
case
UpdateActiveGeometryNodesViewerResult::StillActive:
29
return
;
30
case
UpdateActiveGeometryNodesViewerResult::Updated:
31
break
;
32
case
UpdateActiveGeometryNodesViewerResult::NotActive:
33
BKE_viewer_path_clear
(&workspace.
viewer_path
);
34
break
;
35
}
36
37
WM_event_add_notifier
(&C,
NC_VIEWER_PATH
,
nullptr
);
38
}
39
40
void
ED_workspace_do_listen
(
bContext
*C,
const
wmNotifier
*
/*note*/
)
41
{
42
WorkSpace
*workspace =
CTX_wm_workspace
(C);
43
validate_viewer_paths
(*C, *workspace);
44
}
BKE_context.hh
CTX_wm_workspace
WorkSpace * CTX_wm_workspace(const bContext *C)
Definition
blenkernel/intern/context.cc:740
BKE_viewer_path_clear
void BKE_viewer_path_clear(ViewerPath *viewer_path)
Definition
viewer_path.cc:26
BLI_listbase_is_empty
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
Definition
BLI_listbase.h:298
ED_screen.hh
ED_viewer_path.hh
WM_api.hh
NC_VIEWER_PATH
#define NC_VIEWER_PATH
Definition
WM_types.hh:373
blender::ed::viewer_path
Definition
ED_viewer_path.hh:21
blender::ed::viewer_path::UpdateActiveGeometryNodesViewerResult
UpdateActiveGeometryNodesViewerResult
Definition
ED_viewer_path.hh:66
ViewerPath::path
ListBase path
Definition
DNA_viewer_path_types.h:76
WorkSpace
Definition
DNA_workspace_types.h:126
WorkSpace::viewer_path
ViewerPath viewer_path
Definition
DNA_workspace_types.h:169
bContext
Definition
blenkernel/intern/context.cc:61
wmNotifier
Definition
WM_types.hh:320
WM_event_add_notifier
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
Definition
wm_event_system.cc:387
ED_workspace_do_listen
void ED_workspace_do_listen(bContext *C, const wmNotifier *)
Definition
workspace_listen.cc:40
validate_viewer_paths
static void validate_viewer_paths(bContext &C, WorkSpace &workspace)
Definition
workspace_listen.cc:17
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0