+
+ /* Connect signal handlers */
+ new_window->keypress_handler = g_signal_connect( G_OBJECT(window), "key-press-event", G_CALLBACK(on_window_key_press_event), new_window );
+ g_signal_handler_block( G_OBJECT(window), new_window->keypress_handler );
+
+ new_window->insert_text_handler = g_signal_connect_after( G_OBJECT(buffer), "insert-text", G_CALLBACK(after_window_insert_text), new_window );
+ g_signal_handler_block( G_OBJECT(buffer), new_window->insert_text_handler );
+
+ /* Create an editable tag to indicate editable parts of the window (for line input) */
+ gtk_text_buffer_create_tag(buffer, "uneditable", "editable", FALSE, "editable-set", TRUE, NULL);
+
+ /* Mark the position where the user will input text */
+ GtkTextIter end_iter;
+ gtk_text_buffer_get_end_iter(buffer, &end_iter);
+ gtk_text_buffer_create_mark(buffer, "input_position", &end_iter, TRUE);