[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32119] trunk/blender/source/blender/ editors/space_text: Fix #23983: Text editor does not update immediately when unlinking a text

Sergey Sharybin g.ulairi at gmail.com
Sat Sep 25 15:27:42 CEST 2010


Revision: 32119
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32119
Author:   nazgul
Date:     2010-09-25 15:27:42 +0200 (Sat, 25 Sep 2010)

Log Message:
-----------
Fix #23983: Text editor does not update immediately when unlinking a text

- Unlinked text block was sending as reference to note which isn't safe at all
- Minor reorgonize of text space listener to use switches instead of big condition

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_text/space_text.c
    trunk/blender/source/blender/editors/space_text/text_ops.c

Modified: trunk/blender/source/blender/editors/space_text/space_text.c
===================================================================
--- trunk/blender/source/blender/editors/space_text/space_text.c	2010-09-25 11:30:46 UTC (rev 32118)
+++ trunk/blender/source/blender/editors/space_text/space_text.c	2010-09-25 13:27:42 UTC (rev 32119)
@@ -117,12 +117,25 @@
 	/* context changes */
 	switch(wmn->category) {
 		case NC_TEXT:
-			if(!wmn->reference || wmn->reference == st->text || wmn->data == ND_DISPLAY || wmn->action == NA_EDITED) {
+			/* check if active text was changed, no need to redraw if text isn't active
+			   reference==NULL means text was unlinked, should update anyway for this
+			   case -- no way to know was text active before unlinking or not */
+			if(wmn->reference && wmn->reference != st->text)
+				break;
+
+			if(wmn->data == ND_DISPLAY)
 				ED_area_tag_redraw(sa);
 
-				if(wmn->action == NA_EDITED)
+			switch(wmn->action) {
+				case NA_EDITED:
 					if(st->text)
 						text_update_edited(st->text);
+					ED_area_tag_redraw(sa);
+					/* no break -- fall down to tag redraw */
+				case NA_ADDED:
+				case NA_REMOVED:
+					ED_area_tag_redraw(sa);
+					break;
 			}
 
 			break;

Modified: trunk/blender/source/blender/editors/space_text/text_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_text/text_ops.c	2010-09-25 11:30:46 UTC (rev 32118)
+++ trunk/blender/source/blender/editors/space_text/text_ops.c	2010-09-25 13:27:42 UTC (rev 32119)
@@ -357,7 +357,7 @@
 
 	unlink_text(bmain, text);
 	free_libblock(&bmain->text, text);
-	WM_event_add_notifier(C, NC_TEXT|NA_REMOVED, text);
+	WM_event_add_notifier(C, NC_TEXT|NA_REMOVED, NULL);
 
 	return OPERATOR_FINISHED;
 }





More information about the Bf-blender-cvs mailing list