[gnome-builder/wip/vim] vim: perform commands in begin/end user action.
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/vim] vim: perform commands in begin/end user action.
- Date: Thu, 2 Oct 2014 22:04:02 +0000 (UTC)
commit f2cdf4c90da061d39491e11d1df7d5731af3c1a7
Author: Christian Hergert <christian hergert me>
Date: Thu Oct 2 15:03:57 2014 -0700
vim: perform commands in begin/end user action.
src/editor/gb-editor-vim.c | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
---
diff --git a/src/editor/gb-editor-vim.c b/src/editor/gb-editor-vim.c
index 4f6c9ef..b476939 100644
--- a/src/editor/gb-editor-vim.c
+++ b/src/editor/gb-editor-vim.c
@@ -1997,10 +1997,13 @@ gb_editor_vim_handle_normal (GbEditorVim *vim,
GbEditorVimCommand *cmd;
GbEditorVimPhraseStatus status;
GbEditorVimPhrase phrase;
+ GtkTextBuffer *buffer;
g_assert (GB_IS_EDITOR_VIM (vim));
g_assert (event);
+ buffer = gtk_text_view_get_buffer (vim->priv->text_view);
+
switch (event->keyval)
{
case GDK_KEY_bracketleft:
@@ -2036,11 +2039,9 @@ gb_editor_vim_handle_normal (GbEditorVim *vim,
case GDK_KEY_x:
if ((event->state & GDK_CONTROL_MASK) != 0)
{
- GtkTextBuffer *buffer;
GtkTextIter begin;
GtkTextIter end;
- buffer = gtk_text_view_get_buffer (vim->priv->text_view);
gb_editor_vim_clear_phrase (vim);
gb_editor_vim_clear_selection (vim);
if (gb_editor_vim_select_current_word (vim, &begin, &end))
@@ -2097,8 +2098,6 @@ gb_editor_vim_handle_normal (GbEditorVim *vim,
case GDK_KEY_y:
{
- GtkTextBuffer *buffer = gtk_text_view_get_buffer (vim->priv->text_view);
-
/*
* WORKAROUND:
*
@@ -2147,10 +2146,16 @@ gb_editor_vim_handle_normal (GbEditorVim *vim,
gb_editor_vim_clear_phrase (vim);
break;
}
+
if (cmd->requires_modifier && !phrase.modifier)
break;
+
gb_editor_vim_clear_phrase (vim);
+
+ gtk_text_buffer_begin_user_action (buffer);
cmd->func (vim, phrase.count, phrase.modifier);
+ gtk_text_buffer_end_user_action (buffer);
+
break;
case GB_EDITOR_VIM_PHRASE_NEED_MORE:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]