[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28041] trunk/blender/source/blender: Fix #21402: python operator redo properties not refreshed.
Brecht Van Lommel
brecht at blender.org
Tue Apr 6 11:07:39 CEST 2010
Revision: 28041
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28041
Author: blendix
Date: 2010-04-06 11:07:39 +0200 (Tue, 06 Apr 2010)
Log Message:
-----------
Fix #21402: python operator redo properties not refreshed. Now sends a
NC_WM|ND_HISTORY notifier on registering an operator.
Modified Paths:
--------------
trunk/blender/source/blender/editors/screen/area.c
trunk/blender/source/blender/editors/space_view3d/space_view3d.c
trunk/blender/source/blender/windowmanager/WM_types.h
trunk/blender/source/blender/windowmanager/intern/wm.c
Modified: trunk/blender/source/blender/editors/screen/area.c
===================================================================
--- trunk/blender/source/blender/editors/screen/area.c 2010-04-06 09:05:00 UTC (rev 28040)
+++ trunk/blender/source/blender/editors/screen/area.c 2010-04-06 09:07:39 UTC (rev 28041)
@@ -125,12 +125,12 @@
case NC_SCREEN:
if(note->action==NA_EDITED)
ED_region_tag_redraw(ar);
- /* pass on */
+ break;
#endif
- default:
- if(ar->type && ar->type->listener)
- ar->type->listener(ar, note);
}
+
+ if(ar->type && ar->type->listener)
+ ar->type->listener(ar, note);
}
/* only exported for WM */
Modified: trunk/blender/source/blender/editors/space_view3d/space_view3d.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/space_view3d.c 2010-04-06 09:05:00 UTC (rev 28040)
+++ trunk/blender/source/blender/editors/space_view3d/space_view3d.c 2010-04-06 09:07:39 UTC (rev 28041)
@@ -770,6 +770,25 @@
ED_region_panels(C, ar, 1, CTX_data_mode_string(C), -1);
}
+static void view3d_props_area_listener(ARegion *ar, wmNotifier *wmn)
+{
+ /* context changes */
+ switch(wmn->category) {
+ case NC_WM:
+ if(wmn->data == ND_HISTORY)
+ ED_region_tag_redraw(ar);
+ break;
+ case NC_SCENE:
+ if(wmn->data == ND_MODE)
+ ED_region_tag_redraw(ar);
+ break;
+ case NC_SPACE:
+ if(wmn->data == ND_SPACE_VIEW3D)
+ ED_region_tag_redraw(ar);
+ break;
+ }
+}
+
static int view3d_context(const bContext *C, const char *member, bContextDataResult *result)
{
View3D *v3d= CTX_wm_view3d(C);
@@ -952,7 +971,7 @@
art->prefsizex= 0;
art->prefsizey= 120;
art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_FRAMES;
- art->listener= view3d_buttons_area_listener;
+ art->listener= view3d_props_area_listener;
art->init= view3d_tools_area_init;
art->draw= view3d_tools_area_draw;
BLI_addhead(&st->regiontypes, art);
Modified: trunk/blender/source/blender/windowmanager/WM_types.h
===================================================================
--- trunk/blender/source/blender/windowmanager/WM_types.h 2010-04-06 09:05:00 UTC (rev 28040)
+++ trunk/blender/source/blender/windowmanager/WM_types.h 2010-04-06 09:07:39 UTC (rev 28041)
@@ -157,6 +157,7 @@
#define ND_FILEREAD (1<<16)
#define ND_FILESAVE (2<<16)
#define ND_DATACHANGED (3<<16)
+#define ND_HISTORY (4<<16)
/* NC_SCREEN screen */
#define ND_SCREENBROWSE (1<<16)
Modified: trunk/blender/source/blender/windowmanager/intern/wm.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm.c 2010-04-06 09:05:00 UTC (rev 28040)
+++ trunk/blender/source/blender/windowmanager/intern/wm.c 2010-04-06 09:07:39 UTC (rev 28041)
@@ -124,6 +124,7 @@
/* so the console is redrawn */
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_CONSOLE_REPORT, NULL);
+ WM_event_add_notifier(C, NC_WM|ND_HISTORY, NULL);
}
@@ -137,6 +138,7 @@
WM_operator_free(op);
}
+ WM_event_add_notifier(C, NC_WM|ND_HISTORY, NULL);
}
/* ****************************************** */
More information about the Bf-blender-cvs
mailing list