Bugfix: Don’t crash when the font is specified after the workspace names in configfile (Thanks xiaodong)

next
Michael Stapelberg 2009-08-07 15:48:13 +02:00
parent 7cdaa1b277
commit 6192975a04
2 changed files with 11 additions and 2 deletions

View File

@ -485,8 +485,15 @@ void load_configuration(xcb_connection_t *conn, const char *override_configpath,
/* Set an empty name for every workspace which got no name */
for (int i = 0; i < 10; i++) {
if (workspaces[i].name != NULL)
Workspace *ws = &(workspaces[i]);
if (ws->name != NULL) {
/* If the font was not specified when the workspace name
* was loaded, we need to predict the text width now */
if (ws->text_width == 0)
ws->text_width = predict_text_width(global_conn,
config.font, ws->name, ws->name_len);
continue;
}
workspace_set_name(&(workspaces[i]), NULL);
}

View File

@ -41,7 +41,9 @@ void workspace_set_name(Workspace *ws, const char *name) {
FREE(ws->name);
ws->name = convert_utf8_to_ucs2(label, &(ws->name_len));
ws->text_width = predict_text_width(global_conn, config.font, ws->name, ws->name_len);
if (config.font != NULL)
ws->text_width = predict_text_width(global_conn, config.font, ws->name, ws->name_len);
else ws->text_width = 0;
free(label);
}