[gnome-builder] vim: use helper for selecting a range instead of moving marks
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] vim: use helper for selecting a range instead of moving marks
- Date: Mon, 6 Oct 2014 09:13:58 +0000 (UTC)
commit d8c698c530f8bd82cc51d4847cc12fb00d2db1da
Author: Christian Hergert <christian hergert me>
Date: Mon Oct 6 02:08:27 2014 -0700
vim: use helper for selecting a range instead of moving marks
This will allow us to catch some corner cases like re-selecting a single
character upon a movement.
src/editor/gb-editor-vim.c | 11 +++++++----
1 files changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/src/editor/gb-editor-vim.c b/src/editor/gb-editor-vim.c
index 9879711..7a5e207 100644
--- a/src/editor/gb-editor-vim.c
+++ b/src/editor/gb-editor-vim.c
@@ -159,6 +159,9 @@ static guint gSignals [LAST_SIGNAL];
static void text_iter_swap (GtkTextIter *a,
GtkTextIter *b);
+static void gb_editor_vim_select_range (GbEditorVim *vim,
+ GtkTextIter *insert_iter,
+ GtkTextIter *selection_iter);
static void gb_editor_vim_cmd_select_line (GbEditorVim *vim,
guint count,
gchar modifier);
@@ -321,17 +324,17 @@ gb_editor_vim_ensure_anchor_selected (GbEditorVim *vim)
(gtk_text_iter_compare (&insert_iter, &anchor_end) < 0))
{
if (gtk_text_iter_compare (&insert_iter, &selection_iter) < 0)
- gtk_text_buffer_move_mark (buffer, selection_mark, &anchor_end);
+ gb_editor_vim_select_range (vim, &insert_iter, &anchor_end);
else
- gtk_text_buffer_move_mark (buffer, insert_mark, &anchor_end);
+ gb_editor_vim_select_range (vim, &anchor_end, &selection_iter);
}
else if ((gtk_text_iter_compare (&selection_iter, &anchor_begin) > 0) &&
(gtk_text_iter_compare (&insert_iter, &anchor_begin) > 0))
{
if (gtk_text_iter_compare (&insert_iter, &selection_iter) < 0)
- gtk_text_buffer_move_mark (buffer, insert_mark, &anchor_begin);
+ gb_editor_vim_select_range (vim, &anchor_begin, &selection_iter);
else
- gtk_text_buffer_move_mark (buffer, selection_mark, &anchor_begin);
+ gb_editor_vim_select_range (vim, &insert_iter, &anchor_begin);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]