Blender V4.3
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
17static 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:
34 break;
35 }
36
38}
39
40void ED_workspace_do_listen(bContext *C, const wmNotifier * /*note*/)
41{
42 WorkSpace *workspace = CTX_wm_workspace(C);
43 validate_viewer_paths(*C, *workspace);
44}
WorkSpace * CTX_wm_workspace(const bContext *C)
void BKE_viewer_path_clear(ViewerPath *viewer_path)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define NC_VIEWER_PATH
Definition WM_types.hh:373
ViewerPath viewer_path
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void ED_workspace_do_listen(bContext *C, const wmNotifier *)
static void validate_viewer_paths(bContext &C, WorkSpace &workspace)