fix [#37078] Search props don't react on click at the right end (where 'X' is if field not empty)
This commit is contained in:
parent
f9f2e20739
commit
d4cf5e3605
|
@ -2648,7 +2648,9 @@ static int ui_do_but_TEX(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
|
|||
static int ui_do_but_SEARCH_UNLINK(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data, const wmEvent *event)
|
||||
{
|
||||
/* unlink icon is on right */
|
||||
if (ELEM4(event->type, LEFTMOUSE, EVT_BUT_OPEN, PADENTER, RETKEY) && event->val == KM_PRESS) {
|
||||
if (ELEM4(event->type, LEFTMOUSE, EVT_BUT_OPEN, PADENTER, RETKEY) && event->val == KM_PRESS &&
|
||||
ui_is_but_search_unlink_visible(but))
|
||||
{
|
||||
ARegion *ar = data->region;
|
||||
rcti rect;
|
||||
int x = event->x, y = event->y;
|
||||
|
@ -5761,6 +5763,13 @@ bool ui_is_but_interactive(uiBut *but)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool ui_is_but_search_unlink_visible(uiBut *but)
|
||||
{
|
||||
BLI_assert(but->type == SEARCH_MENU_UNLINK);
|
||||
return ((but->editstr == NULL) &&
|
||||
(but->drawstr[0] != '\0'));
|
||||
}
|
||||
|
||||
uiBut *ui_but_find_mouse_over(ARegion *ar, int x, int y)
|
||||
{
|
||||
uiBlock *block;
|
||||
|
|
|
@ -402,6 +402,7 @@ extern bool ui_is_but_unit(uiBut *but);
|
|||
extern bool ui_is_but_rna_valid(uiBut *but);
|
||||
extern bool ui_is_but_utf8(uiBut *but);
|
||||
extern bool ui_is_but_interactive(uiBut *but);
|
||||
extern bool ui_is_but_search_unlink_visible(uiBut *but);
|
||||
|
||||
extern int ui_is_but_push_ex(uiBut *but, double *value);
|
||||
extern int ui_is_but_push(uiBut *but);
|
||||
|
|
|
@ -961,7 +961,7 @@ static void ui_text_clip_left(uiFontStyle *fstyle, uiBut *but, const rcti *rect)
|
|||
|
||||
if (but->flag & UI_HAS_ICON)
|
||||
okwidth -= UI_DPI_ICON_SIZE;
|
||||
if (but->type == SEARCH_MENU_UNLINK && !but->editstr)
|
||||
if ((but->type == SEARCH_MENU_UNLINK) && ui_is_but_search_unlink_visible(but))
|
||||
okwidth -= BLI_rcti_size_y(rect);
|
||||
|
||||
okwidth = max_ii(okwidth, 0);
|
||||
|
@ -1325,7 +1325,7 @@ static void widget_draw_text_icon(uiFontStyle *fstyle, uiWidgetColors *wcol, uiB
|
|||
}
|
||||
|
||||
/* unlink icon for this button type */
|
||||
if (but->type == SEARCH_MENU_UNLINK && !but->editstr && but->drawstr[0]) {
|
||||
if ((but->type == SEARCH_MENU_UNLINK) && ui_is_but_search_unlink_visible(but)) {
|
||||
rcti temp = *rect;
|
||||
|
||||
temp.xmin = temp.xmax - (BLI_rcti_size_y(rect) * 1.08f);
|
||||
|
|
Loading…
Reference in New Issue