SF.net SVN: geany: [1989] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Mon Oct 29 16:53:41 UTC 2007
Revision: 1989
http://geany.svn.sourceforge.net/geany/?rev=1989&view=rev
Author: ntrel
Date: 2007-10-29 09:53:40 -0700 (Mon, 29 Oct 2007)
Log Message:
-----------
Make Fold All/Unfold All attempt to scroll the current line in view.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/document.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-10-29 16:34:12 UTC (rev 1988)
+++ trunk/ChangeLog 2007-10-29 16:53:40 UTC (rev 1989)
@@ -13,6 +13,8 @@
Disable file and directory diff menu items if the current document
has no filename.
Disable project menu item when no project is open.
+ * src/document.c:
+ Make Fold All/Unfold All attempt to scroll the current line in view.
2007-10-28 Enrico Tröger <enrico.troeger at uvena.de>
Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c 2007-10-29 16:34:12 UTC (rev 1988)
+++ trunk/src/document.c 2007-10-29 16:53:40 UTC (rev 1989)
@@ -1908,40 +1908,37 @@
}
-void document_unfold_all(gint idx)
+static void fold_all(gint idx, gboolean want_fold)
{
- gint lines, pos, i;
+ gint lines, first, i;
- if (idx == -1 || ! doc_list[idx].is_valid) return;
+ if (! DOC_IDX_VALID(idx)) return;
lines = sci_get_line_count(doc_list[idx].sci);
- pos = sci_get_current_position(doc_list[idx].sci);
+ first = sci_get_first_visible_line(doc_list[idx].sci);
for (i = 0; i < lines; i++)
{
- sci_ensure_line_is_visible(doc_list[idx].sci, i);
+ gint level = sci_get_fold_level(doc_list[idx].sci, i);
+ if (level & SC_FOLDLEVELHEADERFLAG)
+ {
+ if (sci_get_fold_expanded(doc_list[idx].sci, i) == want_fold)
+ sci_toggle_fold(doc_list[idx].sci, i);
+ }
}
+ editor_scroll_to_line(doc_list[idx].sci, first, 0.0F);
}
-void document_fold_all(gint idx)
+void document_unfold_all(gint idx)
{
- gint lines, pos, i;
+ fold_all(idx, FALSE);
+}
- if (idx == -1 || ! doc_list[idx].is_valid) return;
- lines = sci_get_line_count(doc_list[idx].sci);
- pos = sci_get_current_position(doc_list[idx].sci);
-
- for (i = 0; i < lines; i++)
- {
- gint level = sci_get_fold_level(doc_list[idx].sci, i);
- if (level & SC_FOLDLEVELHEADERFLAG)
- {
- if (sci_get_fold_expanded(doc_list[idx].sci, i))
- sci_toggle_fold(doc_list[idx].sci, i);
- }
- }
+void document_fold_all(gint idx)
+{
+ fold_all(idx, TRUE);
}
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