projects
/
rodin
/
chimara.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Styles should be initialized once per widget, not once per program
[rodin/chimara.git]
/
libchimara
/
style.c
diff --git
a/libchimara/style.c
b/libchimara/style.c
index 1b13e61e7ebbd4fbf77f24c17bf92a9478602e7e..0734fd37847ce1244b7ed209acb846072a46c34e 100644
(file)
--- a/
libchimara/style.c
+++ b/
libchimara/style.c
@@
-3,7
+3,6
@@
#include <fcntl.h>
extern GPrivate *glk_data_key;
#include <fcntl.h>
extern GPrivate *glk_data_key;
-static gboolean chimara_style_initialized = FALSE;
static gboolean style_accept(GScanner *scanner, GTokenType token);
static gboolean style_accept_style_selector(GScanner *scanner);
static gboolean style_accept(GScanner *scanner, GTokenType token);
static gboolean style_accept_style_selector(GScanner *scanner);
@@
-77,11
+76,10
@@
style_init_textbuffer(GtkTextBuffer *buffer)
{
g_return_if_fail(buffer != NULL);
{
g_return_if_fail(buffer != NULL);
- if( G_UNLIKELY(!chimara_style_initialized) ) {
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+ if( G_UNLIKELY(!glk_data->style_initialized) ) {
style_init();
}
style_init();
}
-
- ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
g_hash_table_foreach(glk_data->current_styles->text_buffer, style_add_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer));
}
g_hash_table_foreach(glk_data->current_styles->text_buffer, style_add_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer));
}
@@
-90,12
+88,11
@@
void
style_init_textgrid(GtkTextBuffer *buffer)
{
g_return_if_fail(buffer != NULL);
style_init_textgrid(GtkTextBuffer *buffer)
{
g_return_if_fail(buffer != NULL);
-
- if( G_UNLIKELY(!chimara_style_initialized) ) {
+
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+ if( G_UNLIKELY(!glk_data->style_initialized) ) {
style_init();
}
style_init();
}
-
- ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
g_hash_table_foreach(glk_data->current_styles->text_grid, style_add_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer));
}
g_hash_table_foreach(glk_data->current_styles->text_grid, style_add_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer));
}
@@
-173,8
+170,8
@@
style_init()
g_return_if_fail(f != -1);
g_scanner_input_file(scanner, f);
scanner->input_name = glk_data->css_file;
g_return_if_fail(f != -1);
g_scanner_input_file(scanner, f);
scanner->input_name = glk_data->css_file;
- scanner->config->cset_identifier_first =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
#";
- scanner->config->cset_identifier_nth =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_0123456789"
;
+ scanner->config->cset_identifier_first =
G_CSET_a_2_z G_CSET_A_2_Z "
#";
+ scanner->config->cset_identifier_nth =
G_CSET_a_2_z G_CSET_A_2_Z "-_" G_CSET_DIGITS
;
scanner->config->symbol_2_token = TRUE;
scanner->config->cpair_comment_single = NULL;
scanner->config->scan_float = FALSE;
scanner->config->symbol_2_token = TRUE;
scanner->config->cpair_comment_single = NULL;
scanner->config->scan_float = FALSE;
@@
-232,7
+229,7
@@
style_init()
g_scanner_destroy(scanner);
g_scanner_destroy(scanner);
-
chimara_
style_initialized = TRUE;
+
glk_data->
style_initialized = TRUE;
}
/* Internal function: parses a token */
}
/* Internal function: parses a token */
@@
-678,7
+675,7
@@
glk_stylehint_set(glui32 wintype, glui32 styl, glui32 hint, glsi32 val)
{
ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
{
ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
- if( G_UNLIKELY(!
chimara_
style_initialized) ) {
+ if( G_UNLIKELY(!
glk_data->
style_initialized) ) {
style_init();
}
style_init();
}