Revision: 531 Author: ntrel Date: 2006-07-03 05:58:58 -0700 (Mon, 03 Jul 2006) ViewCVS: http://svn.sourceforge.net/geany/?rev=531&view=rev
Log Message: ----------- Scroll to 1/4 of visible lines when going to a line number.
Modified Paths: -------------- trunk/ChangeLog trunk/src/sciwrappers.c trunk/src/sciwrappers.h trunk/src/utils.c Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2006-07-03 12:06:13 UTC (rev 530) +++ trunk/ChangeLog 2006-07-03 12:58:58 UTC (rev 531) @@ -2,6 +2,8 @@
* src/utils.c, src/dialogs.c: Fix a problem with the recent files menu. + * src/utils.c, src/sciwrappers.c, src/sciwrappers.h: + Scroll to 1/4 of visible lines when going to a line number.
2006-07-03 Enrico Tröger enrico.troeger@uvena.de
Modified: trunk/src/sciwrappers.c =================================================================== --- trunk/src/sciwrappers.c 2006-07-03 12:06:13 UTC (rev 530) +++ trunk/src/sciwrappers.c 2006-07-03 12:58:58 UTC (rev 531) @@ -669,6 +669,17 @@ }
+void sci_goto_line_scroll(ScintillaObject *sci, gint line, gdouble percent_of_view) +{ + gint vis1, los; + SSM(sci, SCI_GOTOLINE, line, 0); + + vis1 = SSM(sci, SCI_GETFIRSTVISIBLELINE, 0, 0); + los = SSM(sci, SCI_LINESONSCREEN, 0, 0); + sci_scroll_lines(sci, (line - los * percent_of_view) - vis1); +} + + void sci_marker_delete_all(ScintillaObject *sci, gint marker) { SSM(sci, SCI_MARKERDELETEALL, marker, 0);
Modified: trunk/src/sciwrappers.h =================================================================== --- trunk/src/sciwrappers.h 2006-07-03 12:06:13 UTC (rev 530) +++ trunk/src/sciwrappers.h 2006-07-03 12:58:58 UTC (rev 531) @@ -121,6 +121,7 @@ gint sci_find_text (ScintillaObject * sci, gint flags, struct TextToFind *ttf); void sci_set_font (ScintillaObject * sci, gint style, const gchar* font, gint size); void sci_goto_line (ScintillaObject * sci, gint line, gboolean ensure_visibility); +void sci_goto_line_scroll (ScintillaObject * sci, gint line, gdouble percent_of_view); void sci_marker_delete_all (ScintillaObject * sci, gint marker); gint sci_get_style_at (ScintillaObject * sci, gint position); void sci_set_symbol_margin (ScintillaObject * sci, gboolean set);
Modified: trunk/src/utils.c =================================================================== --- trunk/src/utils.c 2006-07-03 12:06:13 UTC (rev 530) +++ trunk/src/utils.c 2006-07-03 12:58:58 UTC (rev 531) @@ -526,13 +526,12 @@ if (idx == -1 || ! doc_list[idx].is_valid || line < 0) return FALSE;
- // mark the tag and ensure that we have arround 5 lines visible around the mark - sci_goto_line(doc_list[idx].sci, line - 5, FALSE); - sci_goto_line(doc_list[idx].sci, line + 5, FALSE); - sci_goto_line(doc_list[idx].sci, line, TRUE); + // mark the tag sci_marker_delete_all(doc_list[idx].sci, 0); sci_set_marker_at_line(doc_list[idx].sci, line, TRUE, 0);
+ sci_goto_line_scroll(doc_list[idx].sci, line, 0.25); + // finally switch to the page page_num = gtk_notebook_page_num(GTK_NOTEBOOK(app->notebook), GTK_WIDGET(doc_list[idx].sci)); gtk_notebook_set_current_page(GTK_NOTEBOOK(app->notebook), page_num);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.