From: Philip Chimento Date: Sun, 1 Mar 2009 23:31:01 +0000 (+0000) Subject: Fixed a bug with newlines in line input on text buffer windows. X-Git-Url: https://git.stderr.nl/gitweb?a=commitdiff_plain;h=e47eebee2f127d0c1d4825d9bdc41471b6d7f3c1;p=rodin%2Fchimara.git Fixed a bug with newlines in line input on text buffer windows. git-svn-id: http://lassie.dyndns-server.com/svn/gargoyle-gtk@28 ddfedd41-794f-dd11-ae45-00112f111e67 --- 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; }