Config: Fix possible segfault with layout system switch
This commit is contained in:
parent
f6486d803c
commit
61858bbe64
@ -376,13 +376,16 @@ conf_layout_section(char *src)
|
||||
else
|
||||
{
|
||||
if(conf.layout_system && conf.nlayout > 1)
|
||||
{
|
||||
menu_new_item(&menulayout.item[i], get_opt(tmp, "", "symbol").str,
|
||||
uicb_set_layout, p);
|
||||
|
||||
menulayout.item[i].check = name_to_func("check_layout", func_list);
|
||||
}
|
||||
|
||||
conf.layout[i].symbol = get_opt(tmp, "TILE (default)", "symbol").str;
|
||||
conf.layout[i].func = name_to_func(p, layout_list);
|
||||
conf.layout[i].type = p;
|
||||
menulayout.item[i].check = name_to_func("check_layout", func_list);
|
||||
}
|
||||
|
||||
cfg_set_sauv(src);
|
||||
|
||||
12
src/menu.c
12
src/menu.c
@ -194,28 +194,28 @@ menu_manage_event(XEvent *ev, Menu *menu, BarWindow *winitem[])
|
||||
Bool
|
||||
menu_activate_item(Menu *menu, int i)
|
||||
{
|
||||
int j, d, u, x, y;
|
||||
Window w;
|
||||
int j, x, y;
|
||||
|
||||
if(menu->item[i].submenu)
|
||||
{
|
||||
for(j = 0; j < conf.nmenu; ++j)
|
||||
if(!strcmp(menu->item[i].submenu, conf.menu[j].name))
|
||||
{
|
||||
XQueryPointer(dpy, ROOT, &w, &w, &x, &y, &d, &d, (uint *)&u);
|
||||
|
||||
x = menu->x;
|
||||
x += menu_get_longer_string(menu->item, menu->nitem) + PAD * 3;
|
||||
y = menu->y + ((i - 1) * INFOBARH + PAD) - SHADH * 2;
|
||||
x = menu->x + menu_get_longer_string(menu->item, menu->nitem) + PAD * 3;
|
||||
|
||||
menu_draw(conf.menu[j], x, y);
|
||||
|
||||
return True;
|
||||
}
|
||||
}
|
||||
else if(menu->item[i].func)
|
||||
{
|
||||
menu->item[i].func(menu->item[i].cmd);
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
return False;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user