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
|
else
|
||||||
{
|
{
|
||||||
if(conf.layout_system && conf.nlayout > 1)
|
if(conf.layout_system && conf.nlayout > 1)
|
||||||
|
{
|
||||||
menu_new_item(&menulayout.item[i], get_opt(tmp, "", "symbol").str,
|
menu_new_item(&menulayout.item[i], get_opt(tmp, "", "symbol").str,
|
||||||
uicb_set_layout, p);
|
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].symbol = get_opt(tmp, "TILE (default)", "symbol").str;
|
||||||
conf.layout[i].func = name_to_func(p, layout_list);
|
conf.layout[i].func = name_to_func(p, layout_list);
|
||||||
conf.layout[i].type = p;
|
conf.layout[i].type = p;
|
||||||
menulayout.item[i].check = name_to_func("check_layout", func_list);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg_set_sauv(src);
|
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
|
Bool
|
||||||
menu_activate_item(Menu *menu, int i)
|
menu_activate_item(Menu *menu, int i)
|
||||||
{
|
{
|
||||||
int j, d, u, x, y;
|
int j, x, y;
|
||||||
Window w;
|
|
||||||
|
|
||||||
if(menu->item[i].submenu)
|
if(menu->item[i].submenu)
|
||||||
{
|
{
|
||||||
for(j = 0; j < conf.nmenu; ++j)
|
for(j = 0; j < conf.nmenu; ++j)
|
||||||
if(!strcmp(menu->item[i].submenu, conf.menu[j].name))
|
if(!strcmp(menu->item[i].submenu, conf.menu[j].name))
|
||||||
{
|
{
|
||||||
XQueryPointer(dpy, ROOT, &w, &w, &x, &y, &d, &d, (uint *)&u);
|
y = menu->y + ((i - 1) * INFOBARH + PAD) - SHADH * 2;
|
||||||
|
x = menu->x + menu_get_longer_string(menu->item, menu->nitem) + PAD * 3;
|
||||||
x = menu->x;
|
|
||||||
x += menu_get_longer_string(menu->item, menu->nitem) + PAD * 3;
|
|
||||||
|
|
||||||
menu_draw(conf.menu[j], x, y);
|
menu_draw(conf.menu[j], x, y);
|
||||||
|
|
||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(menu->item[i].func)
|
else if(menu->item[i].func)
|
||||||
{
|
{
|
||||||
menu->item[i].func(menu->item[i].cmd);
|
menu->item[i].func(menu->item[i].cmd);
|
||||||
|
|
||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
|
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user