Revision: 1892 http://geany.svn.sourceforge.net/geany/?rev=1892&view=rev Author: ntrel Date: 2007-09-21 09:39:21 -0700 (Fri, 21 Sep 2007)
Log Message: ----------- Make 'Duplicate lines' work for whole lines when more than one line has a selection.
Modified Paths: -------------- trunk/ChangeLog trunk/src/callbacks.c trunk/src/keybindings.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2007-09-21 16:37:19 UTC (rev 1891) +++ trunk/ChangeLog 2007-09-21 16:39:21 UTC (rev 1892) @@ -3,6 +3,9 @@ * src/editor.c: Make 'Delete lines' not include an extra line when whole lines are selected. + * src/keybindings.c, src/callbacks.c: + Make 'Duplicate lines' work for whole lines when more than one line + has a selection.
2007-09-18 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/src/callbacks.c =================================================================== --- trunk/src/callbacks.c 2007-09-21 16:37:19 UTC (rev 1891) +++ trunk/src/callbacks.c 2007-09-21 16:39:21 UTC (rev 1892) @@ -1735,12 +1735,7 @@ on_menu_duplicate_line1_activate (GtkMenuItem *menuitem, gpointer user_data) { - gint idx = document_get_cur_idx(); - if (idx == -1 || ! doc_list[idx].is_valid) return; - if (sci_can_copy(doc_list[idx].sci)) - sci_selection_duplicate(doc_list[idx].sci); - else - sci_line_duplicate(doc_list[idx].sci); + keybindings_cmd(GEANY_KEYS_EDIT_DUPLICATELINE); }
Modified: trunk/src/keybindings.c =================================================================== --- trunk/src/keybindings.c 2007-09-21 16:37:19 UTC (rev 1891) +++ trunk/src/keybindings.c 2007-09-21 16:39:21 UTC (rev 1892) @@ -1119,6 +1119,20 @@ }
+static void duplicate_line(ScintillaObject *sci) +{ + if (sci_get_lines_selected(sci) > 1) + { + editor_select_lines(sci); + sci_selection_duplicate(sci); + } + else if (sci_can_copy(sci)) + sci_selection_duplicate(sci); + else + sci_line_duplicate(sci); +} + + // common function for editing keybindings, only valid when scintilla has focus. static void cb_func_edit(guint key_id) { @@ -1140,7 +1154,7 @@ sci_cmd(doc_list[idx].sci, SCI_LINESCROLLDOWN); break; case GEANY_KEYS_EDIT_DUPLICATELINE: - on_menu_duplicate_line1_activate(NULL, NULL); + duplicate_line(doc_list[idx].sci); break; case GEANY_KEYS_EDIT_DELETELINE: // SCI_LINEDELETE only does 1 line
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.