[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39868] trunk/blender/source/blender: Partial fix for #28441: Tab width in texteditor ignored if used tabs as spaces

Sergey Sharybin g.ulairi at gmail.com
Fri Sep 2 11:39:21 CEST 2011


Revision: 39868
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39868
Author:   nazgul
Date:     2011-09-02 09:39:21 +0000 (Fri, 02 Sep 2011)
Log Message:
-----------
Partial fix for #28441: Tab width in texteditor ignored if used tabs as spaces

Scroll to cursor when displaying text datablock was changed.
This behavior was lost in 2.5x.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_text/space_text.c
    trunk/blender/source/blender/editors/space_text/text_draw.c
    trunk/blender/source/blender/editors/space_text/text_intern.h
    trunk/blender/source/blender/makesrna/intern/rna_space.c

Modified: trunk/blender/source/blender/editors/space_text/space_text.c
===================================================================
--- trunk/blender/source/blender/editors/space_text/space_text.c	2011-09-02 08:35:46 UTC (rev 39867)
+++ trunk/blender/source/blender/editors/space_text/space_text.c	2011-09-02 09:39:21 UTC (rev 39868)
@@ -154,6 +154,11 @@
 				case NA_REMOVED:
 					ED_area_tag_redraw(sa);
 					break;
+				case NA_SELECTED:
+					if(st->text && st->text == wmn->reference)
+						text_scroll_to_cursor(st, sa);
+
+					break;
 			}
 
 			break;

Modified: trunk/blender/source/blender/editors/space_text/text_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_text/text_draw.c	2011-09-02 08:35:46 UTC (rev 39867)
+++ trunk/blender/source/blender/editors/space_text/text_draw.c	2011-09-02 09:39:21 UTC (rev 39868)
@@ -1821,12 +1821,10 @@
 
 /* Moves the view to the cursor location,
   also used to make sure the view isnt outside the file */
-void text_update_cursor_moved(bContext *C)
+void text_scroll_to_cursor(SpaceText *st, ScrArea *sa)
 {
-	ScrArea *sa= CTX_wm_area(C);
-	SpaceText *st= CTX_wm_space_text(C);
 	Text *text;
-	ARegion *ar;
+	ARegion *ar= NULL;
 	int i, x, winx= 0;
 
 	if(ELEM3(NULL, st, st->text, st->text->curl)) return;
@@ -1834,8 +1832,10 @@
 	text= st->text;
 
 	for(ar=sa->regionbase.first; ar; ar= ar->next)
-		if(ar->regiontype==RGN_TYPE_WINDOW)
+		if(ar->regiontype==RGN_TYPE_WINDOW) {
 			winx= ar->winx;
+			break;
+		}
 	
 	winx -= TXT_SCROLL_WIDTH;
 
@@ -1844,7 +1844,7 @@
 	i= txt_get_span(text->lines.first, text->sell);
 	if(st->wordwrap) {
 		int offl, offc;
-		wrap_offset(st, CTX_wm_region(C), text->sell, text->selc, &offl, &offc);
+		wrap_offset(st, ar, text->sell, text->selc, &offl, &offc);
 		i+= offl;
 	}
 
@@ -1865,3 +1865,10 @@
 	if(st->left <0) st->left= 0;
 }
 
+void text_update_cursor_moved(bContext *C)
+{
+	ScrArea *sa= CTX_wm_area(C);
+	SpaceText *st= CTX_wm_space_text(C);
+
+	text_scroll_to_cursor(st, sa);
+}

Modified: trunk/blender/source/blender/editors/space_text/text_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_text/text_intern.h	2011-09-02 08:35:46 UTC (rev 39867)
+++ trunk/blender/source/blender/editors/space_text/text_intern.h	2011-09-02 09:39:21 UTC (rev 39868)
@@ -55,6 +55,7 @@
 void text_update_line_edited(struct TextLine *line);
 void text_update_edited(struct Text *text);
 void text_update_character_width(struct SpaceText *st);
+void text_scroll_to_cursor(struct SpaceText *st, struct ScrArea *sa);
 void text_update_cursor_moved(struct bContext *C);
 
 	/* TXT_OFFSET used to be 35 when the scrollbar was on the left... */

Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_space.c	2011-09-02 08:35:46 UTC (rev 39867)
+++ trunk/blender/source/blender/makesrna/intern/rna_space.c	2011-09-02 09:39:21 UTC (rev 39868)
@@ -591,7 +591,8 @@
 	SpaceText *st= (SpaceText*)(ptr->data);
 
 	st->text= value.data;
-	st->top= 0;
+
+	WM_main_add_notifier(NC_TEXT|NA_SELECTED, st->text);
 }
 
 static void rna_SpaceTextEditor_updateEdited(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)




More information about the Bf-blender-cvs mailing list