[Bf-blender-cvs] [be36c4d37d7] temp-spreadsheet-editor: initial listeners for main region
Jacques Lucke
noreply at git.blender.org
Mon Mar 1 18:18:24 CET 2021
Commit: be36c4d37d7e3b600c5daf10e4e12101cc16de15
Author: Jacques Lucke
Date: Mon Mar 1 16:59:04 2021 +0100
Branches: temp-spreadsheet-editor
https://developer.blender.org/rBbe36c4d37d7e3b600c5daf10e4e12101cc16de15
initial listeners for main region
===================================================================
M source/blender/editors/space_spreadsheet/space_spreadsheet.cc
M source/blender/makesrna/intern/rna_space.c
M source/blender/windowmanager/WM_types.h
===================================================================
diff --git a/source/blender/editors/space_spreadsheet/space_spreadsheet.cc b/source/blender/editors/space_spreadsheet/space_spreadsheet.cc
index bdb0b81dc97..ee5a689f885 100644
--- a/source/blender/editors/space_spreadsheet/space_spreadsheet.cc
+++ b/source/blender/editors/space_spreadsheet/space_spreadsheet.cc
@@ -149,8 +149,34 @@ static void spreadsheet_main_region_draw(const bContext *C, ARegion *region)
static void spreadsheet_main_region_listener(const wmRegionListenerParams *params)
{
- /* TODO: Do more precise check. */
- ED_region_tag_redraw(params->region);
+ ARegion *region = params->region;
+ wmNotifier *wmn = params->notifier;
+
+ switch (wmn->category) {
+ case NC_SCENE: {
+ switch (wmn->data) {
+ case ND_OB_ACTIVE: {
+ ED_region_tag_redraw(region);
+ break;
+ }
+ }
+ break;
+ }
+ case NC_OBJECT: {
+ ED_region_tag_redraw(region);
+ break;
+ }
+ case NC_SPACE: {
+ if (wmn->data == ND_SPACE_SPREADSHEET) {
+ ED_region_tag_redraw(region);
+ }
+ break;
+ }
+ case NC_GEOM: {
+ ED_region_tag_redraw(region);
+ break;
+ }
+ }
}
static void spreadsheet_header_region_init(wmWindowManager *UNUSED(wm), ARegion *region)
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index f2f2aa1b34d..4e793d0e133 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -7196,13 +7196,13 @@ static void rna_def_space_spreadsheet(BlenderRNA *brna)
RNA_def_property_flag(prop, PROP_EDITABLE);
RNA_def_property_pointer_funcs(prop, NULL, "rna_SpaceSpreadsheet_pinned_id_set", NULL, NULL);
RNA_def_property_ui_text(prop, "Pinned ID", "Data-block whose values are displayed");
- RNA_def_property_update(prop, NC_SPACE, NULL);
+ RNA_def_property_update(prop, NC_SPACE | ND_SPACE_SPREADSHEET, NULL);
prop = RNA_def_property(srna, "show_only_selected", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "filter_flag", SPREADSHEET_FILTER_SELECTED_ONLY);
RNA_def_property_ui_text(
prop, "Show Only Selected", "Only include rows that correspond to selected elements");
- RNA_def_property_update(prop, NC_SPACE, NULL);
+ RNA_def_property_update(prop, NC_SPACE | ND_SPACE_SPREADSHEET, NULL);
}
void RNA_def_space(BlenderRNA *brna)
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h
index d40c0715a09..686194e8b0e 100644
--- a/source/blender/windowmanager/WM_types.h
+++ b/source/blender/windowmanager/WM_types.h
@@ -427,6 +427,7 @@ typedef struct wmNotifier {
#define ND_SPACE_CHANGED (19 << 16) /*sent to a new editor type after it's replaced an old one*/
#define ND_SPACE_CLIP (20 << 16)
#define ND_SPACE_FILE_PREVIEW (21 << 16)
+#define ND_SPACE_SPREADSHEET (22 << 16)
/* subtype, 256 entries too */
#define NOTE_SUBTYPE 0x0000FF00
More information about the Bf-blender-cvs
mailing list