[geany/geany-plugins] c02fc1: git-changebar: Move cursor at the end of the undone hunk text for deleted hunk

Jiří Techet git-noreply at xxxxx
Sat Aug 19 13:46:19 UTC 2017


Branch:      refs/heads/master
Author:      Jiří Techet <techet at gmail.com>
Committer:   Jiří Techet <techet at gmail.com>
Date:        Mon, 22 May 2017 13:06:15 UTC
Commit:      c02fc17affdecaa3743a6dc012e21f061b4e4020
             https://github.com/geany/geany-plugins/commit/c02fc17affdecaa3743a6dc012e21f061b4e4020

Log Message:
-----------
git-changebar: Move cursor at the end of the undone hunk text for deleted hunk

For deleted hunk, move cursor at the end of the undone text. This
behavior corresponds to what normal undo does - when undoing deletion,
cursor is also placed at the end of the newly inserted text.

Also change primary position for SCI_SCROLLRANGE in this case so it becomes
the cursor position.


Modified Paths:
--------------
    git-changebar/src/gcb-plugin.c

Modified: git-changebar/src/gcb-plugin.c
12 lines changed, 7 insertions(+), 5 deletions(-)
===================================================================
@@ -1190,28 +1190,30 @@ undo_hunk_cb (const gchar *path,
     if (data->found) {
       ScintillaObject  *sci   = doc->editor->sci;
       gint              line  = data->new_start - (data->new_lines ? 1 : 0);
+      gint              pos   = sci_get_position_from_line (sci, line);
 
       sci_start_undo_action (sci);
 
       if (data->new_lines > 0) {
-        gint pos = sci_get_position_from_line (sci, line);
         sci_set_target_start (sci, pos);
         pos = sci_get_position_from_line (sci, line + data->new_lines);
         sci_set_target_end (sci, pos);
         sci_replace_target (sci, "", FALSE);
       }
 
       if (data->old_lines > 0) {
-        gint pos = sci_get_position_from_line (sci, line);
-
+        pos = sci_get_position_from_line (sci, line);
         insert_buf_range (doc, contents, pos,
                           data->old_start - 1,
                           data->old_lines);
+
+        pos = sci_get_position_from_line (sci, line + data->old_lines);
+        sci_set_current_position (sci, pos, FALSE);
       }
 
       scintilla_send_message (sci, SCI_SCROLLRANGE,
-                              sci_get_position_from_line (sci, line + data->old_lines),
-                              sci_get_position_from_line (sci, line));
+                              sci_get_position_from_line (sci, line),
+                              pos);
 
       sci_end_undo_action (sci);
     }



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Plugins-Commits mailing list