[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47488] branches/soc-2012-bratwurst/source /blender/editors/screen/screen_ops.c: Dragging areas closed may be disabled by holding the ctrl key.
Jorge Rodriguez
bs.vino at gmail.com
Wed Jun 6 01:50:10 CEST 2012
Revision: 47488
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47488
Author: vino
Date: 2012-06-05 23:50:05 +0000 (Tue, 05 Jun 2012)
Log Message:
-----------
Dragging areas closed may be disabled by holding the ctrl key.
Modified Paths:
--------------
branches/soc-2012-bratwurst/source/blender/editors/screen/screen_ops.c
Modified: branches/soc-2012-bratwurst/source/blender/editors/screen/screen_ops.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/screen/screen_ops.c 2012-06-05 22:53:17 UTC (rev 47487)
+++ branches/soc-2012-bratwurst/source/blender/editors/screen/screen_ops.c 2012-06-05 23:50:05 UTC (rev 47488)
@@ -890,7 +890,7 @@
*/
typedef struct sAreaMoveData {
- int bigger, smaller, origval, step;
+ int bigger, smaller, origval, step, nomerge;
char dir;
ScrArea* split1;
ScrArea* split2;
@@ -950,6 +950,7 @@
md->dir = scredge_is_horizontal(actedge) ? 'h' : 'v';
if (md->dir == 'h') md->origval = actedge->v1->vec.y;
else md->origval = actedge->v1->vec.x;
+ md->nomerge = FALSE;
select_connected_scredge(sc, actedge);
/* now all vertices with 'flag==1' are the ones that can be moved. */
@@ -975,6 +976,9 @@
if (delta > bigger)
overflow = 1;
+ if (!split1)
+ overflow = 0;
+
delta = CLAMPIS(delta, -smaller, bigger);
for (v1 = sc->vertbase.first; v1; v1 = v1->next) {
@@ -1016,8 +1020,11 @@
}
}
- *split1 = NULL;
- *split2 = NULL;
+ if (split1)
+ {
+ *split1 = NULL;
+ *split2 = NULL;
+ }
for (sa = sc->areabase.first; sa; sa = sa->next) {
if ((sa->v1->flag&VERT_FLAG_SELECTED) || (sa->v2->flag&VERT_FLAG_SELECTED) || (sa->v3->flag&VERT_FLAG_SELECTED) || (sa->v4->flag&VERT_FLAG_SELECTED))
@@ -1065,7 +1072,7 @@
}
// split2 is the one that's closing
- if (*split2 && (*split2)->type->spaceid == SPACE_INFO)
+ if (split2 && *split2 && (*split2)->type->spaceid == SPACE_INFO)
{
// Don't allow dragging closed of SPACE_INFO.
// It should be tougher to close, most users want it always open and new users don't want to accidentally close it.
@@ -1095,7 +1102,7 @@
int delta;
delta = RNA_int_get(op->ptr, "delta");
- area_move_apply_do(C, md->origval, delta, md->dir, md->bigger, md->smaller, &md->split1, &md->split2);
+ area_move_apply_do(C, md->origval, delta, md->dir, md->bigger, md->smaller, md->nomerge?NULL:&md->split1, md->nomerge?NULL:&md->split2);
}
static void area_move_exit(bContext *C, wmOperator *op)
@@ -1185,7 +1192,12 @@
delta = (md->dir == 'v') ? event->x - x : event->y - y;
if (md->step) delta = delta - (delta % md->step);
RNA_int_set(op->ptr, "delta", delta);
-
+
+ if (event->ctrl)
+ md->nomerge = TRUE;
+ else
+ md->nomerge = FALSE;
+
area_move_apply(C, op);
break;
@@ -1591,7 +1603,7 @@
{
ScrArea* s1 = NULL;
ScrArea* s2 = NULL;
- area_move_apply_do(C, sd->origval, sd->delta, dir, sd->bigger, sd->smaller, &s1, &s2);
+ area_move_apply_do(C, sd->origval, sd->delta, dir, sd->bigger, sd->smaller, event->ctrl?NULL:&s1, event->ctrl?NULL:&s2);
sd->rejoin = !!s1;
}
else {
More information about the Bf-blender-cvs
mailing list