diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2014-08-14 12:45:00 +0400 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2014-08-14 12:45:00 +0400 |
commit | 6f6347e4372770d57a932cf2c390be8489146a76 (patch) | |
tree | 544d0e03d43d7b6aac6a999fa5c7fd7fb34c60b2 /source/blender/editors/sculpt_paint/paint_curve.c | |
parent | 630f343b30d8b7deb59a7e0ecd0b8f957a536319 (diff) |
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.
Diffstat (limited to 'source/blender/editors/sculpt_paint/paint_curve.c')
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_curve.c | 58 |
1 files changed, 22 insertions, 36 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 */ |