Blender V4.5
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 "BLI_listbase.h"
6
7#include "BKE_context.hh"
8#include "BKE_viewer_path.hh"
9
10#include "ED_screen.hh"
11#include "ED_viewer_path.hh"
12
13#include "WM_api.hh"
14
20static void validate_viewer_paths(bContext &C, WorkSpace &workspace)
21{
22 if (BLI_listbase_is_empty(&workspace.viewer_path.path)) {
23 return;
24 }
25
26 using namespace blender::ed::viewer_path;
27
28 const UpdateActiveGeometryNodesViewerResult result = update_active_geometry_nodes_viewer(
29 C, workspace.viewer_path);
30 switch (result) {
31 case UpdateActiveGeometryNodesViewerResult::StillActive:
32 return;
33 case UpdateActiveGeometryNodesViewerResult::Updated:
34 break;
35 case UpdateActiveGeometryNodesViewerResult::NotActive:
37 break;
38 }
39
41}
42
43void ED_workspace_do_listen(bContext *C, const wmNotifier * /*note*/)
44{
45 WorkSpace *workspace = CTX_wm_workspace(C);
46 validate_viewer_paths(*C, *workspace);
47}
WorkSpace * CTX_wm_workspace(const bContext *C)
void BKE_viewer_path_clear(ViewerPath *viewer_path)
BLI_INLINE bool BLI_listbase_is_empty(const ListBase *lb)
#define NC_VIEWER_PATH
Definition WM_types.hh:403
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)