[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