From e143910b1b01296ce7524d03be8d10dcd519add5 Mon Sep 17 00:00:00 2001 From: fliep Date: Sun, 1 Mar 2009 23:31:01 +0000 Subject: [PATCH] Fixed a bug with newlines in line input on text buffer windows. --- src/input.c | 6 +++++- src/main.c | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/input.c b/src/input.c index bcd5116..7eebfa5 100644 --- a/src/input.c +++ b/src/input.c @@ -378,7 +378,10 @@ end_line_input_request(winid_t win, const gchar *inserted_text) } /* Internal function: Callback for signal insert-text on a text buffer window. -Runs after the default handler has already inserted the text.*/ +Runs after the default handler has already inserted the text. +FIXME: This function assumes that newline was the last character typed into the +window. That assumption is wrong if, for example, text containing a newline was +pasted into the window. */ void after_window_insert_text(GtkTextBuffer *textbuffer, GtkTextIter *location, gchar *text, gint len, winid_t win) { @@ -396,6 +399,7 @@ after_window_insert_text(GtkTextBuffer *textbuffer, GtkTextIter *location, gchar 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 */ inserted_text = gtk_text_buffer_get_text(window_buffer, &start_iter, &end_iter, FALSE); diff --git a/src/main.c b/src/main.c index fd2700d..324e49e 100644 --- a/src/main.c +++ b/src/main.c @@ -115,7 +115,7 @@ main(int argc, char *argv[]) g_object_unref( G_OBJECT(builder) ); - if( !chimara_glk_run(CHIMARA_GLK(glk), ".libs/gridtest.so", &error) ) { + if( !chimara_glk_run(CHIMARA_GLK(glk), ".libs/first.so", &error) ) { error_dialog(GTK_WINDOW(window), error, "Error starting Glk library: "); return 1; } -- 2.30.2