Made menu IDs on Windows global across all menus. This is what we actually intended...
This commit is contained in:
parent
88bbdc4805
commit
7a1634a387
|
@ -7,6 +7,7 @@ static struct menu *menus = NULL;
|
||||||
static uintmax_t len = 0;
|
static uintmax_t len = 0;
|
||||||
static uintmax_t cap = 0;
|
static uintmax_t cap = 0;
|
||||||
static BOOL menusFinalized = FALSE;
|
static BOOL menusFinalized = FALSE;
|
||||||
|
static WORD curID = 100; // start somewhere safe
|
||||||
|
|
||||||
struct menu {
|
struct menu {
|
||||||
uiMenu m;
|
uiMenu m;
|
||||||
|
@ -14,7 +15,6 @@ struct menu {
|
||||||
struct menuItem *items;
|
struct menuItem *items;
|
||||||
uintmax_t len;
|
uintmax_t len;
|
||||||
uintmax_t cap;
|
uintmax_t cap;
|
||||||
WORD curID;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct menuItem {
|
struct menuItem {
|
||||||
|
@ -143,8 +143,8 @@ static uiMenuItem *newItem(struct menu *m, int type, const char *name)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item->type != typeSeparator) {
|
if (item->type != typeSeparator) {
|
||||||
item->id = m->curID;
|
item->id = curID;
|
||||||
m->curID++;
|
curID++;
|
||||||
}
|
}
|
||||||
// TODO this shouldn't be necessary, but uiRealloc() doesn't yet zero out new bytes
|
// TODO this shouldn't be necessary, but uiRealloc() doesn't yet zero out new bytes
|
||||||
else
|
else
|
||||||
|
@ -228,9 +228,6 @@ uiMenu *uiNewMenu(const char *name)
|
||||||
m->len = 0;
|
m->len = 0;
|
||||||
m->cap = 0;
|
m->cap = 0;
|
||||||
|
|
||||||
// start somewhere safe
|
|
||||||
m->curID = 100;
|
|
||||||
|
|
||||||
uiMenu(m)->AppendItem = menuAppendItem;
|
uiMenu(m)->AppendItem = menuAppendItem;
|
||||||
uiMenu(m)->AppendCheckItem = menuAppendCheckItem;
|
uiMenu(m)->AppendCheckItem = menuAppendCheckItem;
|
||||||
uiMenu(m)->AppendQuitItem = menuAppendQuitItem;
|
uiMenu(m)->AppendQuitItem = menuAppendQuitItem;
|
||||||
|
|
Loading…
Reference in New Issue