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.
This commit is contained in:
Antonis Ryakiotakis 2014-08-14 10:45:00 +02:00
parent 630f343b30
commit 6f6347e437
2 changed files with 24 additions and 60 deletions

View File

@ -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 */

View File

@ -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;