SF.net SVN: geany: [1923] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Mon Oct 1 12:22:44 UTC 2007
Revision: 1923
http://geany.svn.sourceforge.net/geany/?rev=1923&view=rev
Author: eht16
Date: 2007-10-01 05:22:44 -0700 (Mon, 01 Oct 2007)
Log Message:
-----------
Fix scrolling bugs when searching text and the cursor is outside of the current visible area.
Unfold search result.
Also print version of Geany together with GTK/GLib version information.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/callbacks.c
trunk/src/document.c
trunk/src/main.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-10-01 11:46:19 UTC (rev 1922)
+++ trunk/ChangeLog 2007-10-01 12:22:44 UTC (rev 1923)
@@ -1,3 +1,12 @@
+2007-10-01 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+
+ * src/document.c: Fix scrolling bugs when searching text and the cursor
+ is outside of the current visible area.
+ Unfold search result.
+ * src/main.c: Also print version of Geany together with GTK/GLib
+ version information.
+
+
2007-10-01 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* tagmanager/python.c:
Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c 2007-10-01 11:46:19 UTC (rev 1922)
+++ trunk/src/callbacks.c 2007-10-01 12:22:44 UTC (rev 1923)
@@ -654,7 +654,6 @@
on_toolbutton18_clicked (GtkToolButton *toolbutton,
gpointer user_data)
{
- //on_entry1_changed(NULL, NULL);
gint idx = document_get_cur_idx();
gboolean result;
GtkWidget *entry = lookup_widget(GTK_WIDGET(app->window), "entry1");
Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c 2007-10-01 11:46:19 UTC (rev 1922)
+++ trunk/src/document.c 2007-10-01 12:22:44 UTC (rev 1923)
@@ -1268,9 +1268,16 @@
if (search_pos != -1)
{
+ // unfold maybe folded results
+ sci_ensure_line_is_visible(doc_list[idx].sci,
+ sci_get_line_from_position(doc_list[idx].sci, ttf.chrgText.cpMin));
+
sci_set_selection_start(doc_list[idx].sci, ttf.chrgText.cpMin);
sci_set_selection_end(doc_list[idx].sci, ttf.chrgText.cpMax);
- doc_list[idx].scroll_percent = 0.3F;
+
+ // we need to force scrolling in case the cursor is outside of the current visible area
+ // doc_list[].scroll_percent doesn't work because sci isn't always updated while searching
+ editor_scroll_to_line(doc_list[idx].sci, -1, 0.3F);
return TRUE;
}
else
@@ -1292,15 +1299,13 @@
gint document_find_text(gint idx, const gchar *text, gint flags, gboolean search_backwards,
gboolean scroll, GtkWidget *parent)
{
- gint selection_end, selection_start, search_pos, first_visible_line;
+ gint selection_end, selection_start, search_pos;
g_return_val_if_fail(text != NULL, -1);
if (idx == -1 || ! *text) return -1;
// Sci doesn't support searching backwards with a regex
if (flags & SCFIND_REGEXP) search_backwards = FALSE;
- first_visible_line = sci_get_first_visible_line(doc_list[idx].sci);
-
selection_start = sci_get_selection_start(doc_list[idx].sci);
selection_end = sci_get_selection_end(doc_list[idx].sci);
if ((selection_end - selection_start) > 0)
@@ -1319,6 +1324,9 @@
if (search_pos != -1)
{
+ // unfold maybe folded results
+ sci_ensure_line_is_visible(doc_list[idx].sci,
+ sci_get_line_from_position(doc_list[idx].sci, search_pos));
if (scroll)
doc_list[idx].scroll_percent = 0.3F;
}
Modified: trunk/src/main.c
===================================================================
--- trunk/src/main.c 2007-10-01 11:46:19 UTC (rev 1922)
+++ trunk/src/main.c 2007-10-01 12:22:44 UTC (rev 1923)
@@ -650,7 +650,8 @@
}
#endif
- geany_debug("GTK+ %u.%u.%u, GLib %u.%u.%u",
+ geany_debug("Geany %s, GTK+ %u.%u.%u, GLib %u.%u.%u",
+ VERSION,
gtk_major_version, gtk_minor_version, gtk_micro_version,
glib_major_version, glib_minor_version, glib_micro_version);
gtk_init(&argc, &argv);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list