Merge branch 'master' of git.omp.am:/home/omp/git/conky
authorCesare Tirabassi <norsetto@ubuntu.com>
Sun, 12 Jul 2009 16:46:07 +0000 (18:46 +0200)
committerCesare Tirabassi <norsetto@ubuntu.com>
Sun, 12 Jul 2009 16:46:07 +0000 (18:46 +0200)
src/conky.c
src/fonts.c
src/llua.c

index 5830843..37e90ec 100644 (file)
@@ -8072,6 +8072,7 @@ static void load_config_file(const char *f)
                                } else {
                                        output_methods &= ~TO_X;
                                        x_initialised = NEVER;
+                                       free(fonts);    //in set_default_configurations a font is set
                                }
                        }
                }
index 61c7b85..0870129 100644 (file)
@@ -31,6 +31,7 @@
 int selected_font = 0;
 int font_count = -1;
 struct font_list *fonts = NULL;
+char fontloaded = 0;
 
 void set_font(void)
 {
@@ -120,7 +121,7 @@ void free_fonts(void)
 {
        int i;
 
-       if ((output_methods & TO_X) == 0) {
+       if ((output_methods & TO_X) == 0 || fontloaded == 0) {
                return;
        }
        for (i = 0; i <= font_count; i++) {
@@ -189,4 +190,5 @@ void load_fonts(void)
                        }
                }
        }
+       fontloaded = 1;
 }
index b23f471..e8f4325 100644 (file)
@@ -428,9 +428,11 @@ void llua_setup_window_table(int text_start_x, int text_start_y, int text_width,
 {
        lua_newtable(lua_L);
        
+/* TODO fix this: (segfaults)
        llua_set_userdata("drawable", "Drawable", (void*)&window.drawable);
        llua_set_userdata("visual", "Visual", window.visual);
        llua_set_userdata("display", "Display", display);
+*/
 
        llua_set_long("width", window.width);
        llua_set_long("height", window.height);
@@ -448,6 +450,7 @@ void llua_setup_window_table(int text_start_x, int text_start_y, int text_width,
 
 void llua_update_window_table(int text_start_x, int text_start_y, int text_width, int text_height)
 {
+       llua_init();    //needed because sometimes lua isn't initialised resulting in segfaults
        lua_getglobal(lua_L, "conky_window");
        if (lua_isnil(lua_L, -1)) {
                /* window table isn't populated yet */