Merge branch 'blender-v2.83-release'
[blender.git] / source / blender / editors / interface / interface_handlers.c
index ebde1d54c07268a558fec3d9d655c4ff3417a283..6db21ea93a55c6a752bb74249726ddb69e82f83e 100644 (file)
@@ -8337,6 +8337,11 @@ void UI_context_active_but_prop_handle(bContext *C)
   }
 }
 
   }
 }
 
+void UI_context_active_but_clear(bContext *C, wmWindow *win, ARegion *region)
+{
+  wm_event_handler_ui_cancel_ex(C, win, region, false);
+}
+
 wmOperator *UI_context_active_operator_get(const struct bContext *C)
 {
   ARegion *region_ctx = CTX_wm_region(C);
 wmOperator *UI_context_active_operator_get(const struct bContext *C)
 {
   ARegion *region_ctx = CTX_wm_region(C);
@@ -8868,7 +8873,7 @@ static int ui_handle_button_event(bContext *C, const wmEvent *event, uiBut *but)
     if (post_but) {
       button_activate_init(C, region, post_but, post_type);
     }
     if (post_but) {
       button_activate_init(C, region, post_but, post_type);
     }
-    else {
+    else if (!((event->type == EVT_BUT_CANCEL) && (event->val == 1))) {
       /* XXX issue is because WM_event_add_mousemove(wm) is a bad hack and not reliable,
        * if that gets coded better this bypass can go away too.
        *
       /* XXX issue is because WM_event_add_mousemove(wm) is a bad hack and not reliable,
        * if that gets coded better this bypass can go away too.
        *