Kaydet (Commit) 960a5357 authored tarafından Enrico Tröger's avatar Enrico Tröger

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.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1923 ea778897-0a13-0410-b9d1-a72fbfd435f5
üst b8043b31
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:
......
......@@ -654,7 +654,6 @@ void
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");
......
......@@ -1268,9 +1268,16 @@ gboolean document_search_bar_find(gint idx, const gchar *text, gint flags, gbool
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 @@ gboolean document_search_bar_find(gint idx, const gchar *text, gint flags, gbool
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 @@ gint document_find_text(gint idx, const gchar *text, gint flags, gboolean search
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;
}
......
......@@ -650,7 +650,8 @@ gint main(gint argc, gchar **argv)
}
#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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment