Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2013-11-26 13:29:36 +0400
committerBastien Montagne <montagne29@wanadoo.fr>2013-11-26 13:41:19 +0400
commit0570bdc13d297a80c702a69f72bf28f8d4e2e9b5 (patch)
treea48f10eb46414e65c95fb01b2d1d31eb6c0691d0 /source/blender/editors/interface/interface_layout.c
parenta6188afaf341780e69d59bf76aa5154a09a7b553 (diff)
Fix own regression in rB254aa8f3a0fb: Titles and sub-titles in menus were drawn shifted to the right.
Reported by plasmasolution over IRC, thanks. Also fixes wrong handling of "sub-titles" with icons in EnumO menus (they were just treated as text-only ones). Dev notes: in fact, that clean up commit revealed kind of an "hidden bug that happend to work well" (or at least, a very bad hack): with titles without icon, code used to use uiItemL with ICON_NONE. However, as the root layout is a menu one, internal ui code would add a dummy blank icon, and set UI_HAS_ICON flag for the label button. But in the affected menus, code afterward assigned UI_TEXT_LEFT to but->flag, thus erasing the (internal) UI_HAS_ICON. As UI_TEXT_LEFT was moved to but->drawflag, the internal flag was no more erased, and the fake icon was drawn, creating that shift-to-the-right effect. Turns out we do not even have to set UI_TEXT_LEFT in these cases, just add label buttons without icon is enough!
Diffstat (limited to 'source/blender/editors/interface/interface_layout.c')
-rw-r--r--source/blender/editors/interface/interface_layout.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index 28055ba6c26..3cd022bc640 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -908,9 +908,15 @@ void uiItemsFullEnumO(uiLayout *layout, const char *opname, const char *propname
block->flag |= UI_BLOCK_NO_FLIP;
}
- uiItemL(column, item->name, ICON_NONE);
- but = block->buttons.last;
- but->drawflag = UI_BUT_TEXT_LEFT;
+ if (item->icon) {
+ uiItemL(column, item->name, item->icon);
+ but = block->buttons.last;
+ }
+ else {
+ /* Do not use uiItemL here, as our root layout is a menu one, it will add a fake blank icon! */
+ but = uiDefBut(block, LABEL, 0, item->name, 0, 0, UI_UNIT_X * 5, UI_UNIT_Y, NULL,
+ 0.0, 0.0, 0, 0, "");
+ }
ui_but_tip_from_enum_item(but, item);
}
else { /* XXX bug here, colums draw bottom item badly */