forked from bartvdbraak/blender
- Bug fix #1913
Lasso select on objects didnt work with multiple views, due to lack of calculation of screencoords. - Bug fix #1914 Hooks didn't update 'parent' when snapping to grid a Hook. Solved it for snap to cursor too.
This commit is contained in:
parent
e7bd591842
commit
1534066d5b
@ -700,6 +700,23 @@ void countall()
|
|||||||
allqueue(REDRAWINFO, 1); /* 1, because header->win==0! */
|
allqueue(REDRAWINFO, 1); /* 1, because header->win==0! */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* selected things moved, and might need update in displists */
|
||||||
|
static void update_select_dependency(void)
|
||||||
|
{
|
||||||
|
Base *base;
|
||||||
|
Object *ob;
|
||||||
|
for(base= (G.scene->base.first); base; base= base->next) {
|
||||||
|
ob= base->object;
|
||||||
|
if(ob->hooks.first) {
|
||||||
|
ObHook *hook= ob->hooks.first;
|
||||||
|
while(hook) {
|
||||||
|
if(hook->parent->flag & SELECT) freedisplist(&ob->disp);
|
||||||
|
hook= hook->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void snap_sel_to_grid()
|
void snap_sel_to_grid()
|
||||||
{
|
{
|
||||||
@ -786,6 +803,7 @@ void snap_sel_to_grid()
|
|||||||
|
|
||||||
base= base->next;
|
base= base->next;
|
||||||
}
|
}
|
||||||
|
update_select_dependency();
|
||||||
allqueue(REDRAWVIEW3D, 0);
|
allqueue(REDRAWVIEW3D, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -871,6 +889,7 @@ void snap_sel_to_curs()
|
|||||||
|
|
||||||
base= base->next;
|
base= base->next;
|
||||||
}
|
}
|
||||||
|
update_select_dependency();
|
||||||
allqueue(REDRAWVIEW3D, 0);
|
allqueue(REDRAWVIEW3D, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1181,7 +1200,7 @@ void snap_to_center()
|
|||||||
|
|
||||||
base= base->next;
|
base= base->next;
|
||||||
}
|
}
|
||||||
|
update_select_dependency();
|
||||||
allqueue(REDRAWVIEW3D, 0);
|
allqueue(REDRAWVIEW3D, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -239,6 +239,7 @@ static void do_lasso_select_objects(short mcords[][2], short moves, short select
|
|||||||
|
|
||||||
for(base= G.scene->base.first; base; base= base->next) {
|
for(base= G.scene->base.first; base; base= base->next) {
|
||||||
if(base->lay & G.vd->lay) {
|
if(base->lay & G.vd->lay) {
|
||||||
|
project_short(base->object->obmat[3], &base->sx);
|
||||||
if(lasso_inside(mcords, moves, base->sx, base->sy)) {
|
if(lasso_inside(mcords, moves, base->sx, base->sy)) {
|
||||||
|
|
||||||
if(select) base->flag |= SELECT;
|
if(select) base->flag |= SELECT;
|
||||||
|
Loading…
Reference in New Issue
Block a user