Fix T37511: toggle-drag feature was crashing with menu items.
This commit is contained in:
parent
5eb1dba6e0
commit
b6b4aabf04
Notes:
blender-bot
2023-02-14 11:34:38 +01:00
Referenced by issue #37511, Crash on menu item drag
|
@ -859,6 +859,13 @@ static int ui_handler_region_drag_toggle(bContext *C, const wmEvent *event, void
|
|||
}
|
||||
}
|
||||
|
||||
static bool ui_is_but_drag_toggle(uiBut *but)
|
||||
{
|
||||
return ((ui_is_but_bool(but) == true) &&
|
||||
/* menu check is importnt so the button dragged over isn't removed instantly */
|
||||
(ui_block_is_menu(but->block) == false));
|
||||
}
|
||||
|
||||
#endif /* USE_DRAG_TOGGLE */
|
||||
|
||||
|
||||
|
@ -2748,7 +2755,7 @@ static int ui_do_but_TOG(bContext *C, uiBut *but, uiHandleButtonData *data, cons
|
|||
{
|
||||
#ifdef USE_DRAG_TOGGLE
|
||||
if (data->state == BUTTON_STATE_HIGHLIGHT) {
|
||||
if (event->type == LEFTMOUSE && event->val == KM_PRESS && ui_is_but_bool(but)) {
|
||||
if (event->type == LEFTMOUSE && event->val == KM_PRESS && ui_is_but_drag_toggle(but)) {
|
||||
#if 0 /* UNUSED */
|
||||
data->togdual = event->ctrl;
|
||||
data->togonly = !event->shift;
|
||||
|
@ -2797,7 +2804,7 @@ static int ui_do_but_EXIT(bContext *C, uiBut *but, uiHandleButtonData *data, con
|
|||
}
|
||||
}
|
||||
#ifdef USE_DRAG_TOGGLE
|
||||
if (event->type == LEFTMOUSE && ui_is_but_bool(but)) {
|
||||
if (event->type == LEFTMOUSE && ui_is_but_drag_toggle(but)) {
|
||||
button_activate_state(C, but, BUTTON_STATE_WAIT_DRAG);
|
||||
data->dragstartx = event->x;
|
||||
data->dragstarty = event->y;
|
||||
|
@ -3623,7 +3630,7 @@ static int ui_do_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data, co
|
|||
}
|
||||
}
|
||||
#ifdef USE_DRAG_TOGGLE
|
||||
if (event->type == LEFTMOUSE && ui_is_but_bool(but)) {
|
||||
if (event->type == LEFTMOUSE && ui_is_but_drag_toggle(but)) {
|
||||
button_activate_state(C, but, BUTTON_STATE_WAIT_DRAG);
|
||||
data->dragstartx = event->x;
|
||||
data->dragstarty = event->y;
|
||||
|
|
Loading…
Reference in New Issue