UI: icon-only hold popup uses region alignment

Gives nicer tool popups for icon only buttons.
This commit is contained in:
Campbell Barton 2018-04-25 20:41:26 +02:00
parent 81f19b0c5f
commit 700012b66e
1 changed files with 17 additions and 1 deletions

View File

@ -902,7 +902,23 @@ static void ui_item_menu_hold(struct bContext *C, ARegion *butregion, uiBut *but
block->flag |= UI_BLOCK_POPUP_HOLD;
block->flag |= UI_BLOCK_IS_FLIP;
UI_block_direction_set(block, UI_DIR_DOWN);
char direction = UI_DIR_DOWN;
if (!but->drawstr[0]) {
if (butregion->alignment == RGN_ALIGN_LEFT) {
direction = UI_DIR_RIGHT;
}
else if (butregion->alignment == RGN_ALIGN_RIGHT) {
direction = UI_DIR_LEFT;
}
else if (butregion->alignment == RGN_ALIGN_BOTTOM) {
direction = UI_DIR_UP;
}
else {
direction = UI_DIR_DOWN;
}
}
UI_block_direction_set(block, direction);
const char *menu_id = but->hold_argN;
MenuType *mt = WM_menutype_find(menu_id, true);