X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=src%2Finput.c;h=89356fae2ff913d8f9a6c07e085ca9556dad067a;hb=da2ad6e2baafede9eb52949103e505bf1f1d7d0b;hp=418e5ea1f6b2e82b6a662e40887054c146a3d345;hpb=dfd494cd3432737d846338bc5539234b7d298cf5;p=projects%2Fchimara%2Fchimara.git diff --git a/src/input.c b/src/input.c index 418e5ea..89356fa 100644 --- a/src/input.c +++ b/src/input.c @@ -450,15 +450,22 @@ flush_text_buffer(winid_t win) VALID_WINDOW(win, return 0); g_return_val_if_fail(win->type == wintype_TextBuffer, 0); - GtkTextIter start_iter, end_iter; + GtkTextIter start_iter, end_iter, last_character; GtkTextBuffer *window_buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(win->widget) ); GtkTextMark *input_position = gtk_text_buffer_get_mark(window_buffer, "input_position"); gtk_text_buffer_get_iter_at_mark(window_buffer, &start_iter, input_position); gtk_text_buffer_get_end_iter(window_buffer, &end_iter); - gtk_text_iter_backward_cursor_position(&end_iter); /* don't include \n */ - + gtk_text_buffer_get_end_iter(window_buffer, &last_character); + gtk_text_iter_backward_cursor_position(&last_character); + + gchar* last_char = gtk_text_buffer_get_text(window_buffer, &last_character, &end_iter, FALSE); + + if( strchr(last_char, '\n') != NULL ) + gtk_text_iter_backward_cursor_position(&end_iter); + gchar* inserted_text = gtk_text_buffer_get_text(window_buffer, &start_iter, &end_iter, FALSE); + int chars_written = write_to_window_buffer(win, inserted_text); g_free(inserted_text);