From 6f6347e4372770d57a932cf2c390be8489146a76 Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Thu, 14 Aug 2014 10:45:00 +0200 Subject: Revert modal operation of cursor. This change was far less innocent than was first thought and could mess up tweaking events for the left mouse. --- source/blender/editors/sculpt_paint/paint_curve.c | 58 +++++++++-------------- source/blender/editors/space_view3d/view3d_edit.c | 26 +--------- 2 files changed, 24 insertions(+), 60 deletions(-) diff --git a/source/blender/editors/sculpt_paint/paint_curve.c b/source/blender/editors/sculpt_paint/paint_curve.c index 217c88c87ea..8c7c3b102e3 100644 --- a/source/blender/editors/sculpt_paint/paint_curve.c +++ b/source/blender/editors/sculpt_paint/paint_curve.c @@ -744,44 +744,31 @@ void PAINTCURVE_OT_draw(wmOperatorType *ot) ot->flag = OPTYPE_UNDO; } -static int paintcurve_cursor_invoke(bContext *C, wmOperator *op, const wmEvent *event) +static int paintcurve_cursor_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *event) { - op->customdata = SET_INT_IN_POINTER(event->type); - WM_event_add_modal_handler(C, op); - - return OPERATOR_RUNNING_MODAL; -} - -static int paintcurve_cursor_modal(bContext *C, wmOperator *op, const wmEvent *event) -{ - if (event->type == GET_INT_FROM_POINTER(op->customdata) && event->val == KM_RELEASE) - return OPERATOR_FINISHED; - - if (event->type == MOUSEMOVE) { - PaintMode mode = BKE_paintmode_get_active_from_context(C); - - switch (mode) { - case PAINT_TEXTURE_2D: - { - ARegion *ar = CTX_wm_region(C); - SpaceImage *sima = CTX_wm_space_image(C); - float location[2]; - - if (!sima) - return OPERATOR_CANCELLED; - - UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &location[0], &location[1]); - copy_v2_v2(sima->cursor, location); - WM_event_add_notifier(C, NC_SPACE | ND_SPACE_IMAGE, NULL); - break; - } - default: - ED_view3d_cursor3d_update(C, event->mval); - break; + PaintMode mode = BKE_paintmode_get_active_from_context(C); + + switch (mode) { + case PAINT_TEXTURE_2D: + { + ARegion *ar = CTX_wm_region(C); + SpaceImage *sima = CTX_wm_space_image(C); + float location[2]; + + if (!sima) + return OPERATOR_CANCELLED; + + UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &location[0], &location[1]); + copy_v2_v2(sima->cursor, location); + WM_event_add_notifier(C, NC_SPACE | ND_SPACE_IMAGE, NULL); + break; } + default: + ED_view3d_cursor3d_update(C, event->mval); + break; } - - return OPERATOR_RUNNING_MODAL; + + return OPERATOR_FINISHED; } void PAINTCURVE_OT_cursor(wmOperatorType *ot) @@ -793,7 +780,6 @@ void PAINTCURVE_OT_cursor(wmOperatorType *ot) /* api callbacks */ ot->invoke = paintcurve_cursor_invoke; - ot->modal = paintcurve_cursor_modal; ot->poll = paint_curve_poll; /* flags */ diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 5988473588b..6cd2e7bfe1b 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -4488,32 +4488,11 @@ void ED_view3d_cursor3d_update(bContext *C, const int mval[2]) WM_event_add_notifier(C, NC_SCENE | NA_EDITED, scene); } -static int view3d_cursor3d_invoke(bContext *C, wmOperator *op, const wmEvent *event) +static int view3d_cursor3d_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *event) { ED_view3d_cursor3d_update(C, event->mval); - op->customdata = SET_INT_IN_POINTER(event->type); - WM_event_add_modal_handler(C, op); - return OPERATOR_RUNNING_MODAL; -} - -static int view3d_cursor3d_modal(bContext *C, wmOperator *op, const wmEvent *event) -{ - int event_type = GET_INT_FROM_POINTER(op->customdata); - - if (event->type == event_type) { - return OPERATOR_FINISHED; - } - - switch (event->type) { - case MOUSEMOVE: - ED_view3d_cursor3d_update(C, event->mval); - break; - case LEFTMOUSE: - return OPERATOR_FINISHED; - } - - return OPERATOR_RUNNING_MODAL; + return OPERATOR_FINISHED; } void VIEW3D_OT_cursor3d(wmOperatorType *ot) @@ -4526,7 +4505,6 @@ void VIEW3D_OT_cursor3d(wmOperatorType *ot) /* api callbacks */ ot->invoke = view3d_cursor3d_invoke; - ot->modal = view3d_cursor3d_modal; ot->poll = ED_operator_view3d_active; -- cgit v1.2.3