Revision: 5143 http://geany.svn.sourceforge.net/geany/?rev=5143&view=rev Author: ntrel Date: 2010-08-11 14:44:21 +0000 (Wed, 11 Aug 2010)
Log Message: ----------- r5098
Modified Paths: -------------- branches/Geany-0_19_1/ChangeLog branches/Geany-0_19_1/src/editor.c
Modified: branches/Geany-0_19_1/ChangeLog =================================================================== --- branches/Geany-0_19_1/ChangeLog 2010-08-11 14:41:15 UTC (rev 5142) +++ branches/Geany-0_19_1/ChangeLog 2010-08-11 14:44:21 UTC (rev 5143) @@ -1,3 +1,11 @@ +2010-07-09 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com> + + * src/editor.c: + Fix scrolling the editor line in view after loading a session and + switching document tabs. Note this causes repainting so needs + improvement. + + 2010-07-07 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/build.c, src/project.c, src/project.h:
Modified: branches/Geany-0_19_1/src/editor.c =================================================================== --- branches/Geany-0_19_1/src/editor.c 2010-08-11 14:41:15 UTC (rev 5142) +++ branches/Geany-0_19_1/src/editor.c 2010-08-11 14:44:21 UTC (rev 5143) @@ -394,15 +394,6 @@
ui_update_statusbar(editor->document, pos);
- /* Visible lines are only laid out accurately once [SCN_UPDATEUI] is sent, - * so we need to only call sci_scroll_to_line here, because the document - * may have line wrapping and folding enabled. - * http://scintilla.sourceforge.net/ScintillaDoc.html#LineWrapping */ - if (editor->scroll_percent > 0.0F) - { - editor_scroll_to_line(editor, -1, editor->scroll_percent); - editor->scroll_percent = -1.0F; /* disable further scrolling */ - } #if 0 /** experimental code for inverting selections */ { @@ -910,6 +901,23 @@ on_update_ui(editor, nt); break;
+ case SCN_PAINTED: + /* Visible lines are only laid out accurately just before painting, + * so we need to only call editor_scroll_to_line here, because the document + * may have line wrapping and folding enabled. + * http://scintilla.sourceforge.net/ScintillaDoc.html#LineWrapping + * This is important e.g. when loading a session and switching pages + * and having the cursor scroll in view. */ + /* FIXME: Really we want to do this just before painting, not after it + * as it will cause repainting. */ + if (editor->scroll_percent > 0.0F) + { + editor_scroll_to_line(editor, -1, editor->scroll_percent); + /* disable further scrolling */ + editor->scroll_percent = -1.0F; + } + break; + case SCN_MODIFIED: if (editor_prefs.show_linenumber_margin && (nt->modificationType & (SC_MOD_INSERTTEXT | SC_MOD_DELETETEXT)) && nt->linesAdded) { @@ -4699,13 +4707,13 @@ }
-/* This is just to catch any uncolourised documents being drawn that didn't receive focus - * for some reason, maybe it's not necessary but just in case. */ static gboolean on_editor_expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer user_data) { GeanyEditor *editor = user_data;
+ /* This is just to catch any uncolourised documents being drawn that didn't receive focus + * for some reason, maybe it's not necessary but just in case. */ editor_check_colourise(editor); return FALSE; }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.