[gtksourceview] vim: fix repeat with count (3.)



commit efaa8cc22e7e0dd6e60404a61c8c2f4560591f78
Author: Christian Hergert <chergert redhat com>
Date:   Tue Nov 23 08:57:12 2021 -0600

    vim: fix repeat with count (3.)

 gtksourceview/vim/gtksourcevimnormal.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
---
diff --git a/gtksourceview/vim/gtksourcevimnormal.c b/gtksourceview/vim/gtksourcevimnormal.c
index 81c2d8fc..50df356c 100644
--- a/gtksourceview/vim/gtksourcevimnormal.c
+++ b/gtksourceview/vim/gtksourcevimnormal.c
@@ -625,9 +625,17 @@ key_handler_command (GtkSourceVimNormal *self,
                case GDK_KEY_period:
                        if (self->repeat != NULL)
                        {
-                               gtk_source_vim_state_repeat (self->repeat);
+                               GtkSourceBuffer *buffer = gtk_source_vim_state_get_buffer 
(GTK_SOURCE_VIM_STATE (self), NULL, NULL);
+                               int count = MAX (1, self->count);
+
+                               gtk_text_buffer_begin_user_action (GTK_TEXT_BUFFER (buffer));
+                               for (int i = 0; i < count && self->repeat != NULL; i++)
+                                       gtk_source_vim_state_repeat (self->repeat);
+                               gtk_text_buffer_end_user_action (GTK_TEXT_BUFFER (buffer));
+
                                gtk_source_vim_normal_clear (self);
                                keep_on_char (self);
+
                                return TRUE;
                        }
                        break;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]