forked from bartvdbraak/blender
Multi-value, multi-button cancel keeps value set
This commit is contained in:
parent
2480bbff56
commit
56f6aa977a
@ -387,7 +387,7 @@ static int ui_handler_region_menu(bContext *C, const wmEvent *event, void *userd
|
|||||||
static void ui_handle_button_activate(bContext *C, ARegion *ar, uiBut *but, uiButtonActivateType type);
|
static void ui_handle_button_activate(bContext *C, ARegion *ar, uiBut *but, uiButtonActivateType type);
|
||||||
|
|
||||||
#ifdef USE_DRAG_MULTINUM
|
#ifdef USE_DRAG_MULTINUM
|
||||||
static void ui_multibut_restore(uiHandleButtonData *data, uiBlock *block);
|
static void ui_multibut_restore(bContext *C, uiHandleButtonData *data, uiBlock *block);
|
||||||
static uiButMultiState *ui_multibut_lookup(uiHandleButtonData *data, const uiBut *but);
|
static uiButMultiState *ui_multibut_lookup(uiHandleButtonData *data, const uiBut *but);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -945,7 +945,7 @@ static uiButMultiState *ui_multibut_lookup(uiHandleButtonData *data, const uiBut
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ui_multibut_restore(uiHandleButtonData *data, uiBlock *block)
|
static void ui_multibut_restore(bContext *C, uiHandleButtonData *data, uiBlock *block)
|
||||||
{
|
{
|
||||||
uiBut *but;
|
uiBut *but;
|
||||||
|
|
||||||
@ -954,6 +954,16 @@ static void ui_multibut_restore(uiHandleButtonData *data, uiBlock *block)
|
|||||||
uiButMultiState *mbut_state = ui_multibut_lookup(data, but);
|
uiButMultiState *mbut_state = ui_multibut_lookup(data, but);
|
||||||
if (mbut_state) {
|
if (mbut_state) {
|
||||||
ui_but_value_set(but, mbut_state->origvalue);
|
ui_but_value_set(but, mbut_state->origvalue);
|
||||||
|
|
||||||
|
#ifdef USE_ALLSELECT
|
||||||
|
if (mbut_state->select_others.elems_len > 0) {
|
||||||
|
ui_selectcontext_apply(
|
||||||
|
C, but, &mbut_state->select_others,
|
||||||
|
mbut_state->origvalue, mbut_state->origvalue);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
UNUSED_VARS(C);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2061,7 +2071,7 @@ static void ui_apply_but(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
|
|||||||
if (data->multi_data.has_mbuts) {
|
if (data->multi_data.has_mbuts) {
|
||||||
if (data->multi_data.init == BUTTON_MULTI_INIT_ENABLE) {
|
if (data->multi_data.init == BUTTON_MULTI_INIT_ENABLE) {
|
||||||
if (data->cancel) {
|
if (data->cancel) {
|
||||||
ui_multibut_restore(data, block);
|
ui_multibut_restore(C, data, block);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ui_multibut_states_apply(C, data, block);
|
ui_multibut_states_apply(C, data, block);
|
||||||
|
Loading…
Reference in New Issue
Block a user