|
@@ -2884,6 +2884,15 @@ int OPMOD_ColumnAdjuster(laOperator *a, laEvent *e){
|
|
|
|
|
|
return LA_RUNNING;
|
|
|
}
|
|
|
+void la_NodeSocketGetPositionDelta(laUiItem* ui, int ex,int ey,int* dx,int* dy){
|
|
|
+ int cx,cy;
|
|
|
+ if(ui->Flags&LA_UI_SOCKET_LABEL_E){ cy=(ui->U+ui->B)/2; cx=ui->L+(ui->B-ui->U)/2; }
|
|
|
+ elif(ui->Flags&LA_UI_SOCKET_LABEL_W){ cy=(ui->U+ui->B)/2; cx=ui->R-(ui->B-ui->U)/2; }
|
|
|
+ elif(ui->Flags&LA_UI_SOCKET_LABEL_N){ cx=(ui->L+ui->R)/2; cy=ui->U+(ui->R-ui->L)/3; }
|
|
|
+ elif(ui->Flags&LA_UI_SOCKET_LABEL_S){ cx=(ui->L+ui->R)/2; cy=ui->B-(ui->R-ui->L)/3; }
|
|
|
+ else{ cx=(ui->L+ui->R)/2; cy=(ui->U+ui->B)/2; }
|
|
|
+ *dx=cx-ex; *dy=cy-ey;
|
|
|
+}
|
|
|
int OPMOD_NodeSocket(laOperator *a, laEvent *e){
|
|
|
laUiItem *ui = a->Instance;
|
|
|
laBoxedTheme *bt = (*ui->Type->Theme);
|
|
@@ -2917,7 +2926,7 @@ int OPMOD_NodeSocket(laOperator *a, laEvent *e){
|
|
|
elif(pc==LA_PC_SOCKET_OUT){ MAIN.tNodeIn->Source=ui->PP.EndInstance; latouched_NodeInSocket(0,0);
|
|
|
MAIN.tNodeIn->RuntimeX=MAIN.tNodeIn->RuntimeY=MAIN.tNodeIn->RuntimePX=MAIN.tNodeIn->RuntimePY=0;
|
|
|
MAIN.tNodeIn->ColorId=MAIN.NextWireColor; }
|
|
|
- uit->LastX = e->x; uit->LastY = e->y;
|
|
|
+ int dx,dy; la_NodeSocketGetPositionDelta(ui,e->x,e->y,&dx,&dy); uit->LastX = e->x+dx; uit->LastY = e->y+dy;
|
|
|
laRedrawCurrentPanel();
|
|
|
return LA_RUNNING;
|
|
|
}
|