From: Marijn van Vliet Date: Sat, 29 Jan 2011 13:43:55 +0000 (+0100) Subject: * Fixed garglk_set_reversevideo to use the new way styles are handled. X-Git-Tag: v0.9~157^2~1 X-Git-Url: https://git.stderr.nl/gitweb?a=commitdiff_plain;h=d900ed412459fe89dee4d3da70c53e5a9ef05190;p=projects%2Fchimara%2Fchimara.git * Fixed garglk_set_reversevideo to use the new way styles are handled. * GtkTextTags are no longer shared between GtkTextBuffers, as this is not allowed. --- diff --git a/libchimara/garglk.c b/libchimara/garglk.c index 6beb20e..df5c6b3 100644 --- a/libchimara/garglk.c +++ b/libchimara/garglk.c @@ -184,7 +184,11 @@ garglk_set_zcolors(glui32 fg, glui32 bg) static void apply_reverse_color(GtkTextTag *tag, gpointer data) { - g_object_set_data( G_OBJECT(tag), "reverse_color", data ); + const gchar *tag_name; + g_object_get(tag, "name", &tag_name, NULL); + + if( g_str_has_prefix(tag_name, "glk-") ) + g_object_set_data( G_OBJECT(tag), "reverse_color", data ); } /** diff --git a/libchimara/style.c b/libchimara/style.c index 2e2b80c..e9bfd88 100644 --- a/libchimara/style.c +++ b/libchimara/style.c @@ -138,7 +138,7 @@ style_init_textbuffer(GtkTextBuffer *buffer) ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key); /* Place the default text tags in the textbuffer's tag table */ - g_hash_table_foreach(glk_data->styles->text_buffer, style_add_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer)); + g_hash_table_foreach(glk_data->styles->text_buffer, style_copy_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer)); /* Copy the override text tags to the textbuffers's tag table */ g_hash_table_foreach(glk_data->glk_styles->text_buffer, style_copy_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer)); @@ -154,7 +154,7 @@ style_init_textgrid(GtkTextBuffer *buffer) ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key); /* Place the default text tags in the textbuffer's tag table */ - g_hash_table_foreach(glk_data->styles->text_grid, style_add_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer)); + g_hash_table_foreach(glk_data->styles->text_grid, style_copy_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer)); /* Copy the current text tags to the textbuffers's tag table */ g_hash_table_foreach(glk_data->glk_styles->text_grid, style_copy_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer));