fix for ui glitch, pressing backspace over a button to reset to the default value didnt work for the uilist text button (others too), missing redraw.
This commit is contained in:
@@ -2047,13 +2047,14 @@ bool ui_set_but_string(bContext *C, uiBut *but, const char *str)
|
||||
return false;
|
||||
}
|
||||
|
||||
void ui_set_but_default(bContext *C, short all)
|
||||
void ui_set_but_default(bContext *C, const bool all)
|
||||
{
|
||||
const char *opstring = "UI_OT_reset_default_button";
|
||||
PointerRNA ptr;
|
||||
|
||||
WM_operator_properties_create(&ptr, "UI_OT_reset_default_button");
|
||||
WM_operator_properties_create(&ptr, opstring);
|
||||
RNA_boolean_set(&ptr, "all", all);
|
||||
WM_operator_name_call(C, "UI_OT_reset_default_button", WM_OP_EXEC_DEFAULT, &ptr);
|
||||
WM_operator_name_call(C, opstring, WM_OP_EXEC_DEFAULT, &ptr);
|
||||
WM_operator_properties_free(&ptr);
|
||||
}
|
||||
|
||||
|
||||
@@ -5400,13 +5400,6 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, const wmEvent *
|
||||
|
||||
return WM_UI_HANDLER_BREAK;
|
||||
}
|
||||
/* reset to default */
|
||||
/* XXX hardcoded keymap check.... */
|
||||
else if (event->type == BACKSPACEKEY && event->val == KM_PRESS) {
|
||||
/* ctrl+backspace = reset active button; backspace = reset a whole array*/
|
||||
if (!(ELEM3(but->type, HSVCIRCLE, HSVCUBE, HISTOGRAM)))
|
||||
ui_set_but_default(C, !event->ctrl);
|
||||
}
|
||||
/* handle menu */
|
||||
else if (event->type == RIGHTMOUSE && event->val == KM_PRESS) {
|
||||
/* RMB has two options now */
|
||||
@@ -5533,7 +5526,22 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, const wmEvent *
|
||||
case BUT_EXTRA:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* reset to default (generic function, only use if not handled by switch above) */
|
||||
/* XXX hardcoded keymap check.... */
|
||||
if (data->state == BUTTON_STATE_HIGHLIGHT) {
|
||||
if ((retval == WM_UI_HANDLER_CONTINUE) &&
|
||||
(event->type == BACKSPACEKEY && event->val == KM_PRESS))
|
||||
{
|
||||
/* ctrl+backspace = reset active button; backspace = reset a whole array*/
|
||||
ui_set_but_default(C, !event->ctrl);
|
||||
ED_region_tag_redraw(data->region);
|
||||
retval = WM_UI_HANDLER_BREAK;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
||||
@@ -393,7 +393,7 @@ extern bool ui_set_but_string(struct bContext *C, uiBut *but, const char *str);
|
||||
extern bool ui_set_but_string_eval_num(struct bContext *C, uiBut *but, const char *str, double *value);
|
||||
extern int ui_get_but_string_max_length(uiBut *but);
|
||||
|
||||
extern void ui_set_but_default(struct bContext *C, short all);
|
||||
extern void ui_set_but_default(struct bContext *C, const bool all);
|
||||
|
||||
extern void ui_check_but(uiBut *but);
|
||||
extern bool ui_is_but_float(uiBut *but);
|
||||
|
||||
Reference in New Issue
Block a user