/* Initialise hyperlink table */
win->hyperlinks = g_hash_table_new_full(g_int_hash, g_direct_equal, g_free, g_object_unref);
/* Initialise hyperlink table */
win->hyperlinks = g_hash_table_new_full(g_int_hash, g_direct_equal, g_free, g_object_unref);
static void
window_close_common(winid_t win, gboolean destroy_node)
{
ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
static void
window_close_common(winid_t win, gboolean destroy_node)
{
ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
if(glk_data->unregister_obj)
{
(*glk_data->unregister_obj)(win, gidisp_Class_Window, win->disprock);
win->disprock.ptr = NULL;
}
if(glk_data->unregister_obj)
{
(*glk_data->unregister_obj)(win, gidisp_Class_Window, win->disprock);
win->disprock.ptr = NULL;
}
g_list_foreach(win->history, (GFunc)g_free, NULL);
g_list_free(win->history);
g_list_foreach(win->history, (GFunc)g_free, NULL);
g_list_free(win->history);
g_string_free(win->buffer, TRUE);
g_hash_table_destroy(win->hyperlinks);
g_free(win->current_hyperlink);
g_string_free(win->buffer, TRUE);
g_hash_table_destroy(win->hyperlinks);
g_free(win->current_hyperlink);
g_signal_handler_block(textview, win->char_input_keypress_handler);
win->line_input_keypress_handler = g_signal_connect(textview, "key-press-event", G_CALLBACK(on_line_input_key_press_event), win);
g_signal_handler_block(textview, win->line_input_keypress_handler);
g_signal_handler_block(textview, win->char_input_keypress_handler);
win->line_input_keypress_handler = g_signal_connect(textview, "key-press-event", G_CALLBACK(on_line_input_key_press_event), win);
g_signal_handler_block(textview, win->line_input_keypress_handler);
g_signal_handler_block(textview, win->char_input_keypress_handler);
win->line_input_keypress_handler = g_signal_connect( textview, "key-press-event", G_CALLBACK(on_line_input_key_press_event), win );
g_signal_handler_block(textview, win->line_input_keypress_handler);
g_signal_handler_block(textview, win->char_input_keypress_handler);
win->line_input_keypress_handler = g_signal_connect( textview, "key-press-event", G_CALLBACK(on_line_input_key_press_event), win );
g_signal_handler_block(textview, win->line_input_keypress_handler);
win->insert_text_handler = g_signal_connect_after( textbuffer, "insert-text", G_CALLBACK(after_window_insert_text), win );
g_signal_handler_block(textbuffer, win->insert_text_handler);
win->insert_text_handler = g_signal_connect_after( textbuffer, "insert-text", G_CALLBACK(after_window_insert_text), win );
g_signal_handler_block(textbuffer, win->insert_text_handler);
/* Create an editable tag to indicate uneditable parts of the window
(for line input) */
gtk_text_buffer_create_tag(textbuffer, "uneditable", "editable", FALSE, "editable-set", TRUE, NULL);
/* Create an editable tag to indicate uneditable parts of the window
(for line input) */
gtk_text_buffer_create_tag(textbuffer, "uneditable", "editable", FALSE, "editable-set", TRUE, NULL);