Revision: 715 Author: eht16 Date: 2006-08-15 01:51:48 -0700 (Tue, 15 Aug 2006) ViewCVS: http://svn.sourceforge.net/geany/?rev=715&view=rev
Log Message: ----------- Made increase/decrease indentation working with selections. Keep the old cursor position when working on a single line (do not jump to line start).
Modified Paths: -------------- trunk/ChangeLog trunk/src/callbacks.c Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2006-08-14 15:02:52 UTC (rev 714) +++ trunk/ChangeLog 2006-08-15 08:51:48 UTC (rev 715) @@ -1,3 +1,11 @@ +2006-08-15 Enrico Tröger enrico.troeger@uvena.de + + * src/callbacks.c: + Made increase/decrease indentation working with selections. + Keep the old cursor position when working on a single line + (do not jump to line start). + + 2006-08-14 Nick Treleaven nick.treleaven@btinternet.com
* src/sci_cb.c: Applied patch from Jens Granseuer to fix build with @@ -8,7 +16,7 @@ Assume C-like warning messages when running make when the current file is a Makefile. Moved some msgwin setup and cleanup code to msgwindow.c. - * src/utils.c, src/utils.h + * src/utils.c, src/utils.h: Moved utils_parse_compiler_error_line to msgwindow.c.
Modified: trunk/src/callbacks.c =================================================================== --- trunk/src/callbacks.c 2006-08-14 15:02:52 UTC (rev 714) +++ trunk/src/callbacks.c 2006-08-15 08:51:48 UTC (rev 715) @@ -2474,14 +2474,24 @@ gpointer user_data) { gint idx = document_get_cur_idx(); - gint line, pos; if (idx == -1 || ! doc_list[idx].is_valid) return;
- line = sci_get_current_line(doc_list[idx].sci, -1); - pos = sci_get_line_indent_position(doc_list[idx].sci, line); + if (sci_can_copy(doc_list[idx].sci)) + { + sci_cmd(doc_list[idx].sci, SCI_TAB); + } + else + { + gint line, pos, old_pos;
- sci_set_current_position(doc_list[idx].sci, pos); - sci_cmd(doc_list[idx].sci, SCI_TAB); + old_pos = sci_get_current_position(doc_list[idx].sci); + line = sci_get_current_line(doc_list[idx].sci, old_pos); + pos = sci_get_line_indent_position(doc_list[idx].sci, line); + + sci_set_current_position(doc_list[idx].sci, pos); + sci_cmd(doc_list[idx].sci, SCI_TAB); + sci_set_current_position(doc_list[idx].sci, old_pos + 1); + } }
@@ -2490,13 +2500,23 @@ gpointer user_data) { gint idx = document_get_cur_idx(); - gint line, pos; if (idx == -1 || ! doc_list[idx].is_valid) return;
- line = sci_get_current_line(doc_list[idx].sci, -1); - pos = sci_get_line_indent_position(doc_list[idx].sci, line); + if (sci_can_copy(doc_list[idx].sci)) + { + sci_cmd(doc_list[idx].sci, SCI_BACKTAB); + } + else + { + gint line, pos, old_pos;
- sci_set_current_position(doc_list[idx].sci, pos); - sci_cmd(doc_list[idx].sci, SCI_BACKTAB); + old_pos = sci_get_current_position(doc_list[idx].sci); + line = sci_get_current_line(doc_list[idx].sci, old_pos); + pos = sci_get_line_indent_position(doc_list[idx].sci, line); + + sci_set_current_position(doc_list[idx].sci, pos); + sci_cmd(doc_list[idx].sci, SCI_BACKTAB); + sci_set_current_position(doc_list[idx].sci, old_pos - 1); + } }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.