|
@@ -1537,7 +1537,7 @@ void la_SaveEvent(SYSWINDOW hwnd, laEvent *e, int use_last_pos){
|
|
|
la_MakeSpecialKeyBit(hwnd,wnd,e,use_last_pos);
|
|
|
if(use_last_pos){ e->x=MAIN.evLastX; e->y=MAIN.evLastY; }
|
|
|
|
|
|
- e->Twist=MAIN.StylusTwist;
|
|
|
+ e->Twist=MAIN.StylusTwist; e->HasTwist = MAIN.StylusHasTwist;
|
|
|
e->Pressure=MAIN.IsPen?(MAIN.PointerIsEraser?MAIN.EraserPressure:MAIN.StylusPressure):0.5f;
|
|
|
e->Orientation=MAIN.PointerIsEraser?MAIN.EraserOrientation:MAIN.StylusOrientation;
|
|
|
e->Deviation=MAIN.PointerIsEraser?MAIN.EraserDeviation:MAIN.StylusDeviation;
|
|
@@ -7080,9 +7080,9 @@ static void la_RecordWacomMotions(XIRawEvent *event)
|
|
|
else { MAIN.EraserOrientation=orientation;MAIN.EraserDeviation=deviation; }
|
|
|
}else{ MAIN.StylusDeviation=MAIN.StylusOrientation=MAIN.EraserDeviation=MAIN.EraserOrientation=0; }
|
|
|
if(XIMaskIsSet(event->valuators.mask, 5)){
|
|
|
- real angle=valuator[5]; angle=rad((900-angle)/10*2-180); if(angle<0) angle+=TNS_PI*2; MAIN.StylusTwist=angle;
|
|
|
- // printf("a %lf\n",angle);
|
|
|
- }else{ MAIN.StylusTwist=0; }
|
|
|
+ real angle=valuator[5]; angle=rad((900-angle)/10*2-180); if(angle<0) angle+=TNS_PI*2; MAIN.StylusTwist=angle;
|
|
|
+ if(TNS_DOUBLE_CLOSE_ENOUGH(angle,TNS_PI)){ MAIN.StylusHasTwist=0; }else{ MAIN.StylusHasTwist=1; }
|
|
|
+ }else{ MAIN.StylusTwist=TNS_PI; MAIN.StylusHasTwist=0; }
|
|
|
|
|
|
MAIN.IsPen=1;
|
|
|
}
|
|
@@ -7132,6 +7132,7 @@ LRESULT CALLBACK LA_WindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp
|
|
|
MAIN.StylusOrientation = angle; MAIN.StylusDeviation = rad((90.0f - (real)pkt.pkOrientation.orAltitude / 10.0f));
|
|
|
real tw = (real)pkt.pkOrientation.orTwist; tw = rad(tw / 10);
|
|
|
MAIN.StylusTwist = tw;
|
|
|
+ if(TNS_DOUBLE_CLOSE_ENOUGH(tw,TNS_PI)){ MAIN.StylusHasTwist=0; }else{ MAIN.StylusHasTwist=1; }
|
|
|
MAIN.EraserDeviation = MAIN.StylusDeviation; MAIN.EraserOrientation = MAIN.StylusOrientation;
|
|
|
MAIN.EraserPressure = MAIN.StylusPressure;
|
|
|
MAIN.IsPen = 1; MAIN.PointerIsEraser = ((pkt.pkStatus & TPS_INVERT) == TPS_INVERT);
|