diff options
author | Andrey Nazarov <skuller@skuller.net> | 2013-09-23 21:01:17 +0400 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2013-09-23 21:01:17 +0400 |
commit | 7f2db1a818c8b176b4c6bb5a0ca01ea63d78348c (patch) | |
tree | e28becd05181100008c50ffdc07e2e80a83bfe99 | |
parent | e92842f3743f77665c868f7835684555751b8553 (diff) |
Fix bounding box of keybinding menu control.
-rw-r--r-- | src/client/ui/menu.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/client/ui/menu.c b/src/client/ui/menu.c index 6ddd315..dd1015d 100644 --- a/src/client/ui/menu.c +++ b/src/client/ui/menu.c @@ -192,6 +192,8 @@ Keybind_Init */ static void Keybind_Init(menuKeybind_t *k) { + size_t len; + if (!k->generic.name) { Com_Error(ERR_FATAL, "Keybind_Init: NULL k->generic.name"); } @@ -204,8 +206,15 @@ static void Keybind_Init(menuKeybind_t *k) UI_StringDimensions(&k->generic.rect, k->generic.uiFlags | UI_RIGHT, k->generic.name); - k->generic.rect.width += (RCOLUMN_OFFSET - LCOLUMN_OFFSET) + - strlen(k->binding) * CHAR_WIDTH; + if (k->altbinding[0]) { + len = strlen(k->binding) + 4 + strlen(k->altbinding); + } else if (k->binding[0]) { + len = strlen(k->binding); + } else { + len = 3; + } + + k->generic.rect.width += (RCOLUMN_OFFSET - LCOLUMN_OFFSET) + len * CHAR_WIDTH; } /* @@ -279,6 +288,7 @@ static void Keybind_Update(menuFrameWork_t *menu) k = menu->items[i]; if (k->generic.type == MTYPE_KEYBIND) { Keybind_Push(k); + Keybind_Init(k); } } } |