diff options
author | Germano <germano.costa@ig.com.br> | 2018-01-23 06:00:16 +0300 |
---|---|---|
committer | Germano <germano.costa@ig.com.br> | 2018-01-23 06:00:16 +0300 |
commit | 3a712632f50875368eaccc7eaead573b732c8175 (patch) | |
tree | 5bce0a5c91b54e10288061fc1d2a8fafb0a1906c /source/blender/editors/screen | |
parent | 1c98fbf9826b6a3909df5428831cfa426d1178e7 (diff) | |
parent | 85ca39ec4bd180420828a794bca49d5008dd5a7b (diff) |
Merge branch 'master' into blender2.8
# Conflicts:
# source/blender/editors/screen/screen_ops.c
Diffstat (limited to 'source/blender/editors/screen')
-rw-r--r-- | source/blender/editors/screen/screen_ops.c | 99 |
1 files changed, 48 insertions, 51 deletions
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index fcfee8dfb2c..e1480dbe967 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -1783,54 +1783,9 @@ static int area_split_modal(bContext *C, wmOperator *op, const wmEvent *event) /* execute the events */ switch (event->type) { case MOUSEMOVE: - { - const int dir = RNA_property_enum_get(op->ptr, prop_dir); - - sd->delta = (dir == 'v') ? event->x - sd->origval : event->y - sd->origval; - - if (sd->previewmode == 0) { - if (sd->do_snap) { - const int snap_loc = area_snap_calc_location( - CTX_wm_screen(C), sd->delta, sd->origval, dir, sd->bigger, sd->smaller); - sd->delta = snap_loc - sd->origval; - } - area_move_apply_do(C, sd->delta, sd->origval, dir, sd->bigger, sd->smaller, false); - } - else { - if (sd->sarea) { - ED_area_tag_redraw(sd->sarea); - } - /* area context not set */ - sd->sarea = BKE_screen_find_area_xy(CTX_wm_screen(C), SPACE_TYPE_ANY, event->x, event->y); - - if (sd->sarea) { - ScrArea *sa = sd->sarea; - if (dir == 'v') { - sd->origsize = sa->winx; - sd->origmin = sa->totrct.xmin; - } - else { - sd->origsize = sa->winy; - sd->origmin = sa->totrct.ymin; - } - - if (sd->do_snap) { - sa->v1->editflag = sa->v2->editflag = sa->v3->editflag = sa->v4->editflag = 1; - - const int snap_loc = area_snap_calc_location( - CTX_wm_screen(C), sd->delta, sd->origval, dir, sd->origmin + sd->origsize, -sd->origmin); - - sa->v1->editflag = sa->v2->editflag = sa->v3->editflag = sa->v4->editflag = 0; - sd->delta = snap_loc - sd->origval; - } - - update_factor = true; - } - - CTX_wm_screen(C)->do_draw = true; - } + update_factor = true; break; - } + case LEFTMOUSE: if (sd->previewmode) { area_split_apply(C, op); @@ -1875,12 +1830,54 @@ static int area_split_modal(bContext *C, wmOperator *op, const wmEvent *event) } if (update_factor) { - float fac = (float)(sd->delta + sd->origval - sd->origmin) / sd->origsize; - RNA_float_set(op->ptr, "factor", fac); + const int dir = RNA_property_enum_get(op->ptr, prop_dir); + + sd->delta = (dir == 'v') ? event->x - sd->origval : event->y - sd->origval; + + if (sd->previewmode == 0) { + if (sd->do_snap) { + const int snap_loc = area_snap_calc_location( + CTX_wm_screen(C), sd->delta, sd->origval, dir, sd->bigger, sd->smaller); + sd->delta = snap_loc - sd->origval; + } + area_move_apply_do(C, sd->delta, sd->origval, dir, sd->bigger, sd->smaller, false); + } + else { + if (sd->sarea) { + ED_area_tag_redraw(sd->sarea); + } + /* area context not set */ + sd->sarea = BKE_screen_find_area_xy(CTX_wm_screen(C), SPACE_TYPE_ANY, event->x, event->y); + + if (sd->sarea) { + ScrArea *sa = sd->sarea; + if (dir == 'v') { + sd->origsize = sa->winx; + sd->origmin = sa->totrct.xmin; + } + else { + sd->origsize = sa->winy; + sd->origmin = sa->totrct.ymin; + } - if (sd->sarea) { - ED_area_tag_redraw(sd->sarea); + if (sd->do_snap) { + sa->v1->editflag = sa->v2->editflag = sa->v3->editflag = sa->v4->editflag = 1; + + const int snap_loc = area_snap_calc_location( + CTX_wm_screen(C), sd->delta, sd->origval, dir, sd->origmin + sd->origsize, -sd->origmin); + + sa->v1->editflag = sa->v2->editflag = sa->v3->editflag = sa->v4->editflag = 0; + sd->delta = snap_loc - sd->origval; + } + + ED_area_tag_redraw(sd->sarea); + } + + CTX_wm_screen(C)->do_draw = true; } + + float fac = (float)(sd->delta + sd->origval - sd->origmin) / sd->origsize; + RNA_float_set(op->ptr, "factor", fac); } return OPERATOR_RUNNING_MODAL; |