diff options
author | Joshua Leung <aligorith@gmail.com> | 2014-01-04 16:24:29 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2014-01-04 16:24:54 +0400 |
commit | 1db7f2f93d9d7a119be7998f5acb4a8f9547d8b9 (patch) | |
tree | 5c18017ccd47d52d6d367c0d3b1e8808d0a4432f /source | |
parent | 6063c58cc6d1e82d2288e0aa99846ab8ccd0228b (diff) |
Quick fix for system info text always being scrolled out of view when loaded for the first time
Added an API method to Text datablocks for moving the cursor to a specific line in the
file. This makes it possible to reset the cursor position at the end of the sysinfo
operator.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/makesrna/intern/rna_text_api.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/source/blender/makesrna/intern/rna_text_api.c b/source/blender/makesrna/intern/rna_text_api.c index de398bc10a6..4d88430fab0 100644 --- a/source/blender/makesrna/intern/rna_text_api.c +++ b/source/blender/makesrna/intern/rna_text_api.c @@ -50,6 +50,20 @@ static void rna_Text_write(Text *text, const char *str) WM_main_add_notifier(NC_TEXT | NA_EDITED, text); } +static void rna_Text_jump(Text *text, int line) +{ + short nlines = txt_get_span(text->lines.first, text->lines.last) + 1; + + if (line < 1) + txt_move_toline(text, 1, 0); + else if (line > nlines) + txt_move_toline(text, nlines - 1, 0); + else + txt_move_toline(text, line - 1, 0); + + WM_main_add_notifier(NC_TEXT | ND_CURSOR, text); +} + #else void RNA_api_text(StructRNA *srna) @@ -61,9 +75,15 @@ void RNA_api_text(StructRNA *srna) RNA_def_function_ui_description(func, "clear the text block"); func = RNA_def_function(srna, "write", "rna_Text_write"); - RNA_def_function_ui_description(func, "write text at the cursor location and advance to the end of the text block"); + RNA_def_function_ui_description(func, "Write text at the cursor location and advance to the end of the text block"); prop = RNA_def_string(func, "text", "Text", 0, "", "New text for this datablock"); RNA_def_property_flag(prop, PROP_REQUIRED); + + func = RNA_def_function(srna, "jump", "rna_Text_jump"); + RNA_def_function_ui_description(func, "Move cursor location to the start of the specified line"); + prop = RNA_def_int(func, "line_number", 1, 1, INT_MAX, "Line", "Line number to jump to", 1, 10000); + RNA_def_property_flag(prop, PROP_REQUIRED); + /* TODO: include optional parameter for character on line to jump to? */ } #endif |