[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26295] trunk/blender/source/blender/ editors/space_text: Fix #19580: text editor - current line is dependent on the
Brecht Van Lommel
brecht at blender.org
Tue Jan 26 13:12:31 CET 2010
Revision: 26295
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26295
Author: blendix
Date: 2010-01-26 13:12:31 +0100 (Tue, 26 Jan 2010)
Log Message:
-----------
Fix #19580: text editor - current line is dependent on the
text datablock, not the editor.
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/editors/space_text/text_ops.c
trunk/blender/source/blender/editors/space_text/text_python.c
Modified: trunk/blender/source/blender/editors/space_text/space_text.c
===================================================================
--- trunk/blender/source/blender/editors/space_text/space_text.c 2010-01-26 11:51:28 UTC (rev 26294)
+++ trunk/blender/source/blender/editors/space_text/space_text.c 2010-01-26 12:12:31 UTC (rev 26295)
@@ -127,14 +127,6 @@
if(!wmn->reference || wmn->reference == st->text) {
ED_area_tag_redraw(sa);
- if(wmn->data == ND_CURSOR || wmn->action == NA_EDITED) {
- ARegion *ar;
-
- for(ar=sa->regionbase.first; ar; ar= ar->next)
- if(ar->regiontype==RGN_TYPE_WINDOW)
- text_update_cursor_moved(st, ar);
- }
-
if(wmn->action == NA_EDITED)
if(st->text)
text_update_edited(st->text);
Modified: trunk/blender/source/blender/editors/space_text/text_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_text/text_draw.c 2010-01-26 11:51:28 UTC (rev 26294)
+++ trunk/blender/source/blender/editors/space_text/text_draw.c 2010-01-26 12:12:31 UTC (rev 26295)
@@ -43,6 +43,7 @@
#include "DNA_screen_types.h"
#include "DNA_userdef_types.h"
+#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_main.h"
#include "BKE_suggestions.h"
@@ -1311,11 +1312,20 @@
/* Moves the view to the cursor location,
also used to make sure the view isnt outside the file */
-void text_update_cursor_moved(SpaceText *st, ARegion *ar)
+void text_update_cursor_moved(bContext *C)
{
+ ScrArea *sa= CTX_wm_area(C);
+ SpaceText *st= CTX_wm_space_text(C);
Text *text= st->text;
- int i, x;
+ ARegion *ar;
+ int i, x, winx= 0;
+ if(!st) return;
+
+ for(ar=sa->regionbase.first; ar; ar= ar->next)
+ if(ar->regiontype==RGN_TYPE_WINDOW)
+ winx= ar->winx;
+
if(!text || !text->curl) return;
text_update_character_width(st);
@@ -1330,8 +1340,8 @@
else {
x= text_draw(st, text->sell->line, st->left, text->selc, 0, 0, 0, NULL);
- if(x==0 || x>ar->winx)
- st->left= text->curc-0.5*(ar->winx)/st->cwidth;
+ if(x==0 || x>winx)
+ st->left= text->curc-0.5*winx/st->cwidth;
}
if(st->top < 0) st->top= 0;
Modified: trunk/blender/source/blender/editors/space_text/text_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_text/text_intern.h 2010-01-26 11:51:28 UTC (rev 26294)
+++ trunk/blender/source/blender/editors/space_text/text_intern.h 2010-01-26 12:12:31 UTC (rev 26295)
@@ -56,7 +56,7 @@
void text_update_line_edited(struct Text *text, struct TextLine *line);
void text_update_edited(struct Text *text);
void text_update_character_width(struct SpaceText *st);
-void text_update_cursor_moved(struct SpaceText *st, struct ARegion *ar);
+void text_update_cursor_moved(struct bContext *C);
#define TEXTXLOC (st->cwidth * st->linenrs_tot)
Modified: trunk/blender/source/blender/editors/space_text/text_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_text/text_ops.c 2010-01-26 11:51:28 UTC (rev 26294)
+++ trunk/blender/source/blender/editors/space_text/text_ops.c 2010-01-26 12:12:31 UTC (rev 26295)
@@ -307,6 +307,7 @@
#endif
text_update_edited(text);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -337,10 +338,12 @@
if(st) {
if(text->id.prev) {
st->text = text->id.prev;
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, st->text);
}
else if(text->id.next) {
st->text = text->id.next;
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, st->text);
}
}
@@ -378,6 +381,7 @@
text->name= NULL;
}
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -447,6 +451,7 @@
txt_write_file(text, op->reports);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -482,6 +487,7 @@
txt_write_file(text, op->reports);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -720,7 +726,7 @@
MEM_freeN(buf);
- WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
/* run the script while editing, evil but useful */
@@ -789,7 +795,7 @@
txt_copy_clipboard(text);
txt_delete_selected(text);
- WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
/* run the script while editing, evil but useful */
@@ -826,7 +832,7 @@
text_update_edited(text);
- WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -856,7 +862,7 @@
text_update_edited(text);
- WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -897,7 +903,7 @@
text_update_line_edited(text, text->curl);
}
- WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_CANCELLED;
@@ -926,6 +932,7 @@
comment(text);
text_update_edited(text);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
}
@@ -956,6 +963,7 @@
uncomment(text);
text_update_edited(text);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -1097,7 +1105,7 @@
}
text_update_edited(text);
-
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -1126,6 +1134,7 @@
txt_sel_all(text);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -1151,6 +1160,7 @@
txt_sel_line(text);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -1186,6 +1196,7 @@
txt_move_to(text, mrk->lineno, mrk->end, 1);
}
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -1221,6 +1232,7 @@
txt_move_to(text, mrk->lineno, mrk->end, 1);
}
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -1246,6 +1258,7 @@
txt_clear_markers(text, 0, 0);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -1519,7 +1532,7 @@
break;
}
- WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -1584,6 +1597,7 @@
txt_move_toline(text, line-1, 0);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
return OPERATOR_FINISHED;
@@ -1630,7 +1644,7 @@
text_update_line_edited(text, text->curl);
- WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
/* run the script while editing, evil but useful */
@@ -2057,6 +2071,7 @@
set_cursor_to_pos(st, ar, event->mval[0], event->mval[1]<0?0:ar->winy, 1);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, st->text);
}
else if(!st->wordwrap && (event->mval[0]<0 || event->mval[0]>ar->winx)) {
@@ -2065,12 +2080,14 @@
set_cursor_to_pos(st, ar, event->mval[0], event->mval[1], 1);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, st->text);
// XXX PIL_sleep_ms(10);
}
else {
set_cursor_to_pos(st, ar, event->mval[0], event->mval[1], 1);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, st->text);
scu->old[0]= event->mval[0];
@@ -2098,6 +2115,7 @@
if(scu->sell!=linep2 || scu->selc!=charp2)
txt_undo_add_toop(st->text, UNDO_STO, scu->sell, scu->selc, linep2, charp2);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, st->text);
MEM_freeN(scu);
@@ -2210,6 +2228,7 @@
txt_move_toline(text, jump_to-1, 0);
last_jump= time;
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
return OPERATOR_FINISHED;
@@ -2255,7 +2274,7 @@
text_update_line_edited(text, text->curl);
- WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -2338,6 +2357,7 @@
MEM_freeN(text->curl->format);
text->curl->format= NULL;
}
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
}
else if(mode==TEXT_MARK_ALL) {
@@ -2350,6 +2370,7 @@
}
txt_add_marker(text, text->curl, text->curc, text->selc, color, TMARK_GRP_FINDALL, TMARK_EDITALL);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
}
}
@@ -2359,6 +2380,7 @@
/* Find next */
if(txt_find_string(text, st->findstr, flags & ST_FIND_WRAP)) {
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
}
else if(flags & ST_FIND_ALL) {
@@ -2369,6 +2391,7 @@
else
text= st->text= G.main->text.first;
txt_move_toline(text, 0, 0);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
first= 1;
}
@@ -2679,7 +2702,7 @@
text_update_edited(text);
- WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
+ text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
}
Modified: trunk/blender/source/blender/editors/space_text/text_python.c
===================================================================
--- trunk/blender/source/blender/editors/space_text/text_python.c 2010-01-26 11:51:28 UTC (rev 26294)
+++ trunk/blender/source/blender/editors/space_text/text_python.c 2010-01-26 12:12:31 UTC (rev 26295)
@@ -401,6 +401,7 @@
if(marker) {
txt_move_to(text, marker->lineno, marker->start, 0);
txt_move_to(text, marker->lineno, marker->end, 1);
+ // XXX text_update_cursor_moved(C);
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list